a  zev:@sddlZddlZddlZddlZddlmZddlZddlZGdddejZ Gdddej Z e Z Gddde ZGd d d ejZed kredS) N)supportc@sheZdZddZddZGdddejZGdddejZ d d Z d d Z d dZ ddZ ddZdS)Test_TestProgramcsjt}gtjtjtjjd_fdd}||_ | d} j |j dS)NFcsd_|SNT)wasRun assertEqual)Z start_dirpatternZ expectedPathselfZtestsN/opt/bitninja-python-dojo/embedded/lib/python3.9/unittest/test/test_program.py _find_testss zETest_TestProgram.test_discovery_from_dotted_path.._find_tests unittest.test)unittest TestLoaderospathabspathdirnametest__file__rr discover assertTruerZ_tests)r loaderr Zsuiter rr test_discovery_from_dotted_path s  z0Test_TestProgram.test_discovery_from_dotted_pathcstt}Gfdddt}|}tjjfdd}ddtj_||dd}|tj_||tj|d d d }||j||j|||jd dS) NcseZdZfddZdS)z/Test_TestProgram.testNoExit..FakeRunnercs ||_SNrr rresultr r run#sz3Test_TestProgram.testNoExit..FakeRunner.runN__name__ __module__ __qualname__rr rr r FakeRunner"sr$cs tj_dSr)r TestProgram parseArgsr ) oldParseArgsr r restoreParseArgs*sz5Test_TestProgram.testNoExit..restoreParseArgscWsdSrr )argsr r r ,z-Test_TestProgram.testNoExit..cSs tj`dSr)rr%rr r r r removeTest/sz/Test_TestProgram.testNoExit..removeTestF) testRunnerexit verbosity) objectrr%r& addCleanuprrrr0)r rr$runnerr(r,programr )r'rr testNoExits    zTest_TestProgram.testNoExitc@seZdZddZddZdS)zTest_TestProgram.FooBarcCsdSrr r r r r testPass;sz Test_TestProgram.FooBar.testPasscCsdSrr r6r r r testFail=sz Test_TestProgram.FooBar.testFailN)r!r"r#r7r8r r r r FooBar:sr9c@seZdZddZddZdS)zTest_TestProgram.FooBarLoadercCs||tjgSrZ suiteClassZloadTestsFromTestCaserr9)r moduler r r loadTestsFromModuleBs z1Test_TestProgram.FooBarLoader.loadTestsFromModulecCs||tjgSrr:)r namesr;r r r loadTestsFromNamesFs z0Test_TestProgram.FooBarLoader.loadTestsFromNamesN)r!r"r#r<r>r r r r FooBarLoader@sr?cCsRGdddt}tj}dgt_|}tj|dd|d}|t_|d|jdS)Nc@seZdZddZdS)zATest_TestProgram.test_defaultTest_with_string..FakeRunnercSs ||_dSrrrr r r rLszETest_TestProgram.test_defaultTest_with_string..FakeRunner.runNr r r r r r$Ksr$faketestFr r.r/ defaultTest testLoader)r r1sysargvrr%r?r testNamesr r$Zold_argvr3r4r r r test_defaultTest_with_stringJsz-Test_TestProgram.test_defaultTest_with_stringcCsZGdddt}tj}dgt_|}tj|dddg|d}|t_|ddg|jdS)Nc@seZdZddZdS)zCTest_TestProgram.test_defaultTest_with_iterable..FakeRunnercSs ||_dSrrrr r r r[szGTest_TestProgram.test_defaultTest_with_iterable..FakeRunner.runNr r r r r r$Zsr$r@Fr zunittest.test2rArDrHr r r test_defaultTest_with_iterableYs z/Test_TestProgram.test_defaultTest_with_iterablecCs8tjddgtjtd|d}|t|ddS)NFfoobarstream)r/rFr.rCr)rmainTextTestRunnerioStringIOr?rhasattrr r4r r r test_NonExitjs zTest_TestProgram.test_NonExitcCs.|jttjdgtjtdd|ddS)NrKrLT)rFr.r/rC assertRaises SystemExitrrNrOrPrQr?r6r r r test_ExitrszTest_TestProgram.test_ExitcCs,|jttjdgtjtd|ddS)NrKrL)rFr.rCrUr6r r r test_ExitAsDefault|sz#Test_TestProgram.test_ExitAsDefaultN)r!r"r#rr5rTestCaser9rr?rIrJrTrXrYr r r r r s  rc@s>eZdZdZdZdZdZdZdZe j Z dZ dZ dZddZdS)InitialisableProgramFN__main__rcGsdSrr )r r)r r r __init__szInitialisableProgram.__init__)r!r"r#r/rr0rB tb_localsr.rZdefaultTestLoaderrCr;ZprogNamerr^r r r r r[sr[c@s(eZdZdZdZdZddZddZdS)r$NrcKs"|t_tjrtjd8_tdS)Nr\)r$initArgs raiseError TypeError)r kwargsr r r r^szFakeRunner.__init__cCs |t_tSr)r$rRESULTrr r r rszFakeRunner.run)r!r"r#r`rrar^rr r r r r$s r$c@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ d%ddZ ddZ ddZddZddZddZd d!Zd"d#Zd$S)&TestCommandLineArgscCs*t|_dd|j_dt_dt_dt_dS)NcSsdSrr r r r r r*r+z+TestCommandLineArgs.setUp..r)r[r4 createTestsr$r`rrar6r r r setUps  zTestCommandLineArgs.setUpcCsb|j}dD]&}d|_|d|g||jdq dD]&}d|_|d|g||jdq6dS)N)z-qz--quietr\r)z-vz --verboser-)r4r0r&r)r r4optr r r testVerbositysz!TestCommandLineArgs.testVerbosityc Cs|j}dD]\}}t||d|dg|t||dg}t||||dg|t|||dg}t||||dg|t|||d|d}d|}||fD]0}t||d|d|g|t||dt||dtJ} |t} |d|gWdn1s00YWdn1sP0Y| | j j dt||dtJ} |t} |d|gWdn1s0YWdn1s0Y| | j j dqq dS) N))bufferrj)failfastrk)Zcatch catchbreakF*z-%srz--%sT)r-) r4setattrr&assertIsgetattrrZcaptured_stderrrVrWr exceptionr)) r r4argattrZfalsetrueZ short_optZlong_optrhstderrcmr r r testBufferCatchFailfastsB          N  Nz+TestCommandLineArgs.testBufferCatchFailfastc CsGdddtj}tjdd}zxgtjdd<||jd||ddjddgtjdd<||jd||ddjdW|tjdd<n|tjdd<0dS)Nc@seZdZddZddZdS)z/TestCommandLineArgs.testWarning..FakeTPc_sdSrr r r)kwr r r r&r+z9TestCommandLineArgs.testWarning..FakeTP.parseArgsc_sdSrr rxr r r runTestsr+z8TestCommandLineArgs.testWarning..FakeTP.runTestsN)r!r"r#r&rzr r r r FakeTPsr{defaultignore)warningsZ somevalue)rr%rE warnoptionsrr~)r r{rr r r testWarningszTestCommandLineArgs.testWarningc Csf|j}t|_d|_d|_d|_d|_||tj dddddd|tj d| |j t dS)Nr0rkrjr~F)r0rkrjr_r~r)r4r$r.r0rkrjr~rzrr`rrorrdrSr r r testRunTestsRunnerClasss z+TestCommandLineArgs.testRunTestsRunnerClasscCsH|j}t|_dt_||tj|tjd||j t dS)Nr) r4r$r.r`rzZ assertIsNonerrrorrdrSr r r testRunTestsRunnerInstance s z.TestCommandLineArgs.testRunTestsRunnerInstancec CsN|j}t|_|ddg|d|j||tjdddddddS)Nz--localsTFr\)rjrkr_r0r~)r4r$r.r&rr_rzr`rSr r r test_localss zTestCommandLineArgs.test_localscCs`|j}dt_t|_d|_d|_d|_d|_|| tj i| tjd| |j t dS)Nr-r0rkrjr)r4r$rar.r0rkrjrrzrr`rorrdrSr r r testRunTestsOldRunnerClass$sz.TestCommandLineArgs.testRunTestsOldRunnerClasscsjtjdjfdd}|d_fdd}|_j}d|_t|_|  jdS)Nz unittest.maincs _dSr)installHandlerr )r;originalr r restore;szBTestCommandLineArgs.testCatchBreakInstallsHandler..restoreFcs d_dSr) installedr r6r r fakeInstallHandler@szMTestCommandLineArgs.testCatchBreakInstallsHandler..fakeInstallHandlerT) rEmodulesrr2rr4rlr$r.rzr)r rrr4r )r;rr r testCatchBreakInstallsHandler8s   z1TestCommandLineArgs.testCatchBreakInstallsHandlerTcs6fdd}tjj|tj_fdd}||dS)Ncs|vSrr )r)r=r r isfileMsz1TestCommandLineArgs._patch_isfile..isfilecs tj_dSr)rrrr )rr r rQsz2TestCommandLineArgs._patch_isfile..restore)rrrr2)r r=existsrrr )r=rr _patch_isfileLs   z!TestCommandLineArgs._patch_isfilecCsF|j}gd}||dd|_||gd}||j|dS)N)prognamezfoo.pyzbar.Pyzbaz.PYwing.txtcSsdSrr r r r r r*\r+z.)foobarZbazrr4rrfr&rrGr r4rFexpectedr r r testParseArgsFileNamesVs   z*TestCommandLineArgs.testParseArgsFileNamescCsF|j}gd}||dd|_||ddg}||j|dS)Nrfoo/bar/baz.py green\red.pycSsdSrr r r r r r*jr+z. foo.bar.baz green.redrrr r r testParseArgsFilePathses   z*TestCommandLineArgs.testParseArgsFilePathscCsF|j}gd}|gdd|_||||j|dddS)NrcSsdSrr r r r r r*vr+zCTestCommandLineArgs.testParseArgsNonExistentFiles..r\rr r4rFr r r testParseArgsNonExistentFilesqs    z1TestCommandLineArgs.testParseArgsNonExistentFilescsdt|j}fdd}d|d|dg}||dd|_||dd g}||j|dS) Ncstj|Sr)rrjoin)nameZcur_dirr r _join~szOTestCommandLineArgs.testParseArgsAbsolutePathsThatCanBeConverted.._joinrrrcSsdSrr r r r r r*r+zRTestCommandLineArgs.testParseArgsAbsolutePathsThatCanBeConverted..rr)rgetcwdr4rrfr&rrG)r r4rrFrr rr ,testParseArgsAbsolutePathsThatCanBeConverted{s    z@TestCommandLineArgs.testParseArgsAbsolutePathsThatCanBeConvertedcCsF|j}gd}||dd|_||||j|dddS)N)rz/foo/bar/baz.pyz /green/red.pycSsdSrr r r r r r*r+zUTestCommandLineArgs.testParseArgsAbsolutePathsThatCannotBeConverted..r\rrr r r /testParseArgsAbsolutePathsThatCannotBeConverteds    zCTestCommandLineArgs.testParseArgsAbsolutePathsThatCannotBeConvertedcCs8|j}gd}dd|_||||jgddS)N)r-krrrr*pat*cSsdSrr r r r r r*r+zDTestCommandLineArgs.testParseArgsSelectedTestNames..)z*foo*z*bar*r)r4rfr&rZtestNamePatternsrr r r testParseArgsSelectedTestNamess   z2TestCommandLineArgs.testParseArgsSelectedTestNamescCsdd}d}|d||g|d|dd|g|d|gd|d|dd |g|d|dd |g|d |dd |g|d|dd |g|d|dd|gdS)NcSsbtjtjddg|tjtjtjt d}|| \}}Wdn1sP0Y| S)Nz-mr)stdoutrucwd) subprocessPopenrE executableDEVNULLPIPErrrr communicatedecode)r)p_rur r r run_unittests *zMTestCommandLineArgs.testSelectedTestNamesFunctionalTest..run_unittestZ_test_warningsz Ran 7 testsr TestWarnings)rz-pz*_test*rrz Ran 2 testsftz Ran 3 testsz*tz*test_warnings.*Warning*z Ran 1 testz*test_warnings.*warning*)ZassertIn)r rrr r r #testSelectedTestNamesFunctionalTestsz7TestCommandLineArgs.testSelectedTestNamesFunctionalTestN)T)r!r"r#rgrirwrrrrrrrrrrrrrrr r r r res" &     rer])rPrrErrrrZ unittest.testrZrr%r[r1rdr$rer!rNr r r r s z