
    YHh
                        d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZmZmZ d dlmZ d dlmZ d dlmZ  G d	 d
      Zy)    )annotations)AsyncExitStack)TracebackType)Any)BrowserBrowserContextElementHandlePageasync_playwright)REACTPY_TESTING_DEFAULT_TIMEOUT)BackendFixture)RootComponentConstructorc                      e Zd ZU dZded<   	 	 	 d	 	 	 	 	 	 	 ddZ	 	 	 	 ddZ	 d	 	 	 	 	 	 	 ddZddZdd	Z		 	 	 	 	 	 	 	 dd
Z
y)DisplayFixturez:A fixture for running web-based tests using ``playwright``r   _exit_stackNc                t    ||| _         |&t        |t              r|| _        || _        y || _        || _        y N)backend
isinstancer
   page_browser
url_prefix)selfr   driverr   s       P/var/www/html/planif/env/lib/python3.12/site-packages/reactpy/testing/display.py__init__zDisplayFixture.__init__   sA     "DL&$'"	 % !'$    c                   K   | j                   j                  |       | j                  d       d {    | j                          d {    y 7 7 w)N/)r   mountgotoroot_element)r   	components     r   showzDisplayFixture.show(   sF      	9%iin!!! 	!s!   0AAA
AAAc                   K   | j                   j                  | j                  j                  |r| j                   | n||             d {    y 7 wr   )r   r!   r   urlr   )r   pathqueryadd_url_prefixs       r   r!   zDisplayFixture.goto0   sK      iinnLL.<4??#D6*$
 	
 	
s   AAAAc                z   K   | j                   j                  dd       d {   }|d}t        |      |S 7 w)Nz#appattached)statezRoot element not attached)r   wait_for_selectorRuntimeError)r   elementmsgs      r   r"   zDisplayFixture.root_element9   sB     		33F*3MM?-Cs##	 Ns   !;9;c                  K   t               x}| _        t        | d      syt        | d      sD|j                  t	                      d {   }|j
                  j                          d {   }n| j                  }|j                          d {   | _	        | j                  j                  t        j                  dz         t        | d      s2t               | _        |j                  | j                         d {    | S 7 7 7 y7 w)Nr   r   i  r   )r   r   hasattrenter_async_contextr   chromiumlaunchr   new_pager   set_default_timeoutr   currentr   r   )r   espwbrowsers       r   
__aenter__zDisplayFixture.__aenter__@   s      . 00T tV$4,112B2DEE " 2 2 44--%..00DI		%%&E&M&MPT&TUtY')+DL((666 F4 1 7sI   ADD	!D*D+$DD	A.D>D?DD	DDc                   K   | j                   j                  d        | j                  j                          d {    y 7 wr   )r   r    r   aclose)r   exc_type	exc_value	tracebacks       r   	__aexit__zDisplayFixture.__aexit__T   s2      	4 %%'''s   9AAA)NN )r   zBackendFixture | Noner   z&Browser | BrowserContext | Page | Noner   strreturnNone)r#   r   rE   rF   )NT)r'   rD   r(   z
Any | Noner)   boolrE   rF   )rE   r	   )rE   r   )r?   ztype[BaseException] | Noner@   zBaseException | NonerA   zTracebackType | NonerE   rF   )__name__
__module____qualname____doc____annotations__r   r$   r!   r"   r<   rB    r   r   r   r      s    D *.9=	%&% 7% 	%
 
%"+" 
" KO

 *
CG
	
((,( (( (	(
 
(r   r   N)
__future__r   
contextlibr   typesr   typingr   playwright.async_apir   r   r	   r
   r   reactpy.configr   reactpy.testing.backendr   reactpy.typesr   r   rM   r   r   <module>rV      s2    " %    ; 2 2G( G(r   