+
    êhê  ã                   óZ   € R t ^ RIt^ RIt^ RIt^ RIt^ RIt ! R R4      t ! R R4      tR# )zdevelop testsNc                   óB   a € ] tR t^t o R t]R 4       tR tR tRt	V t
R# )ÚTestSandboxc                óÞ   € \         P                  P                  \        V4      4      ;_uu_ 4        V P	                  \
        P                  4       R R R 4       R #   + '       g   i     R # ; i©N)Ú
setuptoolsÚsandboxÚDirectorySandboxÚstrÚ_file_writerÚosÚdevnull)ÚselfÚtmpdirs   &&Ú?/usr/lib/python3/dist-packages/setuptools/tests/test_sandbox.pyÚtest_devnullÚTestSandbox.test_devnull   s>   € Ü×Ñ×0Ñ0´°V³×=Õ=Ø×ÑœbŸj™jÔ)÷ >×=×=Ò=ús   ± AÁA,	c                ó   a € V 3R  lpV# )c                  ó�   <€ \        SR RR7      ;_uu_ 4       p V P                  R4       RRR4       R#   + '       g   i     R# ; i)Úwúutf-8©ÚencodingÚxxxN)ÚopenÚwrite)ÚfÚpaths    €r   Údo_writeÚ*TestSandbox._file_writer.<locals>.do_write   s.   ø€ Ü�d˜C¨'×2Õ2°aØ—‘˜”÷ 3×2×2Ò2ús	   ˜4´A	© )r   r   s   f r   r
   ÚTestSandbox._file_writer   s   ø€ õ	ð ˆó    c                óà   € \         P                  ! \        R4      p\        P                  ! R4      p\
        P                  P                  V\        V4      4       VP                  R8X  g   Q hR# )zD
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_BOMÚ"TestSandbox.test_setup_py_with_BOM   sU   € ô ×0Ò0´Ð;OÓPˆÜ×$Ò$ [Ó1ˆ	Ü×Ñ×$Ñ$ V¬T°)«_Ô=Ø×Ñ 8Ô+Ð+Ò+r!   c                ó  € VR ,          pVP                  R4      ;_uu_ 4       pVP                  R4       RRR4       \        P                  P	                  \        V4      \        4       4       R#   + '       g   i     LC; i)zsetup.pyÚwbs   "degenerate script"
N)r   r   r   r   r*   r	   Úglobals)r   r   Úsetup_pyÚstreams   &&  r   Útest_setup_py_with_CRLFÚ#TestSandbox.test_setup_py_with_CRLF"   sT   € Ø˜JÕ&ˆØ�]‰]˜4× Ô  FØ�L‰LÐ3Ô4÷ !ä×Ñ×$Ñ$¤S¨£]´G³IÖ>÷ !× ús   £A0Á0B 	r   N)r'   Ú
__module__Ú__qualname__Ú__firstlineno__r   Ústaticmethodr
   r.   r5   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s-   ø‡ € ò*ð ñó ðò,÷?ð ?r!   r   c                   óJ   a € ] tR t^)t o R tR tR tR tR tR t	R t
RtV tR	# )
ÚTestExceptionSaverc                óŽ   € \         P                  P                  4       ;_uu_ 4        \        R 4      h  + '       g   i     R# ; i©ÚdetailsN)r   r   ÚExceptionSaverÚ
ValueError©r   s   &r   Útest_exception_trappedÚ)TestExceptionSaver.test_exception_trapped*   s.   € Ü×Ñ×.Ñ.×0Õ0Ü˜YÓ'Ð'÷ 1×0Ð0ús	   §3³A	c                óª  € \         P                  P                  4       ;_uu_ 4       p\        R 4      h  + '       g   i     M; i\        P
                  ! \        4      ;_uu_ 4       pXP                  4        RRR4       M  + '       g   i     M; i\        XP                  \        4      '       g   Q h\        TP                  4      R 8X  g   Q hR# rB   )
r   r   rD   rE   ÚpytestÚraisesÚresumeÚ
isinstanceÚvaluer	   )r   Ú	saved_excÚcaughts   &  r   Útest_exception_resumedÚ)TestExceptionSaver.test_exception_resumed.   s‹   € Ü×Ñ×.Ñ.×0Ô0°IÜ˜YÓ'Ð'÷ 1×0úô �]Š]œ:×&Ô&¨&Ø×ÑÔ÷ '×&×&Ð&úô ˜&Ÿ,™,¬
×3Ò3Ð3Ð3Ü�6—<‘<Ó  IÔ-Ð-Ò-s   §3³A	Á(BÂB	c                óš  € \        R 4      p\        P                  P                  4       ;_uu_ 4       pVh  + '       g   i     M; i\        P
                  ! \         4      ;_uu_ 4       pXP                  4        RRR4       M  + '       g   i     M; i\        XP                  \         4      '       g   Q hTP                  TJg   Q hR# rB   )	rE   r   r   rD   rJ   rK   rL   rM   rN   )r   Úorig_excrO   rP   s   &   r   Útest_exception_reconstructedÚ/TestExceptionSaver.test_exception_reconstructed8   sŠ   € Ü˜iÓ(ˆä×Ñ×.Ñ.×0Ô0°IØˆN÷ 1×0úô �]Š]œ:×&Ô&¨&Ø×ÑÔ÷ '×&×&Ð&úô ˜&Ÿ,™,¬
×3Ò3Ð3Ð3Ø�|‰| 8Ó+Ð+Ò+s   ²5µA	Á*BÂB	c                ó¬   € \         P                  P                  4       ;_uu_ 4       p R R R 4       XP                  4        R #   + '       g   i     L"; ir   )r   r   rD   rL   )r   rO   s   & r   Ú test_no_exception_passes_quietlyÚ3TestExceptionSaver.test_no_exception_passes_quietlyD   s8   € Ü×Ñ×.Ñ.×0Ô0°IØ÷ 1ð 	×ÑÖ÷ 1×0ús   §AÁA	c                ó¦  €  ! R  R\         4      p\        P                  P                  4       ;_uu_ 4       pV! R4      h  + '       g   i     M; i\        P
                  ! \        P                  P                  4      ;_uu_ 4       pXP                  4        RRR4       M  + '       g   i     M; i\        XP                  4      R8X  g   Q hR# )c                   ó6   a € ] tR t^Kt o RtV 3R lR ltRtV tR# )ÚFTestExceptionSaver.test_unpickleable_exception.<locals>.CantPickleThisz:This Exception is unpickleable because it's not in globalsc                ó    <€ V ^8„  d   QhRS[ /# )é   Úreturn)r	   )Úformatr>   s   "€r   Ú__annotate__ÚSTestExceptionSaver.test_unpickleable_exception.<locals>.CantPickleThis.__annotate__N   s   ø€ ÷ 6ñ 6¡#ñ 6r!   c                ó"   € R V P                   : 2# )ÚCantPickleThis)ÚargsrF   s   &r   Ú__repr__ÚOTestExceptionSaver.test_unpickleable_exception.<locals>.CantPickleThis.__repr__N   s   € Ø'¨¯	©	¡}Ð5Ð5r!   r   N)r'   r7   r8   r9   Ú__doc__rf   r;   r<   r=   s   @r   rd   r\   K   s   ø‡ € ÙH÷6ö 6r!   rd   ÚdetailNzCantPickleThis('detail',))
Ú	Exceptionr   r   rD   rJ   rK   ÚUnpickleableExceptionrL   r	   rN   )r   rd   rO   rP   s   &   r   Útest_unpickleable_exceptionÚ.TestExceptionSaver.test_unpickleable_exceptionJ   s�   € ô	6œYô 	6ô ×Ñ×.Ñ.×0Ô0°IÙ  Ó*Ð*÷ 1×0úô �]Š]œ:×-Ñ-×CÑC×DÔDÈØ×ÑÔ÷ E×D×DÐDúô �6—<‘<Ó Ð$?Ô?Ð?Ò?s   ¶	?¿A	ÂB"Â"B2	c           	     óÂ  €  ! R R\         4      p\        P                  ! \        P                  P
                  4      ;_uu_ 4       p\        P                  P                  4       ;_uu_ 4        \        P                  P                  4        Vh  + '       g   i     M; i RRR4       M  + '       g   i     M; iXP                  P                  w  pTR8X  g   Q hR# )z‹
As revealed in #440, an infinite recursion can occur if an unpickleable
exception while setuptools is hidden. Ensure this doesn't happen.
c                   ó   € ] tR t^_tRtRtR# )ÚaTestExceptionSaver.test_unpickleable_exception_when_hiding_setuptools.<locals>.ExceptionUnderTestz-
An unpickleable exception (not in globals).
r   N)r'   r7   r8   r9   rh   r;   r   r!   r   ÚExceptionUnderTestrp   _   s   † õr!   rq   NzExceptionUnderTest())
rj   rJ   rK   r   r   rk   Úsave_modulesÚhide_setuptoolsrN   re   )r   rq   rP   Úmsgs   &   r   Ú2test_unpickleable_exception_when_hiding_setuptoolsÚETestExceptionSaver.test_unpickleable_exception_when_hiding_setuptoolsY   s˜   € ô	¤ô 	ô
 �]Š]œ:×-Ñ-×CÑC×DÔDÈÜ×#Ñ#×0Ñ0×2Õ2Ü×"Ñ"×2Ñ2Ô4Ø(Ð(÷ 3×2úÐ2÷ E×D×DÐDúð
 —‘×"Ñ"‰ˆØÐ,Ô,Ð,Ò,s   Á'B+Á-!B	ÂBÂB+Â+B;	c                óâ  € R p\         P                  ! \        P                  P                  4      ;_uu_ 4       p\        P                  P                  4       ;_uu_ 4        \        P                  P                  4        \        P                  P                  \        V4      4      ;_uu_ 4        V! 4        RRR4       RRR4       RRR4       XP                  P                  w  rEpVR8X  g   Q hVR8X  g   Q hVRR/8X  g   Q h\        VP                  4      pRV9   g   Q hRV9   g   Q hRV9   g   Q hR#   + '       g   i     Lˆ; i  + '       g   i     L“; i  + '       g   i     Lž; i)	z�
When in a sandbox with setuptools hidden, a SandboxViolation
should reflect a proper exception and not be wrapped in
an UnpickleableException.
c                 ón   € \        RRRR7      ;_uu_ 4         RRR4       R#   + '       g   i     R# ; i)z9Trigger a SandboxViolation by writing outside the sandboxú/etc/foor   r   r   N)r   r   r!   r   Ú
write_fileÚVTestExceptionSaver.test_sandbox_violation_raised_hiding_setuptools.<locals>.write_files   s#   € ä�j #°×8Ö8Ø÷ 9×8×8Ò8ús   —#£4	Nr   r   r   z('/etc/foo', 'w')z{'encoding': 'utf-8'})ry   r   )rJ   rK   r   r   ÚSandboxViolationrr   rs   r   r	   rN   re   )r   r   rz   rP   Úcmdre   Úkwargsrt   s   &&      r   Ú/test_sandbox_violation_raised_hiding_setuptoolsÚBTestExceptionSaver.test_sandbox_violation_raised_hiding_setuptoolsl   s  € ò	ô
 �]Š]œ:×-Ñ-×>Ñ>×?Ô?À6Ü×#Ñ#×0Ñ0×2Õ2Ü×"Ñ"×2Ñ2Ô4Ü×'Ñ'×8Ñ8¼¸V»×EÕEÙ”L÷ F÷ 3÷ @ð #ŸL™L×-Ñ-Ñˆ�6Ø�fŒ}Ðˆ}ØÐ(Ô(Ð(Ð(Ø˜* gÐ.Ô.Ð.Ð.ä�&—,‘,ÓˆØ˜Œ}Ðˆ}Ø" cÔ)Ð)Ð)Ø&¨#Ô-Ð-Ò-÷ F×Eú÷ 3×2ú÷ @×?ús<   º'EÁ!AE	Â0D8Â8E	Ã EÄ8EÅE	ÅEÅEÅE.	r   N)r'   r7   r8   r9   rG   rQ   rU   rX   rl   ru   r   r;   r<   r=   s   @r   r@   r@   )   s.   ø‡ € ò(ò.ò
,òò@ò-÷&.ð .r!   r@   )	rh   r   r(   rJ   r%   Úsetuptools.sandboxr   r   r@   r   r!   r   Ú<module>r‚      s-   ðÙ ã 	Û ã ã Û ÷?ñ ?÷:].ó ].r!   