a 5êdgã@spddlZddlZddlZddlmZddlZddlmZGdd„dejƒZGdd„dejƒZ e dkrle  ¡dS) éN)Ú script_helper)Úmockc@sPeZdZdd„Zdd„Zdd„Zdd„Ze d ¡d d „ƒZ e d ¡d d „ƒZ dS)ÚTestScriptHelpercCs"t dd¡}| d|dd¡dS)Nú-cúimport sys; sys.exit(0)rzreturn code was not 0)rÚassert_python_okÚ assertEqual)ÚselfÚt©r ú3/usr/local/lib/python3.9/test/test_script_helper.pyÚtest_assert_python_ok s z&TestScriptHelper.test_assert_python_okcCs$t dd¡\}}}| d|d¡dS)Nrú sys.exit(0)rzreturn code should not be 0)rÚassert_python_failureZassertNotEqual)r ÚrcÚoutÚerrr r r Útest_assert_python_failuresz+TestScriptHelper.test_assert_python_failurecCs`| t¡}t dd¡Wdƒn1s,0Yt|jƒ}| d|¡|jd|dddS)Nrrz command line:zunexpected command line©Úmsg)Ú assertRaisesÚAssertionErrorrrÚstrÚ exceptionÚassertIn©r Z error_contextZ error_msgr r r Útest_assert_python_ok_raisess  *  z-TestScriptHelper.test_assert_python_ok_raisescCs`| t¡}t dd¡Wdƒn1s,0Yt|jƒ}| d|¡|jd|dddS)NrrzProcess return code is 0 zunexpected command line.r)rrrrrrrrr r r Ú!test_assert_python_failure_raisess *  ÿz2TestScriptHelper.test_assert_python_failure_raiseszsubprocess.Popenc CsêtjjtdddÄ}tdƒ|_zt ddd¡Wn6tyf}z| d|jd¡WYd}~n d}~00| d |j ¡| d |j ¡|j dd}| t j |d¡|  d|¡|  d |¡| d |¡Wdƒn1sÜ0YdS) NÚ interpreter_requires_environmentF©Z 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 Z mock_popenZ mock_ire_funcrZ popen_commandr r r Ú1test_assert_python_isolated_when_env_not_required&s"þ (  zBTestScriptHelper.test_assert_python_isolated_when_env_not_requiredc Cs°tjjtdddŠ}tdƒ|_zt ddd¡Wn6tyf}z| d|jd¡WYd}~n d}~00|j dd}|  d|¡|  d |¡Wdƒn1s¢0YdS) NrTrr rr!rr#r$) rr%r&rr'r(r)rr*r,r/r0r r r Ú4test_assert_python_not_isolated_when_env_is_required8sþ ( zETestScriptHelper.test_assert_python_not_isolated_when_env_is_requiredN) Ú__name__Ú __module__Ú __qualname__r rrrrr%r1r2r r r r r s rc@sdeZdZdd„Zdd„Ze d¡dd„ƒZe d¡dd „ƒZe d¡d d „ƒZ e d¡d d „ƒZ dS)ÚTestScriptHelperEnvironmentcCs| ttdƒ¡dtjd<dS©NZ$__cached_interp_requires_environment)Ú assertTrueÚhasattrrÚ__dict__©r r r r ÚsetUpKsÿz!TestScriptHelperEnvironment.setUpcCsdtjd<dSr7)rr:r;r r r ÚtearDownQsz$TestScriptHelperEnvironment.tearDownzsubprocess.check_callcCsxtj tj¡Vtj dd¡t dd¡|_|  t   ¡¡|  t   ¡¡|  d|j ¡Wdƒn1sj0YdS)NÚ PYTHONHOMEÚr")rr%ÚdictÚosÚenvironÚpopÚ subprocessÚCalledProcessErrorr(r8rrrr+©r Úmock_check_callr r r Ú*test_interpreter_requires_environment_trueUs zFTestScriptHelperEnvironment.test_interpreter_requires_environment_truecCsdtj tj¡Btj dd¡t ¡| t ¡¡|  d|j ¡Wdƒn1sV0YdS)Nr>r") rr%r@rArBrCrrÚ assertFalserr+rFr r r Ú+test_interpreter_requires_environment_false^s zGTestScriptHelperEnvironment.test_interpreter_requires_environment_falsecCsžtj tj¡|tj dd¡t ¡| t ¡¡| t ¡¡|  d|j ¡|j dd}|  t j |d¡| d|¡Wdƒn1s0YdS)Nr>r"rr$)rr%r@rArBrCrrrIrr+r,r-r.r)r rGZcheck_call_commandr r r Ú-test_interpreter_requires_environment_detailsgszITestScriptHelperEnvironment.test_interpreter_requires_environment_detailscCsftj tj¡Ddtjd<| t ¡¡| t ¡¡| d|j ¡Wdƒn1sX0YdS)NZ MockedHomer>r) rr%r@rArBr8rrrr+rFr r r Ú5test_interpreter_requires_environment_with_pythonhomess  zQTestScriptHelperEnvironment.test_interpreter_requires_environment_with_pythonhomeN) r3r4r5r<r=rr%rHrJrKrLr r r r r6Hs   r6Ú__main__) rDr-rAZ test.supportrZunittestrZTestCaserr6r3Úmainr r r r Ús  =4