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.FooBarcCs dsJdSrr r r r r testPass;sz Test_TestProgram.FooBar.testPasscCs dsJdS)NFr r6r r r testFail=sz Test_TestProgram.FooBar.testFailN)r!r"r#r7r8r r r r FooBar:sr9c@s eZdZdZddZddZdS)zTest_TestProgram.FooBarLoaderz3Test loader that returns a suite containing FooBar.cCs||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#__doc__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$rAFr zunittest.test2rBrErIr r r test_defaultTest_with_iterableYs z/Test_TestProgram.test_defaultTest_with_iterablecCs8tjddgtjtd|d}|t|ddS)NFfoobarstream)r/rGr.rDr)rmainTextTestRunnerioStringIOr@rhasattrr r4r r r test_NonExitjs zTest_TestProgram.test_NonExitcCs.|jttjdgtjtdd|ddS)NrLrMT)rGr.r/rD assertRaises SystemExitrrOrPrQrRr@r6r r r test_ExitrszTest_TestProgram.test_ExitcCs,|jttjdgtjtd|ddS)NrLrM)rGr.rDrVr6r r r test_ExitAsDefault|sz#Test_TestProgram.test_ExitAsDefaultN)r!r"r#rr5rTestCaser9rr@rJrKrUrYrZr 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/rr0rC tb_localsr.rZdefaultTestLoaderrDr;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#rarrbr_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$rarrbr6r 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))bufferrk)failfastrl)Zcatch catchbreakF*z-%srz--%sT)r-) r4setattrr&assertIsgetattrrZcaptured_stderrrWrXr exceptionr)) r r4argattrZfalsetrueZ short_optZlong_optristderrcmr r r testBufferCatchFailfastsB          N  Nz+TestCommandLineArgs.testBufferCatchFailfastc CsGdddtj}tjdd}zxgtjdd<||jd||ddjddgtjdd<||jd||ddjdW|tjdd<n|tjdd<0dS)zTest the warnings argumentc@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|Ndefaultignore)warningsZ somevalue)rr%rF warnoptionsrr)r r|rr r r testWarningszTestCommandLineArgs.testWarningc Csf|j}t|_d|_d|_d|_d|_||tj dddddd|tj d| |j t dS)Nr0rlrkrF)r0rlrkr`rr)r4r$r.r0rlrkrr{rrarrprrerTr r r testRunTestsRunnerClasss z+TestCommandLineArgs.testRunTestsRunnerClasscCsH|j}t|_dt_||tj|tjd||j t dS)Nr) r4r$r.rar{Z assertIsNonerrrprrerTr r r testRunTestsRunnerInstance s z.TestCommandLineArgs.testRunTestsRunnerInstancec CsN|j}t|_|ddg|d|j||tjdddddddS)Nz--localsTFr])rkrlr`r0r)r4r$r.r&rr`r{rarTr r r test_localss zTestCommandLineArgs.test_localscCs`|j}dt_t|_d|_d|_d|_d|_|| tj i| tjd| |j t dS)Nr-r0rlrkr)r4r$rbr.r0rlrkrr{rrarprrerTr 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) rFmodulesrr2rr4rmr$r.r{r)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.)foobarZbazrr4rrgr&rrHr r4rGexpectedr 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 r4rGr 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)rgetcwdr4rrgr&rrH)r r4rrGrr 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)r4rgr&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)stdoutrvcwd) subprocessPopenrF executableDEVNULLPIPErrrr communicatedecode)r)p_rvr 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#rhrjrxrrrrrrrrrrrrrrr r r r rfs" &     rfr^)rQrrFrrrrZ unittest.testr[rr%r\r1rer$rfr!rOr r r r s z