ó
    1‚Ej  ã                  óÐ   • S SK Jr  S SKrS SKJs  Jr  S SKrS SK	r	S SK
JrJr  S SKrS SKrS SKJrJrJrJrJrJr  \R,                  " SS9S 5       rS rS	 rS
 rS rS rS rS rg)é    )ÚannotationsN)ÚpatchÚ	MagicMock)Úhandle_file_listÚhandle_file_readÚhandle_file_writeÚhandle_file_deleteÚhandle_file_renameÚhandle_file_createT)Úautousec              #  ó®   #   • [         R                  R                  n[        U 5      [         R                  l        U v •  U[         R                  l        g7f)z>Override BASE_PATH with a temporary folder for isolated tests.N)ÚactionsÚfile_managerÚ	BASE_PATHÚstr)Útmp_pathÚoriginal_bases     ÚED:\Programs\laragon\www\wolf\agent\tests\test_actions_file_manager.pyÚsetup_temp_base_pathr      s=   é € ô ×(Ñ(×2Ñ2€MÜ%(¨£]„G×ÑÔ"Ø
‚NØ%2„G×ÑÕ"ùs   ‚AAc                ó¬  • [         R                  R                  [        U 5      SS5      n[	        SU05      nUS   nSoCUL oU(       do  [
        R                  " SU4SX445      [
        R                  " U5      [
        R                  " U5      S.-  nS	S
U0-  n[        [
        R                  " U5      5      eS =n=pTSo2S   oCU;   oU(       do  [
        R                  " SU4SX445      [
        R                  " U5      [
        R                  " U5      S.-  nS	S
U0-  n[        [
        R                  " U5      5      eS =n=pT[        SU05      nUS   nSoCUL oU(       do  [
        R                  " SU4SX445      [
        R                  " U5      [
        R                  " U5      S.-  nS	S
U0-  n[        [
        R                  " U5      5      eS =n=pTSo8S   oCU;   oU(       do  [
        R                  " SU4SX445      [
        R                  " U5      [
        R                  " U5      S.-  nS	S
U0-  n[        [
        R                  " U5      5      eS =n=pTg )Nz..Úoutside_dirÚpathÚsuccessF©Úis©z%(py1)s is %(py4)s©Úpy1Úpy4úassert %(py6)sÚpy6zoutside of base directoryÚerror©Úin©z%(py1)s in %(py4)s)Úosr   Újoinr   r   Ú
@pytest_arÚ_call_reprcompareÚ	_safereprÚAssertionErrorÚ_format_explanationr   )	r   Úoutside_pathÚresÚ@py_assert0Ú@py_assert3Ú@py_assert2Ú@py_format5Ú@py_format7Úres_reads	            r   Ú+test_verify_safe_path_blocks_path_traversalr5      st  € ä—7‘7—<‘<¤ H£¨t°]ÓC€Lä
˜F LÐ1Ó
2€CØˆy‰>Ð"˜UÐ"˜UÐ"×"×"×"Ò"ˆ>×"×"Ô"ˆ>×"×"Ó"˜U×"×"×"×"×"×"Ó"Ø&Ð6¨g©,Ð6¨,Ñ6×6×6×6Ò6Ð&×6×6Ô6Ð&×6×6Ó6¨,×6×6×6×6×6×6Ó6ä ¨Ð 6Ó7€HØ�IÑÐ' %Ð' %Ð'×'×'×'Ò'Ð×'×'Ô'Ð×'×'Ó' %×'×'×'×'×'×'Ó'Ø&Ð;°7Ñ*;Ð;Ð*;Ñ;×;×;×;Ò;Ð&×;×;Ô;Ð&×;×;Ó;Ð*;×;×;×;×;×;×;Ô;ó    c                ó.  • [         R                  " [         R                  R                  [	        U 5      S5      SS9  [        [         R                  R                  [	        U 5      S5      SSS9 nUR                  S5        S S S 5        [        S	S
05      nUS   nSoCUL oU(       do  [        R                  " SU4SX445      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pTUS   n[        U5      nSo•U	:H  oª(       Gd  [        R                  " SU
4SXY45      S[        R                  " 5       ;   d  [        R                   " [        5      (       a  [        R                  " [        5      OSS[        R                  " 5       ;   d  [        R                   " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U	5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=p©U Vs/ sH  oÌS   PM	     nnSo3U;   oU(       d¥  [        R                  " SU4SX=45      [        R                  " U5      S[        R                  " 5       ;   d  [        R                   " U5      (       a  [        R                  " U5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =p5So3U;   oU(       d¥  [        R                  " SU4SX=45      [        R                  " U5      S[        R                  " 5       ;   d  [        R                   " U5      (       a  [        R                  " U5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =p5[#        S  U 5       5      nUS!   nS"oCU:H  oU(       do  [        R                  " SU4S#X445      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pTUS$   nS%oCU:H  oU(       do  [        R                  " SU4S#X445      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pTUS&   nS oCULoU(       do  [        R                  " S'U4S(X445      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pT[#        S) U 5       5      nUS!   nS*oCU:H  oU(       do  [        R                  " SU4S#X445      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pTUS$   nS oCUL oU(       do  [        R                  " SU4SX445      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pTg ! , (       d  f       GN= fs  snf )+NÚpublicT©Úexist_okútest.txtÚwúutf-8©Úencodingzhello worldr   Ú/r   r   r   r   r    r!   Úitemsé   ©ú==)z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sÚlen)Úpy0r   Úpy3r!   zassert %(py8)sÚpy8Únamer#   )z%(py1)s in %(py3)sÚnames)r   rG   zassert %(py5)sÚpy5c              3  ó8   #   • U H  oS    S:X  d  M  Uv •  M     g7f)rI   r;   N© ©Ú.0Úis     r   Ú	<genexpr>Ú0test_handle_file_list_success.<locals>.<genexpr>9   s   é € Ð@™u˜!¨&©	°ZÑ(?—A‘Ašuùó   ‚‘	ÚtypeÚfile©z%(py1)s == %(py4)sÚsizez11 BÚmodified_at)úis not)z%(py1)s is not %(py4)sc              3  ó8   #   • U H  oS    S:X  d  M  Uv •  M     g7f)rI   r8   NrM   rN   s     r   rQ   rR   >   s   é € Ð>™u˜!¨&©	°XÑ(=—A‘AšuùrS   Úfolder)r&   Úmakedirsr   r'   r   ÚopenÚwriter   r(   r)   r*   r+   r,   rE   Ú@py_builtinsÚlocalsÚ_should_repr_global_nameÚnext)r   Úfr.   r/   r0   r1   r2   r3   rA   Ú@py_assert5Ú@py_assert4Ú@py_format9rP   rJ   Ú@py_format4Ú@py_format6Útxt_itemÚdir_items                     r   Útest_handle_file_list_successrk   )   s×  € ä‡K‚K”—‘—‘œS ›]¨HÓ5ÀÒEÜ	Œb�g‰g�l‰lœ3˜x›=¨*Ó5°sÀWÒ	MÐQRØ	�‰�Ô÷ 
Nô ˜F C˜=Ó
)€CØˆy‰>Ð!˜TÐ!˜TÐ!×!×!×!Ò!ˆ>×!×!Ô!ˆ>×!×!Ó!˜T×!×!×!×!×!×!Ó!à�‰L€EÜˆu‹:Ð˜Ð˜‰?×××Óˆ:×××××ÕŒ3×××ÑŒ3×××××Öˆu×××Ñˆu××Õˆ:××Ó˜××××××Óá %Ó&¡˜1ˆvŒY¡€EÐ&ØÐ�uÑ×××Òˆ8××Ôˆ8×××××Ô�u×××Ñ�u××××××ÓØÐ˜Ñ×××Òˆ:××Ôˆ:×××××Ô˜×××Ñ˜××××××ÓäÑ@™uÓ@Ó@€HØ�FÑÐ%˜vÐ%˜vÑ%×%×%×%Ò%Ð×%×%Ô%Ð×%×%Ó%˜v×%×%×%×%×%×%Ó%Ø�FÑÐ%˜vÐ%˜vÑ%×%×%×%Ò%Ð×%×%Ô%Ð×%×%Ó%˜v×%×%×%×%×%×%Ó%Ø�MÑ"Ð.¨$Ð.¨$Ð.×.×.×.Ò.Ð"×.×.Ô.Ð"×.×.Ó.¨$×.×.×.×.×.×.Ó.äÑ>™uÓ>Ó>€HØ�FÑÐ'˜xÐ'˜xÑ'×'×'×'Ò'Ð×'×'Ô'Ð×'×'Ó'˜x×'×'×'×'×'×'Ó'Ø�FÑÐ#˜tÐ#˜tÐ#×#×#×#Ò#Ð×#×#Ô#Ð×#×#Ó#˜t×#×#×#×#×#×#Ô#÷) 
NÖ	Müò 's   Á/Z ÉZÚ 
Zc                óþ  • [         R                  R                  [        U 5      S5      n[	        USSS9 nUR                  S5        S S S 5        [        SS05      nUS   nSoTUL of(       do  [        R                  " S	U4S
XE45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=peUS   nSoTU:H  of(       do  [        R                  " SU4SXE45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pe[        SSS9   [        SS05      nUS   nSoTUL of(       do  [        R                  " S	U4S
XE45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=peSoCS   oTU;   of(       do  [        R                  " SU4SXE45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=peS S S 5        [	        US5       nUR                  S5        S S S 5        [        SS05      nUS   nSoTUL of(       do  [        R                  " S	U4S
XE45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=peSoCS   oTU;   of(       do  [        R                  " SU4SXE45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=peg ! , (       d  f       GN‰= f! , (       d  f       GN]= f! , (       d  f       GNI= f)Nr;   r<   r=   r>   zcontent of text filer   r   Tr   r   r   r    r!   ÚcontentrC   rV   zos.path.getsizeé   )Úreturn_valueFú#exceeds maximum allowed size of 2MBr"   r#   r%   Úwbs   some binary   contentzBinary files are not allowed)r&   r   r'   r   r]   r^   r   r(   r)   r*   r+   r,   r   )	r   Ú	file_pathrc   r.   r/   r0   r1   r2   r3   s	            r   Ú(test_handle_file_read_success_and_limitsrs   C   sŒ  € Ü—‘—‘œS ›]¨JÓ7€Iô 
ˆi˜ wÒ	/°1Ø	�‰Ð&Ô'÷ 
0ô ˜F JÐ/Ó
0€CØˆy‰>Ð!˜TÐ!˜TÐ!×!×!×!Ò!ˆ>×!×!Ô!ˆ>×!×!Ó!˜T×!×!×!×!×!×!Ó!Øˆy‰>Ð3Ð3Ð3Ð3Ñ3×3×3×3Ò3ˆ>×3×3Ô3ˆ>×3×3Ó3Ð3×3×3×3×3×3×3Ó3ô 
Ð Ð/BÓ	CÜ ¨
Ð3Ó4ˆØ�9‰~Ð& Ð& Ð&×&×&×&Ò&ˆ~×&×&Ô&ˆ~×&×&Ó& ×&×&×&×&×&×&Ó&Ø4ÐD¸G¹ÐD¸ÑD×D×D×DÒDÐ4×D×DÔDÐ4×D×DÓD¸×D×D×D×D×D×DÓD÷ 
Dô 
ˆi˜Ô	 !Ø	�‰Ð+Ô,÷ 
ä
˜F JÐ/Ó
0€CØˆy‰>Ð"˜UÐ"˜UÐ"×"×"×"Ò"ˆ>×"×"Ô"ˆ>×"×"Ó"˜U×"×"×"×"×"×"Ó"Ø)Ð9°©\Ð9¨\Ñ9×9×9×9Ò9Ð)×9×9Ô9Ð)×9×9Ó9¨\×9×9×9×9×9×9Ô9÷% 
0Ö	/ú÷ 
DÖ	Cú÷ 
Ö	ús$   µO	Å/DOÊO-Ï	
OÏ
O*Ï-
O<c                óL	  • [         R                  R                  [        U 5      S5      n[	        SSS.5      nUS   nSoCUL oU(       do  [
        R                  " SU4SX445      [
        R                  " U5      [
        R                  " U5      S.-  nS	S
U0-  n[        [
        R                  " U5      5      eS =n=pTUS   nSoCUL oU(       do  [
        R                  " SU4SX445      [
        R                  " U5      [
        R                  " U5      S.-  nS	S
U0-  n[        [
        R                  " U5      5      eS =n=pT[         R                  oˆR                  oD" U5      o™(       Gd  SS[        R                  " 5       ;   d  [
        R                  " [         5      (       a  [
        R                  " [         5      OS[
        R                  " U5      [
        R                  " U5      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U	5      S.-  n
[        [
        R                  " U
5      5      eS =n=pI[        USSS9 nUR                  oˆ" 5       nSo”U	:H  oÌ(       dÏ  [
        R                  " SU4SXI45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      [
        R                  " U	5      S.-  n
SSU
0-  n[        [
        R                  " U5      5      eS =n=n=pÉS S S 5        SS-  n[	        SUS.5      nUS   nSoCUL oU(       do  [
        R                  " SU4SX445      [
        R                  " U5      [
        R                  " U5      S.-  nS	S
U0-  n[        [
        R                  " U5      5      eS =n=pTSo?S   oCU;   oU(       do  [
        R                  " SU4SX445      [
        R                  " U5      [
        R                  " U5      S.-  nS	S
U0-  n[        [
        R                  " U5      5      eS =n=pTg ! , (       d  f       GN+= f) Nznew_file.txtzatomic content)r   rm   r   Tr   r   r   r    r!   Úwrittenúbassert %(py7)s
{%(py7)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.path
}.exists
}(%(py5)s)
}r&   rr   ©rF   Úpy2r   rK   Úpy7Úrr=   r>   rC   )zC%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.read
}()
} == %(py7)src   )rF   rx   r   ry   zassert %(py9)sÚpy9Úarn   Frp   r"   r#   r%   )r&   r   r'   r   r   r(   r)   r*   r+   r,   Úexistsr_   r`   ra   r]   Úread)r   rr   r.   r/   r0   r1   r2   r3   Ú@py_assert1Ú@py_assert6Ú@py_format8rc   rd   Ú@py_format10Úhuge_contentÚres_huges                   r   Útest_handle_file_write_atomicr…   \   s¶  € Ü—‘—‘œS ›]¨NÓ;€Iä
 ^Ð@PÑQÓ
R€CØˆy‰>Ð!˜TÐ!˜TÐ!×!×!×!Ò!ˆ>×!×!Ô!ˆ>×!×!Ó!˜T×!×!×!×!×!×!Ó!Øˆy‰>Ð!˜TÐ!˜TÐ!×!×!×!Ò!ˆ>×!×!Ô!ˆ>×!×!Ó!˜T×!×!×!×!×!×!Ó!Ü�7‰7Ð$�>‰>Ð$ˆ>˜)Ó$Ð$Ö$×$×$×$×$×$Ñ$Œ2×$×$×$Ñ$Œ2×$×$Õ$ˆ7×$×$Ó$ˆ>×$×$×$×$×$Ô$˜)×$×$×$Ñ$˜)×$×$Õ$Ð$×$×$×$×$×$Ô$ä	ˆi˜ wÒ	/°1Ø�v‰vÐ+ˆv‹xÐ+Ð+Ð+Ð+Ñ+×+×+×+Ò+ˆx×+×+×+×+×+Õ+ˆq×+×+×+Ñ+ˆq×+×+Õ+ˆv×+×+Ó+ˆx×+×+Ó+Ð+×+×+×+×+×+×+Õ+÷ 
0ð Ð-Ñ.€LÜ ¨.À\Ñ!RÓS€HØ�IÑÐ' %Ð' %Ð'×'×'×'Ò'Ð×'×'Ô'Ð×'×'Ó' %×'×'×'×'×'×'Ó'Ø0ÐE¸WÑ4EÐEÐ4EÑE×E×E×EÒEÐ0×E×EÔEÐ0×E×EÓEÐ4E×E×E×E×E×E×EÔE÷ 
0Ö	/ús   É;C5RÒ
R#c                ód  • [         R                  R                  [        U 5      S5      n[         R                  R                  [        U 5      S5      n[	        US5       o3R                  S5        S S S 5        [         R                  " USS9  [        SS05      nUS   nSoeUL ow(       do  [        R                  " S	U4S
XV45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n	[        [        R                  " U	5      5      eS =n=pv[         R                  oªR                  of" U5      o»(       + oÌ(       Gd  SS[        R                  " 5       ;   d  [        R                   " [         5      (       a  [        R                  " [         5      OS[        R                  " U
5      [        R                  " U5      S[        R                  " 5       ;   d  [        R                   " U5      (       a  [        R                  " U5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS =n
=n=p¼[        SS05      nUS   nSoeUL ow(       do  [        R                  " S	U4S
XV45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n	[        [        R                  " U	5      5      eS =n=pv[         R                  oªR                  of" U5      o»(       + oÌ(       Gd  SS[        R                  " 5       ;   d  [        R                   " [         5      (       a  [        R                  " [         5      OS[        R                  " U
5      [        R                  " U5      S[        R                  " 5       ;   d  [        R                   " U5      (       a  [        R                  " U5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS =n
=n=p¼g ! , (       d  f       GN·= f)Nr;   Úsubr<   ÚxTr9   r   r   r   r   r   r    r!   úfassert not %(py7)s
{%(py7)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.path
}.exists
}(%(py5)s)
}r&   rr   rw   Úfolder_path)r&   r   r'   r   r]   r^   r\   r	   r(   r)   r*   r+   r,   r}   r_   r`   ra   )r   rr   rŠ   rc   r.   r/   r0   r1   r2   r3   r   r€   Ú@py_assert8rf   Úres_dirs                  r   Útest_handle_file_deleter�   n   sV  € Ü—‘—‘œS ›]¨JÓ7€IÜ—'‘'—,‘,œs 8›}¨eÓ4€Kä	ˆi˜Ô	 §G¡G¨C¤L×	Ü‡K‚K� dÒ+ô ˜f jÐ1Ó
2€CØˆy‰>Ð!˜TÐ!˜TÐ!×!×!×!Ò!ˆ>×!×!Ô!ˆ>×!×!Ó!˜T×!×!×!×!×!×!Ó!Ü�w‰wÐ(�~‰~Ð(ˆ~˜iÓ(Ð(Ô(Ð(Ö(×(×(×(×(×(Ñ(Œr×(×(×(Ñ(Œr×(×(Õ(ˆw×(×(Ó(ˆ~×(×(×(×(×(Ô(˜i×(×(×(Ñ(˜i×(×(Õ(Ð(×(×(×(×(×(Ö(ô ! &¨% Ó1€GØ�9ÑÐ% Ð% Ð%×%×%×%Ò%Ð×%×%Ô%Ð×%×%Ó% ×%×%×%×%×%×%Ó%Ü�w‰wÐ*�~‰~Ð*ˆ~˜kÓ*Ð*Ô*Ð*Ö*×*×*×*×*×*Ñ*Œr×*×*×*Ñ*Œr×*×*Õ*ˆw×*×*Ó*ˆ~×*×*×*×*×*Ô*˜k×*×*×*Ñ*˜k×*×*Õ*Ð*×*×*×*×*×*×*÷ 
Ö	ús   ÁP Ð 
P/c                ó6	  • [         R                  R                  [        U 5      S5      n[         R                  R                  [        U 5      S5      n[	        US5       o3R                  S5        S S S 5        [        SSS.5      nUS   nSoeUL ow(       do  [        R                  " SU4S	XV45      [        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n	[        [        R                  " U	5      5      eS =n=pv[         R                  oªR                  of" U5      o»(       + oÌ(       Gd  SS[        R                  " 5       ;   d  [        R                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U
5      [        R                  " U5      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS =n
=n=p¼[         R                  oªR                  of" U5      o»(       Gd  SS[        R                  " 5       ;   d  [        R                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U
5      [        R                  " U5      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS =n
=pk[        SSS.5      nUS   nSoeUL ow(       do  [        R                  " SU4S	XV45      [        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n	[        [        R                  " U	5      5      eS =n=pvSo_S   oeU;   ow(       do  [        R                  " SU4SXV45      [        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n	[        [        R                  " U	5      5      eS =n=pvg ! , (       d  f       GN = f)Nzold.txtznew.txtr<   Útest)Úold_pathÚnew_namer   Tr   r   r   r    r!   r‰   r&   rr   rw   rv   Únew_pathz../traversal.txtFzInvalid file name formatr"   r#   r%   )r&   r   r'   r   r]   r^   r
   r(   r)   r*   r+   r,   r}   r_   r`   ra   )r   rr   r’   rc   r.   r/   r0   r1   r2   r3   r   r€   r‹   rf   r�   Úres_invalids                   r   Útest_handle_file_renamer”   €   s”  € Ü—‘—‘œS ›]¨IÓ6€IÜ�w‰w�|‰|œC ›M¨9Ó5€HÜ	ˆi˜Ô	 §G¡G¨F¤O×	ô ¨)ÀÑKÓ
L€CØˆy‰>Ð!˜TÐ!˜TÐ!×!×!×!Ò!ˆ>×!×!Ô!ˆ>×!×!Ó!˜T×!×!×!×!×!×!Ó!Ü�w‰wÐ(�~‰~Ð(ˆ~˜iÓ(Ð(Ô(Ð(Ö(×(×(×(×(×(Ñ(Œr×(×(×(Ñ(Œr×(×(Õ(ˆw×(×(Ó(ˆ~×(×(×(×(×(Ô(˜i×(×(×(Ñ(˜i×(×(Õ(Ð(×(×(×(×(×(Ö(Ü�7‰7Ð#�>‰>Ð#ˆ>˜(Ó#Ð#Ö#×#×#×#×#×#Ñ#Œ2×#×#×#Ñ#Œ2×#×#Õ#ˆ7×#×#Ó#ˆ>×#×#×#×#×#Ô#˜(×#×#×#Ñ#˜(×#×#Õ#Ð#×#×#×#×#×#Ô#ô %°)ÐI[Ñ%\Ó]€KØ�yÑ!Ð* UÐ* UÐ*×*×*×*Ò*Ð!×*×*Ô*Ð!×*×*Ó* U×*×*×*×*×*×*Ó*Ø%Ð=°WÑ)=Ð=Ð)=Ñ=×=×=×=Ò=Ð%×=×=Ô=Ð%×=×=Ó=Ð)=×=×=×=×=×=×=Ô=÷ 
Ö	ús   ÁR	Ò	
Rc                ó,  • [        SSS.5      nUS   nSo2UL oD(       do  [        R                  " SU4SX#45      [        R                  " U5      [        R                  " U5      S.-  nS	S
U0-  n[	        [        R
                  " U5      5      eS =n=pC[        R                  owR                  n[        R                  oˆR                  n	[        U 5      n
So¹" X«5      oÃ" U5      oÝ(       Gd  SS[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      [        R                  " U5      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      [        R                  " U	5      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U
5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  n[	        [        R
                  " U5      5      eS =n=n=n=n	=n
=n=pÍ[        SSS.5      nUS   nSo2UL oD(       do  [        R                  " SU4SX#45      [        R                  " U5      [        R                  " U5      S.-  nS	S
U0-  n[	        [        R
                  " U5      5      eS =n=pC[        R                  owR                  n[        R                  oˆR                  n	[        U 5      n
So¹" X«5      oÃ" U5      oÝ(       Gd  SS[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      [        R                  " U5      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      [        R                  " U	5      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U
5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  n[	        [        R
                  " U5      5      eS =n=n=n=n	=n
=n=pÍg )Nzcreated.txtrU   )r   rT   r   Tr   r   r   r    r!   zäassert %(py19)s
{%(py19)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.path
}.exists
}(%(py17)s
{%(py17)s = %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py5)s.path
}.join
}(%(py13)s
{%(py13)s = %(py10)s(%(py11)s)
}, %(py15)s)
})
}r&   r   r   )rF   rx   r   rK   ry   r{   Úpy10Úpy11Úpy13Úpy15Úpy17Úpy19Úcreated_dirr[   zãassert %(py19)s
{%(py19)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.path
}.isdir
}(%(py17)s
{%(py17)s = %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py5)s.path
}.join
}(%(py13)s
{%(py13)s = %(py10)s(%(py11)s)
}, %(py15)s)
})
})r   r(   r)   r*   r+   r,   r&   r   r}   r'   r   r_   r`   ra   Úisdir)r   r.   r/   r0   r1   r2   r3   r   r€   r‹   Ú@py_assert12Ú@py_assert14Ú@py_assert16Ú@py_assert18Ú@py_format20rŒ   s                   r   Útest_handle_file_creater£   ‘   s;  € ä
 m¸VÑDÓ
E€CØˆy‰>Ð!˜TÐ!˜TÐ!×!×!×!Ò!ˆ>×!×!Ô!ˆ>×!×!Ó!˜T×!×!×!×!×!×!Ó!Ü�7‰7ÐE�>‰>ÐEœ"Ÿ'™'ÐEŸ,™,ÐE¤s¨8£}ÐE°mÐE˜, }ÓDÐEˆ>ÐDÓEÐEÖE×E×E×E×E×EÑEŒ2×E×E×EÑEŒ2×E×EÕEˆ7×E×EÓEˆ>×E×E×E×E×EÔEœ"×E×E×EÑEœ"×E×EÕE˜'×E×EÓE˜,×E×E×E×E×EÔE¤s×E×E×EÑE¤s×E×E×E×E×EÖE¨8×E×E×EÑE¨8×E×EÕE }×E×EÓE°m×E×EÓEÐD×E×EÓEÐE×E×E×E×E×E×EÖEô !¨-ÀÑ!JÓK€GØ�9ÑÐ% Ð% Ð%×%×%×%Ò%Ð×%×%Ô%Ð×%×%Ó% ×%×%×%×%×%×%Ó%Ü�7‰7ÐD�=‰=ÐDœŸ™ÐDŸ™ÐD¤c¨(£mÐD°]ÐD˜ mÓCÐDˆ=ÐCÓDÐDÖD×D×D×D×D×DÑDŒ2×D×D×DÑDŒ2×D×DÕDˆ7×D×DÓDˆ=×D×D×D×D×DÔDœ×D×D×DÑDœ×D×DÕD˜×D×DÓD˜×D×D×D×D×DÔD¤c×D×D×DÑD¤c×D×D×D×D×DÖD¨(×D×D×DÑD¨(×D×DÕD m×D×DÓD°]×D×DÓDÐC×D×DÓDÐD×D×D×D×D×D×D×Dr6   )Ú
__future__r   Úbuiltinsr_   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter(   r&   ÚshutilÚunittest.mockr   r   ÚpytestÚactions.file_managerr   r   r   r   r	   r
   r   Úfixturer   r5   rk   rs   r…   r�   r”   r£   rM   r6   r   Ú<module>r®      sg   ðÝ "ç  „ ƒ	Û ß *Û ã ÷÷ ð ‡‚˜Ññ3ó ð3ò
<ò$ò4:ò2Fò$+ò$>ó"	Er6   