Ë
    nûàgê  ã                   óX   — d Z ddlZddlZddlZddlZddlZ G d„ d«      Z G d„ d«      Zy)zdevelop testsé    Nc                   ó.   — e Zd Zd„ Zed„ «       Zd„ Zd„ Zy)ÚTestSandboxc                 ó¼   — t         j                  j                  t        |«      «      5  | j	                  t
        j                  «       d d d «       y # 1 sw Y   y xY w©N)Ú
setuptoolsÚsandboxÚDirectorySandboxÚstrÚ_file_writerÚosÚdevnull)ÚselfÚtmpdirs     ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/setuptools/tests/test_sandbox.pyÚtest_devnullzTestSandbox.test_devnull   sA   € Ü×Ñ×0Ñ0´°V³Ó=ñ 	*Ø×ÑœbŸj™jÔ)÷	*÷ 	*ñ 	*ús   © AÁAc                 ó   ‡ — ˆ fd„}|S )Nc                  ón   •— t        ‰dd¬«      5 } | j                  d«       d d d «       y # 1 sw Y   y xY w)NÚwúutf-8©ÚencodingÚxxx)ÚopenÚwrite)ÚfÚpaths    €r   Údo_writez*TestSandbox._file_writer.<locals>.do_write   s1   ø€ Ü�d˜C¨'Ô2ð °aØ—‘˜”÷÷ ñ ús   �+«4© )r   r   s   ` r   r   zTestSandbox._file_writer   s   ø€ ô	ð ˆó    c                 óÖ   — t        j                  t        d«      }t        j                  d«      }t
        j                  j                  |t        |«      «       |j                  dk(  sJ ‚y)zT
        It should be possible to execute a setup.py with a Byte Order Mark
        zscript-with-bom.pyÚ	namespaceÚpassedN)
Úpkg_resourcesÚresource_filenameÚ__name__ÚtypesÚ
ModuleTyper   r   Ú	_execfileÚvarsÚresult)r   Útargetr!   s      r   Útest_setup_py_with_BOMz"TestSandbox.test_setup_py_with_BOM   sU   € ô ×0Ñ0´Ð;OÓPˆÜ×$Ñ$ [Ó1ˆ	Ü×Ñ×$Ñ$ V¬T°)«_Ô=Ø×Ñ 8Ò+Ð+Ñ+r   c                 óÞ   — |dz  }|j                  d«      5 }|j                  d«       d d d «       t        j                  j	                  t        |«      t        «       «       y # 1 sw Y   Œ;xY w)Nzsetup.pyÚwbs   "degenerate script"
)r   r   r   r   r(   r
   Úglobals)r   r   Úsetup_pyÚstreams       r   Útest_setup_py_with_CRLFz#TestSandbox.test_setup_py_with_CRLF"   sX   € Ø˜JÑ&ˆØ�]‰]˜4Ó ð 	5 FØ�L‰LÐ3Ô4÷	5ä×Ñ×$Ñ$¤S¨£]´G³IÕ>÷	5ð 	5ús   —A#Á#A,N)r%   Ú
__module__Ú__qualname__r   Ústaticmethodr   r,   r2   r   r   r   r   r      s%   „ ò*ð ñó ðò,ó?r   r   c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTestExceptionSaverc                 ón   — t         j                  j                  «       5  t        d«      ‚# 1 sw Y   y xY w©NÚdetails)r   r   ÚExceptionSaverÚ
ValueError©r   s    r   Útest_exception_trappedz)TestExceptionSaver.test_exception_trapped*   s/   € Ü×Ñ×.Ñ.Ó0ñ 	(Ü˜YÓ'Ð'÷	(ð 	(ús   Ÿ+«4c                 óZ  — t         j                  j                  «       5 }t        d«      ‚# 1 sw Y   nxY wt	        j
                  t        «      5 }j                  «        d d d «       n# 1 sw Y   nxY wt        j                  t        «      sJ ‚t        |j                  «      dk(  sJ ‚y r9   )
r   r   r;   r<   ÚpytestÚraisesÚresumeÚ
isinstanceÚvaluer
   )r   Ú	saved_excÚcaughts      r   Útest_exception_resumedz)TestExceptionSaver.test_exception_resumed.   s�   € Ü×Ñ×.Ñ.Ó0ð 	(°IÜ˜YÓ'Ð'÷	(ð 	(úô �]‰]œ:Ó&ð 	¨&Ø×ÑÔ÷	÷ 	ñ 	úô ˜&Ÿ,™,¬
Ô3Ð3Ð3Ü�6—<‘<Ó  IÒ-Ð-Ñ-s   Ÿ+«4ÁA*Á*A3c                 óJ  — t        d«      }t        j                  j                  «       5 }|‚# 1 sw Y   nxY wt	        j
                  t         «      5 }j                  «        d d d «       n# 1 sw Y   nxY wt        j                  t         «      sJ ‚|j                  |usJ ‚y r9   )	r<   r   r   r;   r@   rA   rB   rC   rD   )r   Úorig_excrE   rF   s       r   Útest_exception_reconstructedz/TestExceptionSaver.test_exception_reconstructed8   sŽ   € Ü˜iÓ(ˆä×Ñ×.Ñ.Ó0ð 	°IØˆN÷	ð 	úô �]‰]œ:Ó&ð 	¨&Ø×ÑÔ÷	÷ 	ñ 	úô ˜&Ÿ,™,¬
Ô3Ð3Ð3Ø�|‰| 8Ñ+Ð+Ñ+s   ª-­6ÁA,Á,A5c                 óŒ   — t         j                  j                  «       5 }	 d d d «       j                  «        y # 1 sw Y   ŒxY wr   )r   r   r;   rB   )r   rE   s     r   Ú test_no_exception_passes_quietlyz3TestExceptionSaver.test_no_exception_passes_quietlyD   s<   € Ü×Ñ×.Ñ.Ó0ð 	°IØ÷	ð 	×ÑÕ÷	ð 	ús	   Ÿ:ºAc                 ób  —  G d„ dt         «      }t        j                  j                  «       5 } |d«      ‚# 1 sw Y   nxY wt	        j
                  t        j                  j                  «      5 }j                  «        d d d «       n# 1 sw Y   nxY wt        j                  «      dk(  sJ ‚y )Nc                   ó   — e Zd ZdZdefd„Zy)úFTestExceptionSaver.test_unpickleable_exception.<locals>.CantPickleThisz:This Exception is unpickleable because it's not in globalsÚreturnc                 ó    — d| j                   ›�S )NÚCantPickleThis)Úargsr=   s    r   Ú__repr__zOTestExceptionSaver.test_unpickleable_exception.<locals>.CantPickleThis.__repr__N   s   € Ø'¨¯	©	 }Ð5Ð5r   N)r%   r3   r4   Ú__doc__r
   rT   r   r   r   rR   rO   K   s   „ ÙHð6 #ô 6r   rR   ÚdetailzCantPickleThis('detail',))
Ú	Exceptionr   r   r;   r@   rA   ÚUnpickleableExceptionrB   r
   rD   )r   rR   rE   rF   s       r   Útest_unpickleable_exceptionz.TestExceptionSaver.test_unpickleable_exceptionJ   s–   € ô	6œYô 	6ô ×Ñ×.Ñ.Ó0ð 	+°IÙ  Ó*Ð*÷	+ð 	+úô �]‰]œ:×-Ñ-×CÑCÓDð 	ÈØ×ÑÔ÷	÷ 	ñ 	úô �6—<‘<Ó Ð$?Ò?Ð?Ñ?s   ®	7·A Á0B
Â
Bc                 ó~  —  G d„ dt         «      }t        j                  t        j                  j
                  «      5 }t        j                  j                  «       5  t        j                  j                  «        |‚# 1 sw Y   nxY w	 ddd«       n# 1 sw Y   nxY wj                  j                  \  }|dk(  sJ ‚y)z£
        As revealed in #440, an infinite recursion can occur if an unpickleable
        exception while setuptools is hidden. Ensure this doesn't happen.
        c                   ó   — e Zd ZdZy)úaTestExceptionSaver.test_unpickleable_exception_when_hiding_setuptools.<locals>.ExceptionUnderTestzE
            An unpickleable exception (not in globals).
            N)r%   r3   r4   rU   r   r   r   ÚExceptionUnderTestr\   _   s   „ òr   r]   NzExceptionUnderTest())
rW   r@   rA   r   r   rX   Úsave_modulesÚhide_setuptoolsrD   rS   )r   r]   rF   Úmsgs       r   Ú2test_unpickleable_exception_when_hiding_setuptoolszETestExceptionSaver.test_unpickleable_exception_when_hiding_setuptoolsY   s    € ô	¤ô 	ô
 �]‰]œ:×-Ñ-×CÑCÓDð 	)ÈÜ×#Ñ#×0Ñ0Ó2ñ )Ü×"Ñ"×2Ñ2Ô4Ø(Ð(÷)ð )úð )÷	)÷ 	)ñ 	)úð
 —‘×"Ñ"‰ˆØÐ,Ò,Ð,Ñ,s   ½BÁ!A=Á=B	ÂBÂBc                 óh  — d„ }t        j                  t        j                  j                  «      5 }t        j                  j                  «       5  t        j                  j                  «        t        j                  j                  t        |«      «      5   |«        ddd«       ddd«       ddd«       j                  j                  \  }}}|dk(  sJ ‚|dk(  sJ ‚|ddik(  sJ ‚t        |j                  «      }d|v sJ ‚d|v sJ ‚d|v sJ ‚y# 1 sw Y   ŒrxY w# 1 sw Y   ŒvxY w# 1 sw Y   ŒzxY w)	z°
        When in a sandbox with setuptools hidden, a SandboxViolation
        should reflect a proper exception and not be wrapped in
        an UnpickleableException.
        c                  óL   — t        ddd¬«      5  	 ddd«       y# 1 sw Y   yxY w)z9Trigger a SandboxViolation by writing outside the sandboxú/etc/foor   r   r   N)r   r   r   r   Ú
write_filezVTestExceptionSaver.test_sandbox_violation_raised_hiding_setuptools.<locals>.write_files   s&   € ä�j #°Ô8ñ Ø÷÷ ñ ús   �š#Nr   )rd   r   r   r   z('/etc/foo', 'w')z{'encoding': 'utf-8'})r@   rA   r   r   ÚSandboxViolationr^   r_   r	   r
   rD   rS   )r   r   re   rF   ÚcmdrS   Úkwargsr`   s           r   Ú/test_sandbox_violation_raised_hiding_setuptoolszBTestExceptionSaver.test_sandbox_violation_raised_hiding_setuptoolsl   s  € ò	ô
 �]‰]œ:×-Ñ-×>Ñ>Ó?ð 	!À6Ü×#Ñ#×0Ñ0Ó2ñ !Ü×"Ñ"×2Ñ2Ô4Ü×'Ñ'×8Ñ8¼¸V»ÓEñ !Ù”L÷!÷!÷	!ð #ŸL™L×-Ñ-ÑˆˆT�6Ø�fŠ}Ðˆ}ØÐ(Ò(Ð(Ð(Ø˜* gÐ.Ò.Ð.Ð.ä�&—,‘,ÓˆØ˜‰}Ðˆ}Ø" cÑ)Ð)Ð)Ø&¨#Ñ-Ð-Ñ-÷!ð !ú÷!ð !ú÷	!ð 	!ús<   ±D(ÁADÂDÂDÂ'D(ÄDÄDÄD%	Ä!D(Ä(D1N)
r%   r3   r4   r>   rG   rJ   rL   rY   ra   ri   r   r   r   r7   r7   )   s&   „ ò(ò.ò
,òò@ò-ó&.r   r7   )	rU   r   r&   r@   r#   Úsetuptools.sandboxr   r   r7   r   r   r   ú<module>rk      s-   ðÙ ã 	Û ã ã Û ÷?ñ ?÷:].ò ].r   