
    0hhH                         S SK r S SKrS SKrS SKJrJr  S SKrS SKJr   " S S\R                  5      r	\" 5        " S S\R                  5      5       r
\S:X  a  \R                  " 5         gg)	    N)script_helperrequires_subprocess)mockc                       \ rS rSrS rS rS rS r\R                  " S5      S 5       r
\R                  " S5      S 5       rS	rg
)TestScriptHelper   c                 ^    [         R                  " SS5      nU R                  SUS   S5        g )N-cimport sys; sys.exit(0)r   zreturn code was not 0)r   assert_python_okassertEqual)selfts     @/opt/python-3.13.8/usr/lib/python3.13/test/test_script_helper.pytest_assert_python_ok&TestScriptHelper.test_assert_python_ok   s,    **41JKAaD"9:    c                 ^    [         R                  " SS5      u  pnU R                  SUS5        g )Nr
   sys.exit(0)r   zreturn code should not be 0)r   assert_python_failureassertNotEqual)r   rcouterrs       r   test_assert_python_failure+TestScriptHelper.test_assert_python_failure   s+    $::4OAr#@Ar   c                     U R                  [        5       n[        R                  " SS5        S S S 5        [	        WR
                  5      nU R                  SU5        U R                  SUSS9  g ! , (       d  f       NG= f)Nr
   r   zcommand line:zunexpected command linemsg)assertRaisesAssertionErrorr   r   str	exceptionassertInr   error_context	error_msgs      r   test_assert_python_ok_raises-TestScriptHelper.test_assert_python_ok_raises   sa    ~.-**4? ///0	oy1mY4MN	 /.   A//
A=c                     U R                  [        5       n[        R                  " SS5        S S S 5        [	        WR
                  5      nU R                  SU5        U R                  SUSS9  g ! , (       d  f       NG= f)Nr
   r   zProcess return code is 0
zunexpected command line.r   )r    r!   r   r   r"   r#   r$   r%   s      r   !test_assert_python_failure_raises2TestScriptHelper.test_assert_python_failure_raises   si    ~.-//6OP ///0	2I>/4 	 	6	 /.r*   zsubprocess.Popenc                    [         R                  R                  [        SSS9 n[	        S5      Ul         [        R                  " SSS5        U R                  S	UR                  5        U R                  S	UR                  5        UR                  S   S   nU R                  [        R                  US   5        U R                  SU5        U R                  S
U5        U R                  SU5        S S S 5        g ! [         a)  nU R                  SUR                  S   5         S nANS nAff = f! , (       d  f       g = f)N interpreter_requires_environmentFreturn_valuebail out of unittestTr
   Noner      -I-E)r   patchobjectr   RuntimeErrorside_effect_assert_pythonr   args
call_count	call_argssys
executabler$   assertNotInr   
mock_popenmock_ire_funcr   popen_commands        r   1test_assert_python_isolated_when_env_not_requiredBTestScriptHelper.test_assert_python_isolated_when_env_not_required&   s   ZZ}A,1  36C%12H%IJ"F,,T4@ Q
 5 56Q 8 89&003A6MS^^]1-=>MM&-0MM$.T=13 3   F  !7!EEF3 3s5   D0C:B#D0:
D-D(#D0(D--D00
D>c                    [         R                  R                  [        SSS9 n[	        S5      Ul         [        R                  " SSS5        UR                  S   S   nU R                  SU5        U R                  S	U5        S S S 5        g ! [         a)  nU R                  SUR                  S   5         S nANmS nAff = f! , (       d  f       g = f)
Nr/   Tr0   r2   r
   r3   r   r5   r6   )r   r7   r8   r   r9   r:   r;   r   r<   r>   rA   rB   s        r   4test_assert_python_not_isolated_when_env_is_requiredETestScriptHelper.test_assert_python_not_isolated_when_env_is_required8   s     ZZ}A,0  25B%12H%IJ"F,,T4@ '003A6MT=1T=12 2   F  !7!EEF2 2s4   CB6C
C B;6C;C  C
C N)__name__
__module____qualname____firstlineno__r   r   r(   r,   r   r7   rF   rI   __static_attributes__rK   r   r   r   r      sT    ;B
O6 
ZZ"#2 $2" 
ZZ"#2 $2r   r   c                       \ rS rSrS rS r\R                  " S5      S 5       r\R                  " S5      S 5       r	\R                  " S5      S 5       r
\R                  " S5      S 5       rS	rg
)TestScriptHelperEnvironmentH   c                 h    U R                  [        [        S5      5        S [        R                  S'   g N$__cached_interp_requires_environment)
assertTruehasattrr   __dict__r   s    r   setUp!TestScriptHelperEnvironment.setUpL   s/    M#IJ	L JNEFr   c                 *    S [         R                  S'   g rU   )r   rY   rZ   s    r   tearDown$TestScriptHelperEnvironment.tearDownR   s    IMEFr   zsubprocess.check_callc                    [         R                  R                  [        R                  5         [        R                  R                  SS 5        [        R                  " SS5      Ul        U R                  [        R                  " 5       5        U R                  [        R                  " 5       5        U R                  SUR                  5        S S S 5        g ! , (       d  f       g = f)N
PYTHONHOME r4   )r   r7   dictosenvironpop
subprocessCalledProcessErrorr:   rW   r   r/   r   r=   r   mock_check_calls     r   *test_interpreter_requires_environment_trueFTestScriptHelperEnvironment.test_interpreter_requires_environment_trueV   s    ZZ__RZZ(JJNN<.*4*G*GB*OO'OOMJJLMOOMJJLMQ : :; )((s   B!C
C&c                 |   [         R                  R                  [        R                  5         [        R                  R                  SS 5        [        R                  " 5         U R                  [        R                  " 5       5        U R                  SUR                  5        S S S 5        g ! , (       d  f       g = f)Nra   r4   )r   r7   rc   rd   re   rf   r   r/   assertFalser   r=   ri   s     r   +test_interpreter_requires_environment_falseGTestScriptHelperEnvironment.test_interpreter_requires_environment_false_   sm    ZZ__RZZ(JJNN<.::<]KKMNQ : :; )((s   A6B--
B;c                 R   [         R                  R                  [        R                  5         [        R                  R                  SS 5        [        R                  " 5         U R                  [        R                  " 5       5        U R                  [        R                  " 5       5        U R                  SUR                  5        UR                  S   S   nU R                  [        R                  US   5        U R                  SU5        S S S 5        g ! , (       d  f       g = f)Nra   r4   r   r6   )r   r7   rc   rd   re   rf   r   r/   rn   r   r=   r>   r?   r@   r$   )r   rj   check_call_commands      r   -test_interpreter_requires_environment_detailsITestScriptHelperEnvironment.test_interpreter_requires_environment_detailsh   s    ZZ__RZZ(JJNN<.::<]KKMN]KKMNQ : :;!0!:!:1!=a!@S^^-?-BCMM$ 23 )((s   C!D
D&c                    [         R                  R                  [        R                  5         S[        R                  S'   U R                  [        R                  " 5       5        U R                  [        R                  " 5       5        U R                  SUR                  5        S S S 5        g ! , (       d  f       g = f)N
MockedHomera   r   )
r   r7   rc   rd   re   rW   r   r/   r   r=   ri   s     r   5test_interpreter_requires_environment_with_pythonhomeQTestScriptHelperEnvironment.test_interpreter_requires_environment_with_pythonhomet   sp    ZZ__RZZ('3BJJ|$OOMJJLMOOMJJLMQ : :;	 )((s   A8B//
B=rK   N)rL   rM   rN   rO   r[   r^   r   r7   rk   ro   rs   rw   rP   rK   r   r   rR   rR   H   s    NN 
ZZ'(< )< 
ZZ'(< )< 
ZZ'(	4 )	4 
ZZ'(< )<r   rR   __main__)rg   r?   rd   test.supportr   r   unittestr   TestCaser   rR   rL   mainrK   r   r   <module>r~      si     
 	 ;  :2x(( :2z 1<("3"3 1< 1<h zMMO r   