Ë
    $´˜jH  ã                   óÚ   — d Z ddlZddlZddlZddlmZmZ ddlZddlmZ  G d„ dej                  «      Z
 e«        G d„ dej                  «      «       Zed	k(  r ej                  «        yy)
zEUnittests for test.support.script_helper.  Who tests the test helper?é    N)Úscript_helperÚrequires_subprocess)Úmockc                   ó„   — e Zd Zd„ Zd„ Zd„ Zd„ Z ej                  d«      d„ «       Z	 ej                  d«      d„ «       Z
y)	ÚTestScriptHelperc                 ó\   — t        j                  dd«      }| j                  d|d   d«       y )Nú-cúimport sys; sys.exit(0)r   zreturn code was not 0)r   Úassert_python_okÚassertEqual)ÚselfÚts     ú)lib/python3.12/test/test_script_helper.pyÚtest_assert_python_okz&TestScriptHelper.test_assert_python_ok   s,   € Ü×*Ñ*¨4Ð1JÓKˆØ×Ñ˜˜A˜a™DÐ"9Õ:ó    c                 ó^   — t        j                  dd«      \  }}}| j                  d|d«       y )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_failurez+TestScriptHelper.test_assert_python_failure   s-   € ä$×:Ñ:¸4ÀÓO‰ˆˆC�Ø×Ñ˜A˜rÐ#@ÕAr   c                 óú   — | j                  t        «      5 }t        j                  dd«       d d d «       t	        j
                  «      }| j                  d|«       | j                  d|d¬«       y # 1 sw Y   ŒExY w)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_raisesz-TestScriptHelper.test_assert_python_ok_raises   sa   € à×Ñœ~Ô.°-Ü×*Ñ*¨4°Ô?÷ /ä˜×/Ñ/Ó0ˆ	Ø�‰�o yÔ1Ø�‰�m YÐ4MˆÕN÷	 /Ð.úó   –A1Á1A:c                 óú   — | j                  t        «      5 }t        j                  dd«       d d d «       t	        j
                  «      }| j                  d|«       | j                  d|d¬«       y # 1 sw Y   ŒExY w)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_raisesz2TestScriptHelper.test_assert_python_failure_raises   si   € Ø×Ñœ~Ô.°-Ü×/Ñ/°Ð6OÔP÷ /ä˜×/Ñ/Ó0ˆ	Ø�‰Ð2°IÔ>Ø�‰Ð/°Ø4ð 	õ 	6÷	 /Ð.úr&   zsubprocess.Popenc                 óz  — t         j                  j                  t        dd¬«      5 }t	        d«      |_        	 t        j                  ddd«       | j                  d	|j                  «       | j                  d	|j                  «       |j                  d   d   }| j                  t        j                  |d   «       | j                  d|«       | j                  d
|«       | j                  d|«       d d d «       y # t        $ r)}| j                  d|j                  d   «       Y d }~ŒÙd }~ww xY w# 1 sw Y   y xY w)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_requiredzBTestScriptHelper.test_assert_python_isolated_when_env_not_required&   s  € ä�Z‰Z×Ñœ}ØAØ,1ð ô 3à6CÜ%1Ð2HÓ%IˆJÔ"ðFÜ×,Ñ,¨T°4¸Ô@ð ×Ñ˜Q 
× 5Ñ 5Ô6Ø×Ñ˜Q × 8Ñ 8Ô9Ø&×0Ñ0°Ñ3°AÑ6ˆMØ×ÑœSŸ^™^¨]¸1Ñ-=Ô>Ø�M‰M˜& -Ô0Ø�M‰M˜$ Ô.Ø×Ñ˜T =Ô1÷3ð 3øô  ò FØ× Ñ Ð!7¸¿¹À!¹×EÑEûðFú÷3ð 3ús5   §D1¹C<ÁB#D1Ã<	D.ÄD)Ä$D1Ä)D.Ä.D1Ä1D:c                 ó   — t         j                  j                  t        dd¬«      5 }t	        d«      |_        	 t        j                  ddd«       |j                  d   d   }| j                  d	|«       | j                  d
|«       ddd«       y# t        $ r)}| j                  d|j                  d   «       Y d}~Œld}~ww xY w# 1 sw Y   yxY w)z>Ensure that -I is not passed when the environment is required.r*   Tr+   r-   r	   r.   r   Nr0   r1   )r   r2   r3   r   r4   r5   r6   r   r7   r9   r<   r=   s        r   Ú4test_assert_python_not_isolated_when_env_is_requiredzETestScriptHelper.test_assert_python_not_isolated_when_env_is_required8   sÈ   € ô �Z‰Z×Ñœ}ØAØ,0ð ô 2à5BÜ%1Ð2HÓ%IˆJÔ"ðFÜ×,Ñ,¨T°4¸Ô@ð '×0Ñ0°Ñ3°AÑ6ˆMØ×Ñ˜T =Ô1Ø×Ñ˜T =Ô1÷2ð 2øô  ò FØ× Ñ Ð!7¸¿¹À!¹×EÑEûðFú÷2ð 2ús4   §C¹BÁ6CÂ	CÂB<Â7CÂ<CÃCÃCN)Ú__name__Ú
__module__Ú__qualname__r   r   r%   r(   r   r2   rA   rC   © r   r   r   r      sX   „ ò;òBò
Oò6ð €T‡Z�ZÐ"Ó#ñ2ó $ð2ð" €T‡Z�ZÐ"Ó#ñ2ó $ñ2r   r   c                   óÜ   — e Zd ZdZd„ Zd„ Z ej                  d«      d„ «       Z ej                  d«      d„ «       Z	 ej                  d«      d„ «       Z
 ej                  d«      d„ «       Zy	)
ÚTestScriptHelperEnvironmentz5Code coverage for interpreter_requires_environment().c                 óh   — | j                  t        t        d«      «       d t        j                  d<   y ©NÚ$__cached_interp_requires_environment)Ú
assertTrueÚhasattrr   Ú__dict__©r   s    r   ÚsetUpz!TestScriptHelperEnvironment.setUpL   s/   € Ø�‰Ü”MÐ#IÓJô	Lð JNŒ×ÑÐEÒFr   c                 ó*   — d t         j                  d<   y rK   )r   rO   rP   s    r   ÚtearDownz$TestScriptHelperEnvironment.tearDownR   s   € àIMŒ×ÑÐEÒFr   zsubprocess.check_callc                 óÂ  — t         j                  j                  t        j                  «      5  t        j                  j                  dd «       t        j                  dd«      |_        | j                  t        j                  «       «       | j                  t        j                  «       «       | j                  d|j                  «       d d d «       y # 1 sw Y   y xY w)NÚ
PYTHONHOMEÚ r/   )r   r2   ÚdictÚosÚenvironÚpopÚ
subprocessÚCalledProcessErrorr5   rM   r   r*   r   r8   ©r   Úmock_check_calls     r   Ú*test_interpreter_requires_environment_truezFTestScriptHelperEnvironment.test_interpreter_requires_environment_trueV   s‰   € ä�Z‰Z�_‰_œRŸZ™ZÕ(Ü�J‰J�N‰N˜<¨Ô.Ü*4×*GÑ*GÈÈBÓ*OˆOÔ'Ø�O‰OœM×JÑJÓLÔMØ�O‰OœM×JÑJÓLÔMØ×Ñ˜Q × :Ñ :Ô;÷ )×(Ñ(ús   ®BCÃCc                 ón  — t         j                  j                  t        j                  «      5  t        j                  j                  dd «       t        j                  «        | j                  t        j                  «       «       | j                  d|j                  «       d d d «       y # 1 sw Y   y xY w)NrU   r/   )r   r2   rW   rX   rY   rZ   r   r*   ÚassertFalser   r8   r]   s     r   Ú+test_interpreter_requires_environment_falsezGTestScriptHelperEnvironment.test_interpreter_requires_environment_false_   sm   € ä�Z‰Z�_‰_œRŸZ™ZÕ(Ü�J‰J�N‰N˜<¨Ô.ä×:Ñ:Ô<Ø×Ñœ]×KÑKÓMÔNØ×Ñ˜Q × :Ñ :Ô;÷ )×(Ñ(ús   ®A4B+Â+B4c                 óB  — t         j                  j                  t        j                  «      5  t        j                  j                  dd «       t        j                  «        | j                  t        j                  «       «       | j                  t        j                  «       «       | j                  d|j                  «       |j                  d   d   }| j                  t        j                  |d   «       | j                  d|«       d d d «       y # 1 sw Y   y xY w)NrU   r/   r   r1   )r   r2   rW   rX   rY   rZ   r   r*   ra   r   r8   r9   r:   r;   r!   )r   r^   Úcheck_call_commands      r   Ú-test_interpreter_requires_environment_detailszITestScriptHelperEnvironment.test_interpreter_requires_environment_detailsh   sÃ   € ä�Z‰Z�_‰_œRŸZ™ZÕ(Ü�J‰J�N‰N˜<¨Ô.Ü×:Ñ:Ô<Ø×Ñœ]×KÑKÓMÔNØ×Ñœ]×KÑKÓMÔNØ×Ñ˜Q × :Ñ :Ô;Ø!0×!:Ñ!:¸1Ñ!=¸aÑ!@ÐØ×ÑœSŸ^™^Ð-?ÀÑ-BÔCØ�M‰M˜$Ð 2Ô3÷ )×(Ñ(ús   ®CDÄDc                 ór  — t         j                  j                  t        j                  «      5  dt        j                  d<   | j                  t        j                  «       «       | j                  t        j                  «       «       | j                  d|j                  «       d d d «       y # 1 sw Y   y xY w)NÚ
MockedHomerU   r   )
r   r2   rW   rX   rY   rM   r   r*   r   r8   r]   s     r   Ú5test_interpreter_requires_environment_with_pythonhomezQTestScriptHelperEnvironment.test_interpreter_requires_environment_with_pythonhomet   sp   € ä�Z‰Z�_‰_œRŸZ™ZÕ(Ø'3ŒB�J‰J�|Ñ$Ø�O‰OœM×JÑJÓLÔMØ�O‰OœM×JÑJÓLÔMØ×Ñ˜Q × :Ñ :Ô;÷	 )×(Ñ(ús   ®A6B-Â-B6N)rD   rE   rF   Ú__doc__rQ   rS   r   r2   r_   rb   re   rh   rG   r   r   rI   rI   H   s‘   „ á?òNòNð €T‡Z�ZÐ'Ó(ñ<ó )ð<ð €T‡Z�ZÐ'Ó(ñ<ó )ð<ð €T‡Z�ZÐ'Ó(ñ	4ó )ð	4ð €T‡Z�ZÐ'Ó(ñ<ó )ñ<r   rI   Ú__main__)ri   r[   r:   rX   Útest.supportr   r   Úunittestr   ÚTestCaser   rI   rD   ÚmainrG   r   r   Ú<module>ro      sl   ðÙ Kã Û 
Û 	ß ;Û Ý ô:2�x×(Ñ(ô :2ñz Óô1< (×"3Ñ"3ó 1<ó ð1<ðh ˆzÒØ€H‡M�M…Oð r   