U :e:@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 expectedPathselfZtests?/usr/local/python38/lib/python3.8/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]\}}|dkr"ts"q t||d|dg|t||dg}t||||dg|t|||dg}t||||dg|t|||d|d}d|}||fD]}t||d|d|g|t||dt||dt*} |t } |d|gW5QRXW5QRX| | j j d t||dt*} |t } |d|gW5QRXW5QRX| | j j d qq dS) N))bufferrj)failfastrk)catch catchbreakrlF*z-%srz--%sT)r-) r4ZhasInstallHandlersetattrr&assertIsgetattrrZcaptured_stderrrVrWr exceptionr)) r r4argattrZfalsetrueZ short_optZlong_optrhstderrcmr r r testBufferCatchFailfastsF            "  "z+TestCommandLineArgs.testBufferCatchFailfastc CsGdddtj}tjdd}zjgtjdd<||jd||ddjddgtjdd<||jd||ddjdW5|tjdd<XdS)Nc@seZdZddZddZdS)z/TestCommandLineArgs.testWarning..FakeTPc_sdSrr r r)kwr r r r&r+z9TestCommandLineArgs.testWarning..FakeTP.parseArgsc_sdSrr ryr r r runTestsr+z8TestCommandLineArgs.testWarning..FakeTP.runTestsN)r!r"r#r&r{r 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)Nr0rkrjrF)r0rkrjr_rr)r4r$r.r0rkrjrr{rr`rrprrdrSr r r testRunTestsRunnerClasss z+TestCommandLineArgs.testRunTestsRunnerClasscCsH|j}t|_dt_||tj|tjd||j t dS)Nr) r4r$r.r`r{Z assertIsNonerrrprrdrSr r r testRunTestsRunnerInstance s z.TestCommandLineArgs.testRunTestsRunnerInstancec CsN|j}t|_|ddg|d|j||tjdddddddS)Nz--localsTFr\)rjrkr_r0r)r4r$r.r&rr_r{r`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.r0rkrjrr{rr`rprrdrSr 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 fakeInstallHandlerBszMTestCommandLineArgs.testCatchBreakInstallsHandler..fakeInstallHandlerT) rEmodulesrr2rr4rmr$r.r{r)r rrr4r )r;rr r testCatchBreakInstallsHandler:s   z1TestCommandLineArgs.testCatchBreakInstallsHandlerTcs6fdd}tjj|tj_fdd}||dS)Ncs|kSrr )r)r=r r isfileOsz1TestCommandLineArgs._patch_isfile..isfilecs tj_dSr)rrrr )rr r rSsz2TestCommandLineArgs._patch_isfile..restore)rrrr2)r r=existsrrr )r=rr _patch_isfileNs   z!TestCommandLineArgs._patch_isfilecCsP|j}dddddg}||dd|_||dd d dg}||j|dS) Nprognamezfoo.pyzbar.Pyzbaz.PYzwing.txtcSsdSrr r r r r r*^r+z.foobarZbazr4rrfr&rrGr r4rFexpectedr r r testParseArgsFileNamesXs    z*TestCommandLineArgs.testParseArgsFileNamescCsH|j}dddg}||dd|_||ddg}||j|dS)Nrfoo/bar/baz.py green\red.pycSsdSrr r r r r r*lr+z. foo.bar.baz green.redrrr r r testParseArgsFilePathsgs    z*TestCommandLineArgs.testParseArgsFilePathscCsH|j}dddg}|gdd|_||||j|dddS)NrrrcSsdSrr r r r r r*xr+zCTestCommandLineArgs.testParseArgsNonExistentFiles..r\rr r4rFr r r testParseArgsNonExistentFilesss     z1TestCommandLineArgs.testParseArgsNonExistentFilescsdt|j}fdd}d|d|dg}||dd|_||dd g}||j|dS) Ncstj|Sr)rrjoin)nameZcur_dirr r _joinszOTestCommandLineArgs.testParseArgsAbsolutePathsThatCanBeConverted.._joinrrrcSsdSrr r r r r r*r+zRTestCommandLineArgs.testParseArgsAbsolutePathsThatCanBeConverted..rr)rgetcwdr4rrfr&rrG)r r4rrFrr rr ,testParseArgsAbsolutePathsThatCanBeConverted}s    z@TestCommandLineArgs.testParseArgsAbsolutePathsThatCanBeConvertedcCsH|j}dddg}||dd|_||||j|dddS)Nrz/foo/bar/baz.pyz /green/red.pycSsdSrr r r r r r*r+zUTestCommandLineArgs.testParseArgsAbsolutePathsThatCannotBeConverted..r\rrr r r /testParseArgsAbsolutePathsThatCannotBeConverteds     zCTestCommandLineArgs.testParseArgsAbsolutePathsThatCannotBeConvertedcCsD|j}dddddddg}dd|_||||jdd dgdS) Nr-krrz*pat*cSsdSrr r r r r r*r+zDTestCommandLineArgs.testParseArgsSelectedTestNames..z*foo*z*bar*)r4rfr&rZtestNamePatternsrr r r testParseArgsSelectedTestNamess   z2TestCommandLineArgs.testParseArgsSelectedTestNamesc Csdd}d}|d||g|d|dd|g|d|ddd ddg|d |dd |g|d|dd |g|d |dd|g|d|dd|g|d|dd|gdS)Nc SsNtjtjddg|tjtjtjt d}|| \}}W5QRX| S)Nz-mr)stdoutrvcwd) subprocessPopenrE executableDEVNULLPIPErrrr communicatedecode)r)p_rvr r r run_unittests zMTestCommandLineArgs.testSelectedTestNamesFunctionalTest..run_unittestZ_test_warningsz Ran 7 testsrZ TestWarningsrz-pz*_test*z 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#rgrirxrrrrrrrrrrrrrrr r r r res" (     rer])rPrrErrrrZ unittest.testrZrr%r[r1rdr$rer!rNr r r r s z