Ë
    êmxiØ#  ã                   ó~   — d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dlZd dlZd dl	Z	 G d„ de	j                  «      Zy)é    N)ÚPopen)Úmkdtempc                   ó>   — e Zd Zd„ Zd„ Zd
d„Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
y)ÚAutoreloadTestc                 óV   — d| _         t        «       | _        | j                  ddi«       y )Ni   zrun_twice_magic.pya‘  
                    import os
                    import sys

                    import tornado.autoreload

                    sys.stdout.flush()

                    if "TESTAPP_STARTED" not in os.environ:
                        os.environ["TESTAPP_STARTED"] = "1"
                        tornado.autoreload._reload()
                    else:
                        os._exit(0)
                )ÚmaxDiffr   ÚpathÚwrite_files©Úselfs    úS/home/htdocs/ttos/venv/lib/python3.12/site-packages/tornado/test/autoreload_test.pyÚsetUpzAutoreloadTest.setUp   s/   € àˆŒä“IˆŒ	ð 	×Ñà$ð 'ðõ	
ó    c                 óÊ   — 	 t        j                  | j                  «       y # t        $ r7 t	        j
                  d«       t        j                  | j                  «       Y y w xY w)Né   )ÚshutilÚrmtreer	   ÚOSErrorÚtimeÚsleepr   s    r   ÚtearDownzAutoreloadTest.tearDown-   sC   € ð		%Ü�M‰M˜$Ÿ)™)Õ$øÜò 	%ô �J‰J�qŒMÜ�M‰M˜$Ÿ)™)Ö$ð	%ús   ‚" ¢=A"Á!A"Nc                 ó  — |€| j                   }|j                  «       D ]Ò  \  }}t        |t        «      rdt	        j
                  t        j                   j                  ||«      «       | j                  |t        j                   j                  ||«      «       Œzt        t        j                   j                  ||«      dd¬«      5 }|j                  t        j                  |«      «       ddd«       ŒÔ y# 1 sw Y   ŒßxY w)z¤Write a directory tree to self.path.

        tree is a dictionary mapping file names to contents, or
        sub-dictionaries representing subdirectories.
        NÚwúutf-8)Úencoding)r	   ÚitemsÚ
isinstanceÚdictÚosÚmkdirÚjoinr
   ÚopenÚwriteÚtextwrapÚdedent)r   ÚtreeÚ	base_pathÚnameÚcontentsÚfs         r   r
   zAutoreloadTest.write_files9   s½   € ð ÐØŸ	™	ˆIØ"Ÿj™j›lò 	7‰NˆD�(Ü˜(¤DÔ)Ü—‘œŸ™Ÿ™ i°Ó6Ô7Ø× Ñ  ¬2¯7©7¯<©<¸	À4Ó+HÕIäœ"Ÿ'™'Ÿ,™, y°$Ó7¸ÀwÔOð 7ÐSTØ—G‘GœHŸO™O¨HÓ5Ô6÷7ð 7ñ	7÷
7ð 7ús   Ã%C5Ã5C>	c                 ó  — t        j                  «       g}dt         j                  v rq|t         j                  d   j                  t         j                  «      D �cg c]4  }t         j
                  j                  t        j                  «       |«      ‘Œ6 c}z  }t         j                  j                  |«      }t        |t        j                  t        t         j                  |¬«      | j
                  dd¬«      }t        d«      D ])  }|j                  «       � n2t        j                  d«       Œ+ |j                  «        t!        d«      ‚|j#                  «       d	   }| j%                  |j&                  d	«       |S c c}w )
NÚ
PYTHONPATH)r,   Tr   )ÚstdoutÚenvÚcwdÚuniversal_newlinesr   é(   gš™™™™™¹?zsubprocess failed to terminater   )r   ÚgetcwdÚenvironÚsplitÚpathsepr	   r!   r   Ú
subprocessÚPIPEr   ÚrangeÚpollr   r   ÚkillÚ	ExceptionÚcommunicateÚassertEqualÚ
returncode)r   ÚargsÚpartsÚpartÚ
pythonpathÚpÚiÚouts           r   Úrun_subprocesszAutoreloadTest.run_subprocessI   s!  € ô —‘“�ˆØœ2Ÿ:™:Ñ%ØäŸJ™J |Ñ4×:Ñ:¼2¿:¹:ÓFöàô —‘—‘œRŸY™Y›[¨$Õ/òñ ˆEô —Z‘Z—_‘_ UÓ+ˆ
äØÜ—?‘?Ü”R—Z‘Z¨JÔ7Ø—	‘	Ø#Øô
ˆô �r“ò 	>ˆAØ�v‰v‹xÐ#ÙÜ�J‰J�s�Oð	>ð
 �F‰FŒHÜÐ<Ó=Ð=à�m‰m‹o˜aÑ ˆØ×Ñ˜Ÿ™ qÔ)Øˆ
ùò7s   Á9E=c                 óê  — d}| j                  dd|dœi«       dD �]$  }| j                  |¬«      5  | j                  d¬«      5  |rt        j                  d	d
g}nt        j                  g}| j	                  |d	dgz   «      }| j                  |d«       d d d «       | j                  d¬«      5  | j	                  dgz   «      }|rdnd}| j                  ||› d�dz  «       d d d «       | j                  d¬«      5  | j	                  dgz   «      }|rdnd}| j                  ||› d�dz  «       d d d «       d d d «       �Œ' y # 1 sw Y   Œ±xY w# 1 sw Y   ŒoxY w# 1 sw Y   Œ-xY w# 1 sw Y   �ŒWxY w)Na›  import sys

# In module mode, the path is set to the parent directory and we can import testapp.
try:
    import testapp
except ImportError:
    print("import testapp failed")
else:
    print("import testapp succeeded")

spec = getattr(sys.modules[__name__], '__spec__', None)
print(f"Starting {__name__=}, __spec__.name={getattr(spec, 'name', None)}")
exec(open("run_twice_magic.py", encoding="utf-8").read())
ÚtestappÚ ©z__init__.pyz__main__.py)FT)ÚwrapperÚmodule)Úmodeú-mútornado.autoreloadz¬import testapp succeeded
Starting __name__='__main__', __spec__.name=testapp.__main__
import testapp succeeded
Starting __name__='__main__', __spec__.name=testapp.__main__
Úfileztestapp/__main__.pyzimport testapp succeededzimport testapp failedz2
Starting __name__='__main__', __spec__.name=None
é   Ú	directoryz6
Starting __name__='__main__', __spec__.name=__main__
)r
   ÚsubTestÚsysÚ
executablerF   r=   )r   ÚmainrK   Ú	base_argsrE   Úexpect_imports         r   Útest_reloadzAutoreloadTest.test_reloadk   sÈ  € ðˆð" 	×ÑàØ#%Ø#'ñðô	
ð %ó 1	ˆGØ—‘ g�Ó.ñ 0Ø—\‘\ x�\Ó0ñ ÙÜ%(§^¡^°TÐ;OÐ$P™	ä%(§^¡^Ð$4˜	ð ×-Ñ-¨i¸4ÀÐ:KÑ.KÓL�CØ×$Ñ$Øðô÷ð" —\‘\ v�\Ó.ñ Ø×-Ñ-¨iÐ;PÐ:QÑ.QÓR�Cñ #ñ 3à4ð "ð ×$Ñ$ØØ(˜/Ð)]Ð^Øñô÷ð" —\‘\ {�\Ó3ñ ð ×-Ñ-¨i¸9¸+Ñ.EÓF�Cñ #ñ 3à4ð "ð
 ×$Ñ$ØØ(˜/Ð)aÐbØñô÷÷G0ñ 0ñ1	÷ð ú÷"ð ú÷"ð ú÷G0ñ 0úsT   ±E(ÁAEÂE(Â.4EÃ"E(Ã<4EÄ0E(ÅEÅ	E(ÅEÅE(ÅE%Å!E(Å(E2	c                 ó    — d}| j                  dd|dœi«       | j                  t        j                  ddddg«      }| j	                  |d«       y )Na  import sys

# This import will fail if path is not set up correctly
import testapp

if 'tornado.autoreload' not in sys.modules:
    raise Exception('started without autoreload wrapper')

print('Starting')
exec(open("run_twice_magic.py", encoding="utf-8").read())
rH   rI   rJ   rN   rO   zStarting
Starting
©r
   rF   rT   rU   r=   ©r   rV   rE   s      r   Ú test_reload_wrapper_preservationz/AutoreloadTest.test_reload_wrapper_preservation¼   sd   € ðˆð 	×ÑàØ#%Ø#'ñðô	
ð ×!Ñ!Ü�^‰^˜TÐ#7¸¸yÐIó
ˆð 	×Ñ˜Ð.Õ/r   c           
      ó    — d}| j                  d|i«       | j                  t        j                  dddddddg«      }| j	                  |d«       y )	Nz“import os
import sys

print(os.path.basename(sys.argv[0]))
print(f'argv={sys.argv[1:]}')
exec(open("run_twice_magic.py", encoding="utf-8").read())
úmain.pyrN   rO   Úarg1z--arg2Úarg3z\main.py
argv=['arg1', '--arg2', '-m', 'arg3']
main.py
argv=['arg1', '--arg2', '-m', 'arg3']
r[   r\   s      r   Útest_reload_wrapper_argsz'AutoreloadTest.test_reload_wrapper_argsÛ   sd   € ðˆð 	×Ñ˜) TÐ*Ô+ð ×!Ñ!ä—‘ØØ$ØØØØØð	ó
ˆð 	×Ñ˜ÐTÕUr   c                 óš   — d}| j                  d|i«       | j                  t        j                  ddddg«      }| j	                  |d«       y )NzÂimport os
import sys

if "TESTAPP_STARTED" in os.environ:
    print("exiting cleanly")
    sys.exit(0)
else:
    print("reloading")
    exec(open("run_twice_magic.py", encoding="utf-8").read())
r_   rN   rO   z--until-successzreloading
exiting cleanly
r[   r\   s      r   Ú!test_reload_wrapper_until_successz0AutoreloadTest.test_reload_wrapper_until_successø   sU   € ð
ˆð 	×Ñ˜) TÐ*Ô+à×!Ñ!Ü�^‰^˜TÐ#7Ð9JÈIÐVó
ˆð 	×Ñ˜Ð<Õ=r   )N)Ú__name__Ú
__module__Ú__qualname__r   r   r
   rF   rY   r]   rb   rd   © r   r   r   r      s/   „ ò
ò@
%ó7ò  òDOòb0ò>Vó:>r   r   )r   r   r6   r   rT   Útempfiler   r$   r   ÚunittestÚTestCaser   rh   r   r   ú<module>rl      s4   ðÛ 	Û Û Ý Û 
Ý Û Û Û ô@>�X×&Ñ&õ @>r   