§
    »"½jê  ã                   óf   — 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dS )zdevelop testsé    Nc                   ó6   — e Zd Zd„ Zed„ ¦   «         Zd„ Zd„ ZdS )ÚTestSandboxc                 óÎ   — t           j                             t          |¦  «        ¦  «        5  |                      t
          j        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©N)Ú
setuptoolsÚsandboxÚDirectorySandboxÚstrÚ_file_writerÚosÚdevnull)ÚselfÚtmpdirs     ú]/home/spazio/kingdom_calls/venv/lib/python3.11/site-packages/setuptools/tests/test_sandbox.pyÚtest_devnullzTestSandbox.test_devnull   s™   € ÝÔ×0Ò0µ°V±´Ñ=Ô=ð 	*ð 	*Ø×Ò�bœjÑ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ­ AÁAÁ!Ac                 ó   ‡ — ˆ fd„}|S )Nc                  óˆ   •— t          ‰dd¬¦  «        5 } |                      d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚwúutf-8©ÚencodingÚxxx)ÚopenÚwrite)ÚfÚpaths    €r   Údo_writez*TestSandbox._file_writer.<locals>.do_write   sˆ   ø€ Ý�d˜C¨'Ð2Ñ2Ô2ð °aØ—’˜‘”�ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ”7·;¾;© )r   r   s   ` r   r   zTestSandbox._file_writer   s#   ø€ ð	ð 	ð 	ð 	ð 	ð ˆó    c                 óÖ   — t          j        t          d¦  «        }t          j        d¦  «        }t
          j                             |t          |¦  «        ¦  «         |j	        dk    sJ ‚dS )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   s`   € õ Ô0µÐ;OÑPÔPˆÝÔ$ [Ñ1Ô1ˆ	ÝÔ×$Ò$ V­T°)©_¬_Ñ=Ô=Ð=ØÔ 8Ò+Ð+Ð+Ð+Ð+Ð+r   c                 ó  — |dz  }|                      d¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j                             t          |¦  «        t          ¦   «         ¦  «         d S )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"   s¬   € Ø˜JÑ&ˆØ�]Š]˜4Ñ Ô ð 	5 FØ�LŠLÐ3Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5åÔ×$Ò$¥S¨¡]¤]µG±I´IÑ>Ô>Ð>Ð>Ð>s   ›=½AÁAN)r%   Ú
__module__Ú__qualname__r   Ústaticmethodr   r,   r2   r   r   r   r   r      s\   € € € € € ð*ð *ð *ð ðð ñ „\ðð,ð ,ð ,ð?ð ?ð ?ð ?ð ?r   r   c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestExceptionSaverc                 óx   — t           j                             ¦   «         5  t          d¦  «        ‚# 1 swxY w Y   d S ©NÚdetails)r   r   ÚExceptionSaverÚ
ValueError©r   s    r   Útest_exception_trappedz)TestExceptionSaver.test_exception_trapped*   sa   € ÝÔ×.Ò.Ñ0Ô0ð 	(ð 	(Ý˜YÑ'Ô'Ð'ð	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s   Ÿ/¯3¶3c                 ón  — t           j                             ¦   «         5 }t          d¦  «        ‚# 1 swxY w Y   t	          j        t          ¦  «        5 }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          |j        t          ¦  «        sJ ‚t          |j        ¦  «        dk    sJ ‚d S r9   )
r   r   r;   r<   ÚpytestÚraisesÚresumeÚ
isinstanceÚvaluer
   )r   Ú	saved_excÚcaughts      r   Útest_exception_resumedz)TestExceptionSaver.test_exception_resumed.   s  € ÝÔ×.Ò.Ñ0Ô0ð 	(°IÝ˜YÑ'Ô'Ð'ð	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(õ Œ]�:Ñ&Ô&ð 	¨&Ø×ÒÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ ˜&œ,­
Ñ3Ô3Ð3Ð3Ð3Ý�6”<Ñ Ô  IÒ-Ð-Ð-Ð-Ð-Ð-s   Ÿ/¯3¶3ÁA4Á4A8Á;A8c                 óT  — t          d¦  «        }t          j                             ¦   «         5 }|‚# 1 swxY w Y   t	          j        t           ¦  «        5 }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          |j        t           ¦  «        sJ ‚|j        |usJ ‚d S 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Ô0ð 	°IØˆNð	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]�:Ñ&Ô&ð 	¨&Ø×ÒÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ ˜&œ,­
Ñ3Ô3Ð3Ð3Ð3ØŒ| 8Ð+Ð+Ð+Ð+Ð+Ð+s   ®1±5¸5ÁA6Á6A:Á=A:c                 óœ   — t           j                             ¦   «         5 }	 d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          d S r   )r   r   r;   rB   )r   rE   s     r   Ú test_no_exception_passes_quietlyz3TestExceptionSaver.test_no_exception_passes_quietlyD   s†   € ÝÔ×.Ò.Ñ0Ô0ð 	°IØð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	×ÒÑÔÐÐÐs   Ÿ-­1´1c                 óh  —  G d„ dt           ¦  «        }t          j                             ¦   «         5 } |d¦  «        ‚# 1 swxY w Y   t	          j        t          j        j        ¦  «        5 }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          |j	        ¦  «        dk    sJ ‚d S )Nc                   ó   — e Zd ZdZdefd„ZdS )ú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¨¬	Ð5Ð5Ð5r   N)r%   r3   r4   Ú__doc__r
   rT   r   r   r   rR   rO   K   s5   € € € € € ØHÐHð6 #ð 6ð 6ð 6ð 6ð 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ð 	6ð 	6ð 	6ð 	6�Yñ 	6ô 	6ð 	6õ Ô×.Ò.Ñ0Ô0ð 	+°IØ �. Ñ*Ô*Ð*ð	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+õ Œ]�:Ô-ÔCÑDÔDð 	ÈØ×ÒÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �6”<Ñ Ô Ð$?Ò?Ð?Ð?Ð?Ð?Ð?s!   ²>¾AÁAÁ,BÂBÂBc                 ód  —  G d„ dt           ¦  «        }t          j        t          j        j        ¦  «        5 }t          j                             ¦   «         5  t          j                             ¦   «          |‚# 1 swxY w Y   	 ddd¦  «         n# 1 swxY w Y   |j        j	        \  }|dk    sJ ‚dS )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dS )ú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ÑDÔDð 	)ÈÝÔ#×0Ò0Ñ2Ô2ð )ð )ÝÔ"×2Ò2Ñ4Ô4Ð4Ø(Ð(ð)ð )ð )ð )øøøð )ð )ð )ð )ð )ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð
 ”Ô"‰ˆØÐ,Ò,Ð,Ð,Ð,Ð,Ð,s/   ·BÁ!A7Á7A;	Á;BÁ>A;	Á?BÂBÂBc                 óf  — d„ }t          j        t          j        j        ¦  «        5 }t          j                             ¦   «         5  t          j                             ¦   «          t          j                             t          |¦  «        ¦  «        5   |¦   «          ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   |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 ‚dS )	z°
        When in a sandbox with setuptools hidden, a SandboxViolation
        should reflect a proper exception and not be wrapped in
        an UnpickleableException.
        c                  ó^   — t          ddd¬¦  «        5  	 ddd¦  «         dS # 1 swxY w Y   dS )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Ñ8Ô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Ò2Ñ4Ô4Ð4ÝÔ'×8Ò8½¸V¹¼ÑEÔEð !ð !Ø�J‘L”L�Lð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð #œLÔ-ÑˆˆT�6Ø�fŠ}ˆ}ˆ}ˆ}ØÐ(Ò(Ð(Ð(Ð(Ø˜* gÐ.Ò.Ð.Ð.Ð.å�&”,ÑÔˆØ˜ˆ}ˆ}ˆ}ˆ}Ø" cÐ)Ð)Ð)Ð)Ø&¨#Ð-Ð-Ð-Ð-Ð-Ð-sZ   §CÁAB?ÂB(ÂB?Â(B,Â,B?Â/B,Â0B?Â3CÂ?C	ÃCÃC	ÃCÃCÃC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   