
    4hhG                     \   S SK r S SKrS SKrS SKJr  S SKrS SKrS SKJr  \R                   " S S\R                  5      5       r " S S\R                  5      r\" 5       r " S S	\5      r\R"                  " 5        " S
 S\R                  5      5       r\S:X  a  \R(                  " 5         gg)    N)support)BufferedWriterc                       \ rS rSrS rS r " S S\R                  5      r " S S\R                  5      r	 " S S	\R                  5      r
S
 rS rS rS rS rS rS rSrg)Test_TestProgram
   c                   ^ ^^ [         R                  " 5       nT /m[        R                  R	                  [        R                  R                  [        R                  R                  5      5      mST l	        UU U4S jnX!l
        UR                  S5      nT R                  T R                  5        T R                  UR                  T5        g )NFc                 :   > STl         TR                  U T5        T$ NT)wasRunassertEqual)	start_dirpatternexpectedPathselftestss     H/opt/python-3.13.8/usr/lib/python3.13/test/test_unittest/test_program.py_find_testsETest_TestProgram.test_discovery_from_dotted_path.<locals>._find_tests   s    DKY5L    test.test_unittest)unittest
TestLoaderospathabspathdirnametesttest_unittest__file__r   r   discover
assertTruer   _tests)r   loaderr   suiter   r   s   `   @@r   test_discovery_from_dotted_path0Test_TestProgram.test_discovery_from_dotted_path   s    $$&wwrwwt7I7I7R7R'ST	 ) 45$u-r   c                   ^^ [        5       m[        5       n " U4S jS[         5      nU" 5       n[        R                  R                  mU4S jnS [        R                  l        U R	                  U5        S nU[        R                  l        U R	                  U5        [        R                  " USSS9nU R                  UR                  T5        U R                  UR
                  U5        U R                  UR                  S5        g )	Nc                   "   > \ rS rSrU 4S jrSrg)/Test_TestProgram.testNoExit.<locals>.FakeRunner"   c                    > Xl         T$ Nr   )r   r   results     r   run3Test_TestProgram.testNoExit.<locals>.FakeRunner.run#   s     	r   r-   N__name__
__module____qualname____firstlineno__r/   __static_attributes__)r.   s   r   
FakeRunnerr)   "   s     r   r7   c                  0   > T [         R                  l        g r,   )r   TestProgram	parseArgs)oldParseArgss   r   restoreParseArgs5Test_TestProgram.testNoExit.<locals>.restoreParseArgs*   s    -9H  *r   c                      g r,    )argss    r   <lambda>-Test_TestProgram.testNoExit.<locals>.<lambda>,   s    tr   c                  $    [         R                  ?g r,   )r   r9   r   r?   r   r   
removeTest/Test_TestProgram.testNoExit.<locals>.removeTest/   s    $$)r   F   )
testRunnerexit	verbosity)	objectr   r9   r:   
addCleanupr   r   r.   rI   )	r   r   r7   runnerr<   rD   programr;   r.   s	          @@r   
testNoExitTest_TestProgram.testNoExit   s    x	 	
 ++55	:);&()	*$(!
#&&&uPQR0d+**A.r   c                       \ rS rSrS rS rS r\R                  " S5      S 5       r	\R                  S 5       r\R                  S 5       rS	rg
)Test_TestProgram.FooBar:   c                     g r,   r?   r   s    r   testPass Test_TestProgram.FooBar.testPass;   s    r   c                     [         er,   AssertionErrorrT   s    r   testFail Test_TestProgram.FooBar.testFail=   s      r   c                     SS-    g )N   r   r?   rT   s    r   	testError!Test_TestProgram.FooBar.testError?   s	    aCr   skippingc                     [         er,   rX   rT   s    r   testSkipped#Test_TestProgram.FooBar.testSkippedA         r   c                     [         er,   rX   rT   s    r   testExpectedFailure+Test_TestProgram.FooBar.testExpectedFailureD   rd   r   c                     g r,   r?   rT   s    r   testUnexpectedSuccess-Test_TestProgram.FooBar.testUnexpectedSuccessG   s    r   r?   N)r2   r3   r4   r5   rU   rZ   r^   r   skiprb   expectedFailurerf   ri   r6   r?   r   r   FooBarrQ   :   s\    		!		z	"	! 
#	!		!	!	! 
"	!		!	!	 
"	r   rm   c                       \ rS rSrSrg)Test_TestProgram.EmptyK   r?   N)r2   r3   r4   r5   r6   r?   r   r   Emptyro   K   s    r   rq   c                   &    \ rS rSrS rS rS rSrg)Test_TestProgram.TestLoaderN   c                     Xl         g r,   testcase)r   rw   s     r   __init__$Test_TestProgram.TestLoader.__init__Q   s    $Mr   c                 X    U R                  U R                  U R                  5      /5      $ r,   
suiteClassloadTestsFromTestCaserw   )r   modules     r   loadTestsFromModule/Test_TestProgram.TestLoader.loadTestsFromModuleT   (    ??++DMM:;= =r   c                 X    U R                  U R                  U R                  5      /5      $ r,   r{   )r   namesr~   s      r   loadTestsFromNames.Test_TestProgram.TestLoader.loadTestsFromNamesX   r   r   rv   N)r2   r3   r4   r5   rx   r   r   r6   r?   r   r   r   rs   N   s    	%	=	=r   r   c                     " S S[         5      n[        R                  nS/[        l        U" 5       n[        R                  " USSU R                  U R                  5      S9nU[        l        U R                  SUR                  5        g )Nc                       \ rS rSrS rSrg)ATest_TestProgram.test_defaultTest_with_string.<locals>.FakeRunner]   c                     Xl         gr
   r-   r   r   s     r   r/   ETest_TestProgram.test_defaultTest_with_string.<locals>.FakeRunner.run^   
     	r   r-   Nr1   r?   r   r   r7   r   ]       r   r7   faketestFr   rG   rH   defaultTest
testLoader)r   	rJ   sysargvr   r9   r   rm   r   	testNamesr   r7   old_argvrL   rM   s        r   test_defaultTest_with_string-Test_TestProgram.test_defaultTest_with_string\   sq    	 	
 88<&&&u3G26//$++2NP 0'2C2CDr   c                     " S S[         5      n[        R                  nS/[        l        U" 5       n[        R                  " USSS/U R                  U R                  5      S9nU[        l        U R                  SS/UR                  5        g )Nc                       \ rS rSrS rSrg)CTest_TestProgram.test_defaultTest_with_iterable.<locals>.FakeRunnerl   c                     Xl         gr
   r-   r   s     r   r/   GTest_TestProgram.test_defaultTest_with_iterable.<locals>.FakeRunner.runm   r   r   r-   Nr1   r?   r   r   r7   r   l   r   r   r7   r   Fr   ztest.test_unittest2r   r   r   s        r   test_defaultTest_with_iterable/Test_TestProgram.test_defaultTest_with_iterablek   s    	 	
 88<&&E-/DEt{{35 .0EF!++	-r   c                    [        5       n[        R                  " SS/[        R                  " US9U R	                  U R
                  5      S9nU R                  [        US5      5        UR                  5       nU R                  SU5        U R                  SU5        U R                  SU5        S	nU R                  UR                  U5      5        g )
NFfoobarstream)rH   r   rG   r   r.   
FAIL: testFail 
ERROR: testError +
UNEXPECTED SUCCESS: testUnexpectedSuccess X

FAILED (failures=1, errors=1, skipped=1, expected failures=1, unexpected successes=1)
)r   r   mainTextTestRunnerr   rm   r!   hasattrgetvalueassertInendswith)r   r   rM   outexpecteds        r   test_NonExitTest_TestProgram.test_NonExit|   s    !--U&.Z+3+B+B&+Q+/??4;;+GI 	23oo)3/+S1DcJEX./r   c           	         [        5       nU R                  [        5       n[        R                  " S/[        R
                  " US9SU R                  U R                  5      S9  S S S 5        U R                  WR                  R                  S5        UR                  5       nU R                  SU5        U R                  SU5        U R                  SU5        S	nU R                  UR                  U5      5        g ! , (       d  f       N= f)
Nr   r   T)r   rG   rH   r   r]   r   r   r   r   )r   assertRaises
SystemExitr   r   r   r   rm   r   	exceptioncoder   r   r!   r   r   r   cmr   r   s        r   	test_ExitTest_TestProgram.test_Exit   s    !z*bMMZ#22&A??4;;7	9 + 	**A.oo)3/+S1DcJEX./ +*s   AC;;
D	c                    [        5       nU R                  [        5         [        R                  " S/[        R
                  " US9U R                  U R                  5      S9  S S S 5        UR                  5       nU R                  SU5        U R                  SU5        U R                  SU5        SnU R                  UR                  U5      5        g ! , (       d  f       Nw= f)Nr   r   r   rG   r   r   r   r   r   )r   r   r   r   r   r   r   rm   r   r   r!   r   )r   r   r   r   s       r   test_ExitAsDefault#Test_TestProgram.test_ExitAsDefault   s    !z*MMZ#22&A??4;;79 +
 oo)3/+S1DcJEX./ +*s   AC
C"c                    [        5       nU R                  [        5       n[        R                  " / SQ[        R
                  " US9U R                  U R                  5      S9  S S S 5        U R                  WR                  R                  S5        UR                  5       nSnU R                  UR                  U5      5        g ! , (       d  f       Ng= f)N)r   -krb   r   r   r   z

OK (skipped=1)
)r   r   r   r   r   r   r   rm   r   r   r   r   r!   r   r   s        r   test_ExitSkippedSuite&Test_TestProgram.test_ExitSkippedSuite   s    !z*bMM4#22&A??4;;79 +
 	**A.oo)X./ +*s   AC
Cc                    [        5       nU R                  [        5       n[        R                  " S/[        R
                  " US9U R                  U R                  5      S9  S S S 5        U R                  WR                  R                  S5        UR                  5       nU R                  SU5        g ! , (       d  f       NW= f)Nemptyr   r      z
NO TESTS RAN
)r   r   r   r   r   r   r   rq   r   r   r   r   r   )r   r   r   r   s       r   test_ExitEmptySuite$Test_TestProgram.test_ExitEmptySuite   s    !z*bMMY#22&A??4::68 +
 	**A.oo(#. +*s   AB44
C)r   N)r2   r3   r4   r5   r%   rN   r   TestCaserm   rq   r   r   r   r   r   r   r   r   r6   r?   r   r   r   r   
   sf    ."/8"" "!! =X(( =E-"00"0
0	/r   r   c                   V    \ rS rSrSrSrSrSrSrSr	\
R                  rSrSrSrS rSrg)	InitialisableProgram   FNr]   __main__r   c                     g r,   r?   )r   r@   s     r   rx   InitialisableProgram.__init__   s    r   r?   )r2   r3   r4   r5   rH   r.   rI   r   	tb_localsrG   r   defaultTestLoaderr   r~   progNamer   rx   r6   r?   r   r   r   r      s?    DFIKIJ++JFHDr   r   c                   ,    \ rS rSrSrSrSrS rS rSr	g)r7      Nr   c                     U[         l        [         R                  (       a  [         =R                  S-  sl        [        eg )Nr]   )r7   initArgs
raiseError	TypeError)r   kwargss     r   rx   FakeRunner.__init__   s.    $
  !!Q&!O !r   c                 $    U[         l        [        $ r,   )r7   r   RESULTr   s     r   r/   FakeRunner.run   s    
r   r?   )
r2   r3   r4   r5   r   r   r   rx   r/   r6   r?   r   r   r7   r7      s    HDJr   r7   c                   ~    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSS jrS rS rS rS rS rS rS rSrg)TestCommandLineArgs   c                     [        5       U l        S U R                  l        S [        l        S [        l        S[        l        g )Nc                      g r,   r?   r?   r   r   rA   +TestCommandLineArgs.setUp.<locals>.<lambda>   s    4r   r   )r   rM   createTestsr7   r   r   r   rT   s    r   setUpTestCommandLineArgs.setUp   s/    +-#/ "

 !
r   c                    U R                   nS H9  nSUl        UR                  S U/5        U R                  UR                  S5        M;     S H9  nSUl        UR                  S U/5        U R                  UR                  S5        M;     g )N)z-qz--quietr]   r   )z-vz	--verboserF   )rM   rI   r:   r   )r   rM   opts      r   testVerbosity!TestCommandLineArgs.testVerbosity   s    ,,"C !GtSk*W..2 #
 %C !GtSk*W..2 %r   c           	         U R                   nS GH  u  p#[        XS 5        UR                  S /5        U R                  [	        X5      S5        / n[        XU5        UR                  S /5        U R                  [	        X5      U5        S/n[        XU5        UR                  S /5        U R                  [	        X5      U5        SUS   -  nSU-  nXg4 GH@  n[        XS 5        UR                  S U/5        U R                  [	        X5      S5        [        XS5        [
        R                  " 5        n	U R                  [        5       n
UR                  S U/5        S S S 5        S S S 5        U R                  W
R                  R                  S5        [        XS5        [
        R                  " 5        n	U R                  [        5       n
UR                  S U/5        S S S 5        S S S 5        U R                  U
R                  R                  S5        GMC     GM     g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ni= f! , (       d  f       Nr= f)	N))bufferr   )failfastr   )catch
catchbreakF*   z-%sr   z--%sT)rF   )rM   setattrr:   assertIsgetattrr   captured_stderrr   r   r   r   r@   )r   rM   argattrfalsetrue	short_optlong_optr   stderrr   s              r   testBufferCatchFailfast+TestCommandLineArgs.testBufferCatchFailfast   s   ,,/IC G4(tf%MM''0%8EG5)tf%MM''0%84DG4(tf%MM''0$7AI|H *t,!!4+.gg4d;u-,,.&%%j1R%%tSk2 2 /   !2!2D9t,,,.&%%j1R%%tSk2 2 /   !2!2D9 +'/4 21 /. 21 /.sH   4H1
H 	H15II	I 
H.*H11
H?
II
I!c                     " S S[         R                  5      n[        R                  S S  n / [        R                  S S & U R	                  U" 5       R
                  S5        U R	                  U" SS9R
                  S5        S/[        R                  S S & U R	                  U" 5       R
                  S 5        U R	                  U" SS9R
                  S5        U[        R                  S S & g ! U[        R                  S S & f = f)Nc                        \ rS rSrS rS rSrg)/TestCommandLineArgs.testWarning.<locals>.FakeTPi#  c                     g r,   r?   r   r@   kws      r   r:   9TestCommandLineArgs.testWarning.<locals>.FakeTP.parseArgs$  s    dr   c                     g r,   r?   r  s      r   runTests8TestCommandLineArgs.testWarning.<locals>.FakeTP.runTests%  s    Tr   r?   N)r2   r3   r4   r5   r:   r  r6   r?   r   r   FakeTPr  #  s    21r   r
  defaultignore)warnings	somevalue)r   r9   r   warnoptionsr   r  )r   r
  r  s      r   testWarningTestCommandLineArgs.testWarning   s    	2X)) 	2 ooa(	-!#COOAVX..	:VX6??J"-COOA VX..5VX6??J!,COOACOOAs   B)C+ +D c           
      f   U R                   n[        Ul        SUl        SUl        SUl        SUl        SUl        UR                  5         U R                  [        R                  SSSSSSS.5        U R                  [        R                  S5        U R                  UR                  [        5        g )	NrI   r   r   r  5F)rI   r   r   r   r  	durationsr   )rM   r7   rG   rI   r   r   r  r  r  r   r   r   r   r.   r   r   rM   s     r   testRunTestsRunnerClass+TestCommandLineArgs.testRunTestsRunnerClass5  s    ,,''%!%,,K<F:B=B<F=@/B 	C 	&1gnnf-r   c                 .   U R                   n[        5       Ul        S [        l        UR	                  5         U R                  [        R                  5        U R                  [        R                  S5        U R                  UR                  [        5        g )Nr   )rM   r7   rG   r   r  assertIsNoner   r   r   r.   r   r  s     r   testRunTestsRunnerInstance.TestCommandLineArgs.testRunTestsRunnerInstanceJ  se    ,,'\"
 	*--.&1gnnf-r   c           
          U R                   n[        Ul        UR                  S S/5        U R	                  SUR
                  5        UR                  5         U R	                  [        R                  SSSSS S S.5        g )Nz--localsTFr]   )r   r   r   rI   r  r  )rM   r7   rG   r:   r   r   r  r   r  s     r   test_localsTestCommandLineArgs.test_localsX  sv    ,,'4,-w001,,;@<@<=;?<@/B 	Cr   c                 n   U R                   nS[        l        [        Ul        SUl        SUl        SUl        SUl        SUl        UR                  5         U R                  [        R                  0 5        U R                  [        R                  S5        U R                  UR                  [        5        g )NrF   rI   r   r   r   0)rM   r7   r   rG   rI   r   r   r   r  r  r   r   r   r.   r   r  s     r   testRunTestsOldRunnerClass.TestCommandLineArgs.testRunTestsOldRunnerClassf  s    ,, !"
''%! 	,,b1&1gnnf-r   c                 @  ^ ^^ [         R                  S   mTR                  mUU4S jnT R                  U5        ST l        U 4S jnUTl        T R
                  nSUl        S Ul        [        Ul	        UR                  5         T R                  T R                  5        g )Nzunittest.mainc                     > TT l         g r,   )installHandler)r~   originals   r   restoreBTestCommandLineArgs.testCatchBreakInstallsHandler.<locals>.restore~  s    $,F!r   Fc                     > ST l         g r
   )	installedrT   s   r   fakeInstallHandlerMTestCommandLineArgs.testCatchBreakInstallsHandler.<locals>.fakeInstallHandler  s
    !DNr   T)r   modulesr%  rK   r*  rM   r   r  r7   rG   r  r!   )r   r'  r+  rM   r~   r&  s   `   @@r   testCatchBreakInstallsHandler1TestCommandLineArgs.testCatchBreakInstallsHandler{  s~    _-((	- 	" 2,,! ''r   c                    ^^ U4S jn[         R                  R                  mU[         R                  l        U4S jnU R                  U5        g )Nc                    > U T;   $ r,   r?   )r   r   s    r   isfile1TestCommandLineArgs._patch_isfile.<locals>.isfile  s    5= r   c                  0   > T [         R                  l        g r,   )r   r   r2  )r&  s   r   r'  2TestCommandLineArgs._patch_isfile.<locals>.restore  s    %BGGNr   )r   r   r2  rK   )r   r   existsr2  r'  r&  s    `   @r   _patch_isfile!TestCommandLineArgs._patch_isfile  s1    	!77>>	& r   c                     U R                   n/ SQnU R                  U5        S Ul        UR                  U5        / SQnU R	                  UR
                  U5        g )N)prognamezfoo.pyzbar.Pyzbaz.PYwing.txtc                      g r,   r?   r?   r   r   rA   <TestCommandLineArgs.testParseArgsFileNames.<locals>.<lambda>      dr   )foobarbazr;  rM   r7  r   r:   r   r   r   rM   r   r   s       r   testParseArgsFileNames*TestCommandLineArgs.testParseArgsFileNames  sQ    ,,E4 *$ 5**H5r   c                     U R                   n/ SQnU R                  U5        S Ul        UR                  U5        SS/nU R	                  UR
                  U5        g )Nr:  foo/bar/baz.pygreen\red.pyc                      g r,   r?   r?   r   r   rA   <TestCommandLineArgs.testParseArgsFilePaths.<locals>.<lambda>  r>  r   foo.bar.baz	green.redrB  rC  s       r   testParseArgsFilePaths*TestCommandLineArgs.testParseArgsFilePaths  sT    ,,>4 *$!;/**H5r   c                     U R                   n/ SQnU R                  / 5        S Ul        UR                  U5        U R	                  UR
                  USS  5        g )NrG  c                      g r,   r?   r?   r   r   rA   CTestCommandLineArgs.testParseArgsNonExistentFiles.<locals>.<lambda>  r>  r   r]   rB  r   rM   r   s      r   testParseArgsNonExistentFiles1TestCommandLineArgs.testParseArgsNonExistentFiles  sP    ,,>2*$**DH5r   c                 
  ^ [         R                  " 5       mU R                  nU4S jnSU" S5      U" S5      /nU R                  U5        S Ul        UR                  U5        SS/nU R                  UR                  U5        g )Nc                 D   > [         R                  R                  TU 5      $ r,   )r   r   join)namecur_dirs    r   _joinOTestCommandLineArgs.testParseArgsAbsolutePathsThatCanBeConverted.<locals>._join  s    77<<..r   r:  rH  rI  c                      g r,   r?   r?   r   r   rA   RTestCommandLineArgs.testParseArgsAbsolutePathsThatCanBeConverted.<locals>.<lambda>  r>  r   rL  rM  )r   getcwdrM   r7  r   r:   r   r   )r   rM   r[  r   r   rZ  s        @r   ,testParseArgsAbsolutePathsThatCanBeConverted@TestCommandLineArgs.testParseArgsAbsolutePathsThatCanBeConverted  sw    ))+,,	/E"23U?5KL4 *$!;/**H5r   c                 .   U R                   n[        R                  R                  [        R                  " 5       5      S   nSU S3U S3/nU R                  U5        S Ul        UR                  U5        U R                  UR                  USS  5        g )Nr   r:  z/foo/bar/baz.pyz/green/red.pyc                      g r,   r?   r?   r   r   rA   UTestCommandLineArgs.testParseArgsAbsolutePathsThatCannotBeConverted.<locals>.<lambda>  r>  r   r]   )
rM   r   r   
splitdriver_  r7  r   r:   r   r   )r   rM   driver   s       r   /testParseArgsAbsolutePathsThatCannotBeConvertedCTestCommandLineArgs.testParseArgsAbsolutePathsThatCannotBeConverted  s    ,,""299;/2ug_5%7NO4 *$**DH5r   c                     U R                   n/ SQnS Ul        UR                  U5        U R                  UR                  / SQ5        g )N)r:  r   r?  r   r@  r   *pat*c                      g r,   r?   r?   r   r   rA   DTestCommandLineArgs.testParseArgsSelectedTestNames.<locals>.<lambda>  r>  r   )z*foo*z*bar*rj  )rM   r   r:   r   testNamePatternsrS  s      r   testParseArgsSelectedTestNames2TestCommandLineArgs.testParseArgsSelectedTestNames  s=    ,,D*$113NOr   c                    S nSnU R                  SU" U/5      5        U R                  SU" SSU/5      5        U R                  SU" / SQ5      5        U R                  SU" SSU/5      5        U R                  SU" SS	U/5      5        U R                  S
U" SSU/5      5        U R                  SU" SSU/5      5        U R                  SU" SSU/5      5        g )Nc                 r   [         R                  SSS/U -   n[        R                  " U[        R                  [        R
                  [        R                  R                  [        5      S9nU   UR                  5       u  p4S S S 5        UR                  5       $ ! , (       d  f       WR                  5       $ = f)Nz-Ez-mr   )stdoutr   cwd)r   
executable
subprocessPopenDEVNULLPIPEr   r   r   r   communicatedecode)r@   cmdp_r   s        r   run_unittestMTestCommandLineArgs.testSelectedTestNamesFunctionalTest.<locals>.run_unittest  s    >>4z:TAC  !))*//rwwW_G`bAMMO	 ==?" ==?"s   .B
B6_test_warningszRan 5 testsr   TestWarnings)r    z-pz*_test*r   r  zRan 1 test ftzRan 2 testsz*tz*test_warnings.*Warning*z*test_warnings.*warning*)r   )r   r~  r  s      r   #testSelectedTestNamesFunctionalTest7TestCommandLineArgs.testSelectedTestNamesFunctionalTest  s    	# m\1#%67m\42K%LMm\2e%fgm\4a.%ABm\4a.%ABm\4q/%BCm\49SUV2W%XYm\49SUV2W%XYr   )r*  rM   N)T)r2   r3   r4   r5   r   r   r   r  r  r  r  r!  r.  r7  rD  rN  rT  r`  rg  rn  r  r6   r?   r   r   r   r      s[    "3$:L-*.*.C.*(*!6	666	6$PZr   r   r   )r   r   ru  r   r   r   test.test_unittesttest.test_unittest.test_resultr   force_not_colorized_test_classr   r   r9   r   rJ   r   r7   requires_subprocessr   r2   r   r?   r   r   <module>r     s    	 
     9 	''u/x(( u/ (u/p8//  
   	VZ(++ VZ VZr zMMO r   