
    vKg                     X    S r SSKrSSKrSSKrSSKrSSKr " S S5      r " S S5      rg)zdevelop tests    Nc                   6    \ rS rSrS r\S 5       rS rS rSr	g)TestSandbox   c                     [         R                  R                  [        U5      5         U R	                  [
        R                  5        S S S 5        g ! , (       d  f       g = fN)
setuptoolssandboxDirectorySandboxstr_file_writerosdevnull)selftmpdirs     ]/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/setuptools/tests/test_sandbox.pytest_devnullTestSandbox.test_devnull   s8    00V=bjj) >==s    A
A c                    ^  U 4S jnU$ )Nc                  r   > [        TSSS9 n U R                  S5        S S S 5        g ! , (       d  f       g = f)Nwutf-8encodingxxx)openwrite)fpaths    r   do_write*TestSandbox._file_writer.<locals>.do_write   s(    dC'2a 322s   (
6 )r   r   s   ` r   r   TestSandbox._file_writer   s    	     c                     [         R                  " [        S5      n[        R                  " S5      n[
        R                  R                  U[        U5      5        UR                  S:X  d   eg)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	$$VT)_=8+++r#   c                     US-  nUR                  S5       nUR                  S5        S S S 5        [        R                  R	                  [        U5      [        5       5        g ! , (       d  f       N@= f)Nzsetup.pywbs   "degenerate script"
)r   r   r   r	   r,   r   globals)r   r   setup_pystreams       r   test_setup_py_with_CRLF#TestSandbox.test_setup_py_with_CRLF"   sQ    J&]]4 FLL34 !$$S]GI> ! s   A##
A1r!   N)
r)   
__module____qualname____firstlineno__r   staticmethodr   r0   r7   __static_attributes__r!   r#   r   r   r      s%    *  ,?r#   r   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestExceptionSaver)   c                 x    [         R                  R                  5          [        S5      e! , (       d  f       g = fNdetails)r   r	   ExceptionSaver
ValueErrorr   s    r   test_exception_trapped)TestExceptionSaver.test_exception_trapped*   s(    ..0Y'' 10s   +
9c                 |   [         R                  R                  5        n[        S5      e! , (       d  f       O= f[        R
                  " [        5       nWR                  5         S S S 5        O! , (       d  f       O= f[        WR                  [        5      (       d   e[        UR                  5      S:X  d   eg rB   )
r   r	   rD   rE   pytestraisesresume
isinstancevaluer   )r   	saved_exccaughts      r   test_exception_resumed)TestExceptionSaver.test_exception_resumed.   s    ..0IY'' 10 ]]:&& '&& &,,
33336<< I---s   +
9A00
A>c                 l   [        S5      n[        R                  R                  5        nUe! , (       d  f       O= f[        R
                  " [         5       nWR                  5         S S S 5        O! , (       d  f       O= f[        WR                  [         5      (       d   eUR                  ULd   eg 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(..0IN 10 ]]:&& '&& &,,
3333||8+++s   -
;A22
B c                     [         R                  R                  5        n S S S 5        WR                  5         g ! , (       d  f       N= fr   )r   r	   rD   rL   )r   rO   s     r    test_no_exception_passes_quietly3TestExceptionSaver.test_no_exception_passes_quietlyD   s5    ..0I 1 	 10s	   :
Ac                 z    " S S[         5      n[        R                  R                  5        nU" S5      e! , (       d  f       O= f[        R
                  " [        R                  R                  5       nWR                  5         S S S 5        O! , (       d  f       O= f[        WR                  5      S:X  d   eg )Nc                   &    \ rS rSrSrS\4S jrSrg)FTestExceptionSaver.test_unpickleable_exception.<locals>.CantPickleThisK   z:This Exception is unpickleable because it's not in globalsreturnc                 "    SU R                   < 3$ )NCantPickleThis)argsrF   s    r   __repr__OTestExceptionSaver.test_unpickleable_exception.<locals>.CantPickleThis.__repr__N   s    -1YY88r#   r!   N)r)   r9   r:   r;   __doc__r   rb   r=   r!   r#   r   r`   r\   K   s    H9# 9r#   r`   detailzCantPickleThis('detail',))
	Exceptionr   r	   rD   rJ   rK   UnpickleableExceptionrL   r   rN   )r   r`   rO   rP   s       r   test_unpickleable_exception.TestExceptionSaver.test_unpickleable_exceptionJ   s    	9Y 	9 ..0I ** 10 ]]:--CCD EDD 6<< $????s   	7
A6B
Bc                     " S S[         5      n[        R                  " [        R                  R
                  5       n[        R                  R                  5          [        R                  R                  5         Ue! , (       d  f       O= f SSS5        O! , (       d  f       O= fWR                  R                  u  nUS:X  d   eg)z
As revealed in #440, an infinite recursion can occur if an unpickleable
exception while setuptools is hidden. Ensure this doesn't happen.
c                       \ rS rSrSrSrg)aTestExceptionSaver.test_unpickleable_exception_when_hiding_setuptools.<locals>.ExceptionUnderTest_   z-
An unpickleable exception (not in globals).
r!   N)r)   r9   r:   r;   rd   r=   r!   r#   r   ExceptionUnderTestrl   _   s    r#   rn   NzExceptionUnderTest())
rf   rJ   rK   r   r	   rg   save_moduleshide_setuptoolsrN   ra   )r   rn   rP   msgs       r   2test_unpickleable_exception_when_hiding_setuptoolsETestExceptionSaver.test_unpickleable_exception_when_hiding_setuptoolsY   s    	 	
 ]]:--CCD##002""224(( 322 EDD
 "",,,,s   B!A>>
B	B
B'c                    S n[         R                  " [        R                  R                  5       n[        R                  R                  5          [        R                  R                  5         [        R                  R                  [        U5      5         U" 5         SSS5        SSS5        SSS5        WR                  R                  u  pEnUS:X  d   eUS:X  d   eUSS0:X  d   e[        UR                  5      nSU;   d   eSU;   d   eSU;   d   eg! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)	z
When in a sandbox with setuptools hidden, a SandboxViolation
should reflect a proper exception and not be wrapped in
an UnpickleableException.
c                  P    [        SSSS9    SSS5        g! , (       d  f       g= f)z9Trigger a SandboxViolation by writing outside the sandbox/etc/foor   r   r   N)r   r!   r#   r   
write_fileVTestExceptionSaver.test_sandbox_violation_raised_hiding_setuptools.<locals>.write_files   s    j#8 988s   
%Nr   )rv   r   r   r   z('/etc/foo', 'w')z{'encoding': 'utf-8'})rJ   rK   r   r	   SandboxViolationro   rp   r
   r   rN   ra   )r   r   rw   rP   cmdra   kwargsrq   s           r   /test_sandbox_violation_raised_hiding_setuptoolsBTestExceptionSaver.test_sandbox_violation_raised_hiding_setuptoolsl   s   	
 ]]:-->>?6##002""224''88VEL F 3 @ #LL--6f}}((((*g....&,,}}"c)))&#--- FE 32 @?s<   D;AD*D D*(D;
D'#D**
D8	4D;;
E	r!   N)r)   r9   r:   r;   rG   rQ   rU   rX   rh   rr   r|   r=   r!   r#   r   r?   r?   )   s&    (.
,@-&.r#   r?   )	rd   r   r*   rJ   r'   setuptools.sandboxr   r   r?   r!   r#   r   <module>r      s-     	    ? ?:]. ].r#   