+
    Tj(                         ^ RI t ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RI
HtHtHt ^ RIHt ^ RIHt ^ R	IHt  ! R
 R]! ]4      4      t ! R R4      t]! R4       ! R R]]R7      4       tR tR# )    N)contextmanager)wraps)Path)settings)LiveServerTestCaseoverride_settingstag)classpropertyimport_string)capfirstc                      a a ] tR t^t o. tRtRtRtRtV 3R lt	]
R 4       t]
R 4       t]
R 4       tR tR tR	tVtV ;t# )
SeleniumTestCaseBaseNFc                  < \         S
V `  WW#4      pVP                  '       gW   \        ;QJ d*    R VP	                  4        4       F  '       g   K   RM	  RM! R VP	                  4        4       4      '       g   V# VP
                  '       d   VP
                  ^ ,          pWTn        VP                  '       g   VP                  MRpWdn        V P                  Vn        \        P                  VP                  ,          pVP
                  R,           FY  pV P                  V \        V4      : V: 2V3RVRVRV P                  R	VP                  /4      p	\        WyP                  V	4       K[  	  V# \        P                   ! R
4      ! V4      # )z
Dynamically create new classes and add them to the test module when
multiple browsers specs are provided (e.g. --selenium=firefox,chrome).
c              3   n   "   T F+  w  rVP                  R 4      ;'       d    \        V4      x  K-  	  R# 5i)testN)
startswithcallable).0namevalues   &  I/var/www/idalgo/venv/lib/python3.14/site-packages/django/test/selenium.py	<genexpr>/SeleniumTestCaseBase.__new__.<locals>.<genexpr>"   s-      )
KXKDDOOF#777=s   55TFz0.0.0.0:   NNbrowserhostexternal_host
__module__zNo browsers specified.)super__new__r   anyitemsbrowsersselenium_hubr   r   sysmodulesr   r   setattr__name__unittestskip)clsr   basesattrs
test_classfirst_browserr   moduler   browser_test_class	__class__s   &&&&      r   r!   SeleniumTestCaseBase.__new__   s[   
 W_S=
 SS )
KP;;=)
SSS )
KP;;=)
 &
 &
    
 '//2M!.*4*A*A*A:??yD"O'*'8'8J$ [[!6!67F%..r22%([[&w/6M!7'):):$j&;&;		
&"  ; ;=OP 3  }}56zBB    c                &    \        R V,          4      # )z)selenium.webdriver.%s.webdriver.WebDriverr   r,   r   s   &&r   import_webdriver%SeleniumTestCaseBase.import_webdriverF   s    H7RSSr5   c                &    \        R V,          4      # )z%selenium.webdriver.%s.options.Optionsr   r7   s   &&r   import_options#SeleniumTestCaseBase.import_optionsJ   s    DwNOOr5   c                `    ^ RI Hp \        W!P                  4       4      pVR8X  d   RR/VR&   V# )r   )DesiredCapabilitieschromer   ALLzgoog:loggingPrefs).selenium.webdriver.common.desired_capabilitiesr>   getattrupper)r,   r   r>   capss   &&  r   get_capability#SeleniumTestCaseBase.get_capabilityN   s3    V*MMO<h)2E(:D$%r5   c                h   V P                  V P                  4      ! 4       pV P                  R 8X  d#   VP                  R4       VP                  R4       V P                  '       dM   V P                  ;;R 8X  d   M
;R8X  d   M M  VP                  R4       V# R8X  d   VP                  R4       V# V# )r?   z--guestz--disable-infobarsedgez--headless=newfirefoxz	-headless)r;   r   add_argumentheadless)selfoptionss   & r   create_options#SeleniumTestCaseBase.create_optionsX   s    %%dll35<<8#  +  !56===,,&X&(()9:  ((5wr5   c                V   V P                  4       pV P                  '       dg   ^ RIHp V P	                  V P
                  4      P                  4        F  w  r4VP                  W44       K  	  VP                  V P                  VR7      # V P                  V P
                  4      ! VR7      # )r   )	webdriver)command_executorrM   )rM   )
rN   r%   seleniumrQ   rE   r   r#   set_capabilityRemoter8   )rL   rM   rQ   keyr   s   &    r   create_webdriver%SeleniumTestCaseBase.create_webdriverf   s    %%'*"11$,,?EEG
&&s2 H ##T5F5FPW#XX$$T\\27CCr5    )r)   r   __qualname____firstlineno__r$   r%   r   r   rK   r!   classmethodr8   r;   rE   rN   rW   __static_attributes____classdictcell____classcell__r3   __classdict__s   @@r   r   r      sv     HLMGH*CX T T P P  	D 	Dr5   r   c                   2   a  ] tR t^rt o R tR tR tRtV tR# )ChangeWindowSizec                "    W0n         W3V n        R # N)rS   new_size)rL   widthheightrS   s   &&&&r   __init__ChangeWindowSize.__init__s   s     r5   c                    V P                   P                  4       V n        V P                   P                  ! V P                  !   V # re   )rS   get_window_sizeold_sizeset_window_sizerf   rL   s   &r   	__enter__ChangeWindowSize.__enter__w   s1    557%%t}}5r5   c                    V P                   P                  V P                  R ,          V P                  R,          4       R# )rg   rh   N)rS   rn   rm   )rL   exc_type	exc_value	tracebacks   &&&&r   __exit__ChangeWindowSize.__exit__|   s(    %%dmmG&<dmmH>UVr5   )rf   rm   rS   N)	r)   r   rZ   r[   ri   rp   rv   r]   r^   )ra   s   @r   rc   rc   r   s     (
W Wr5   rc   rS   c                      a a ] tR t^t o^
tRtRt]V 3R l4       t]	R 4       t
]	R 4       t]V 3R l4       t]R 4       t]R 4       t]R	 4       t]R
 4       t]R 4       tRRRR/R lt]R 4       tR tRR lt]R 4       t]R 4       tRtVtV ;t# )SeleniumTestCaseNFc                  < \         SV `  ! R/ VB  V P                  '       g   R # \        V P                  P                  4       4       F  w  r#\        VR4      '       g   K  \        W4       \        VR4       F^  p\        V4      RVRV/R l4       pV RV 2Vn
        VP                   RV 2Vn        W%n        WEn        \        WP                  V4       K`  	  K  	  R # )N_screenshot_cases_func_casec                    \        W4      ! 4       ;_uu_ 4        V! V .VO5/ VB uuR R R 4       #   + '       g   i     R # ; ire   )rB   )rL   r|   r}   argskwargss   &$$*,r   r   0SeleniumTestCase.__init_subclass__.<locals>.test   s1     -//$T;D;F; 0///s	   0A	_rY   )r    __init_subclass__screenshotslist__dict__r#   hasattrdelattrrB   r   r)   rZ   _screenshot_name_screenshot_caser(   )r,   r   r   funcscreenshot_caser   r3   s   &,    r   r   "SeleniumTestCase.__init_subclass__   s    !+F+s||1134JD4!455C#*41D#Et<D < < < $(&/): ;'+'8'8&9?:K$L!(,%(7%]]D1 $F 5r5   c                z    R V P                   ;'       g    V P                  : RV P                  P                  : 2# )zhttp://:)r   r   server_threadportr,   s   &r   live_server_url SeleniumTestCase.live_server_url   s.    !$!2!2!>!>chh!>@Q@Q@V@VWWr5   c                B    V P                   ;'       g    V P                  # re   )r   r   r   s   &r   allowed_hostSeleniumTestCase.allowed_host   s      ,,CHH,r5   c                   < V P                  4       V n        V P                  P                  V P                  4       \        SV `  4        V P                  V P                  4       R # re   )rW   rS   implicitly_waitimplicit_waitr    
setUpClassaddClassCleanup_quit_selenium)r,   r3   s   &r   r   SeleniumTestCase.setUpClass   sJ    ++-$$S%6%67C../r5   c              #     "   \        R RV P                  4      ;_uu_ 4        Rx  RRR4       R#   + '       g   i     R# ; i5i)i   i  Nrc   rS   ro   s   &r   desktop_sizeSeleniumTestCase.desktop_size   )     dC77 8777    A1
AA		Ac              #     "   \        R RV P                  4      ;_uu_ 4        Rx  RRR4       R#   + '       g   i     R# ; i5i)i   i   Nr   ro   s   &r   small_screen_size"SeleniumTestCase.small_screen_size   r   r   c              #     "   \        R RV P                  4      ;_uu_ 4        Rx  RRR4       R#   + '       g   i     R# ; i5i)ih  i   Nr   ro   s   &r   mobile_sizeSeleniumTestCase.mobile_size   s)     c366 7666r   c           	   #  
  "   V P                  4       ;_uu_ 4        \        \        P                  R,          R7      ;_uu_ 4        Rx  RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i5i)r   )LANGUAGE_CODEN)r   r   r   LANGUAGES_BIDIro   s   &r   rtlSeleniumTestCase.rtl   sM       "1H1H1LMM N ! MM !  s4   B*A/A	
A/
BA,'A//B 	:	Bc              #  z  "   V P                   P                  V P                  4       V P                   P                  R 4       V P	                  4       ;_uu_ 4         Rx  V P                   P                  R4        RRR4       R#   T P                   P                  R4       i ; i  + '       g   i     R# ; i5i)z&localStorage.setItem('theme', 'dark');Nz!localStorage.removeItem('theme');)rS   getr   execute_scriptr   ro   s   &r   darkSeleniumTestCase.dark   s      	$../$$%MN  R,,-PQ	 !  ,,-PQ	 !  s6   AB;B'B!B'=
B;B$$B''B8	2	B;mediafeaturesc                   V P                   R
9  d   V P                  R4       / pVe   WR&   Ve   W#R&   V P                  P                  RRRRV/R	7       R# )r?   zEmulation.setEmulatedMedia is only supported on Chromium and Chrome-based browsers. See https://chromedevtools.github.io/devtools-protocol/1-3/Emulation/#method-setEmulatedMedia for more details.Nr   r   executeCdpCommandcmdzEmulation.setEmulatedMediaparams)driver_commandr   >   rH   r?   )r   skipTestrS   execute)rL   r   r   r   s   &$$ r   set_emulated_media#SeleniumTestCase.set_emulated_media   sl    <<11MMT
 #7O!): 	.76J 	 	
r5   c           
   #    "   V P                  R RRR/.R7       V P                  4       ;_uu_ 4         Rx  V P                  R RRR/.R7        RRR4       R#   T P                  R RRR/.R7       i ; i  + '       g   i     R# ; i5i)r   zforced-colorsr   active)r   Nnone)r   r   ro   s   &r   high_contrastSeleniumTestCase.high_contrast   s     6?GX*V)WX  ''%HI ( 	 !  ''%HI ( 	 !  s2   0B
A6AA6
B
A33A66B		B
c                L   V P                   '       g   R # \        W P                  4      pVP                   RV RVP                   R2p\
        P                  ! 4       R,          V,          pVP                  P                  RRR7       V P                  P                  V4       R # )Nz--z.pngr   T)exist_okparents)r   rB   _testMethodNamer   r   r   cwdparentmkdirrS   save_screenshot)rL   r   r   filenamepaths   &&   r   take_screenshot SeleniumTestCase.take_screenshot   s    t112++,BtfBt7L7L6MTRxxzM)H446%%d+r5   c                     V P                   P                  R4      pV Uu. uF0  pVR8X  g   VR,          V8X  g   K  Ve   VR,          V8X  g   K.  VNK2  	  up#   \         d    . p LLi ; iu upi )zE
Return Chrome console logs filtered by level and optionally source.
r   r@   levelsource)rS   get_logAttributeError)rL   r   r   logslogs   &&&  r   get_browser_logs!SeleniumTestCase.get_browser_logs   s    	==((3D
 
#g,%"7  3x=F#: C
 	
  	D	
s!   A A-A-A-A*)A*c                b    \        V R 4      '       d   V P                  P                  4        R# R# )rS   N)r   rS   quitr   s   &r   r   SeleniumTestCase._quit_selenium  s&    
 3
##LL $r5   c              #     "   V P                   P                  ^ 4        Rx  V P                   P                  V P                  4       R#   T P                   P                  T P                  4       i ; i5i)z"Disable the default implicit wait.N)rS   r   r   ro   s   &r   disable_implicit_wait&SeleniumTestCase.disable_implicit_wait  sQ      	%%a(	>MM))$*<*<=DMM))$*<*<=s   A4A
 'A4
'A11A4rY   )Nr@   )r)   r   rZ   r[   r   r   r   r\   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r]   r^   r_   r`   s   @@r   ry   ry      s(    MMK2 20 X X - - 0 0        
 R R
$ 
 
(  ,
     > > >r5   ry   )	metaclassc                 b   a  \        S \        4      '       d   S P                  R 4      o V 3R lpV# ),c                 v   < SV n         \        V R R0P                  \        V R \	        4       4      4      4       V # )tags
screenshot)r{   r(   unionrB   set)r   method_namess   &r   wrapper!screenshot_cases.<locals>.wrapper  s4    !-f|n22743OPQr5   )
isinstancestrsplit)r   r   s   f r   screenshot_casesr     s,    ,$$#))#.
 Nr5   )r&   r*   
contextlibr   	functoolsr   pathlibr   django.confr   django.testr   r   r	   django.utils.functionalr
   django.utils.module_loadingr   django.utils.textr   typer   rc   ry   r   rY   r5   r   <module>r      su    
  %     B B 1 5 &aD4 23 aDHW W ZS>)5I S> S>l	r5   