
    4hhۃ                         S SK rS SK Jr  S SKrS SKrS SKrS SKrS SKJr  S SK	J
r
  S SKrS SKrS SKr " S S\R                  5      r " S S\R                   5      r\S	:X  a  \R&                  " 5         gg)
    N)abspath)support)import_helperc                   B    \ rS rSrSrSrS=r=r=rr	Sr
SrS=rrS rSrg)TestableTestProgram   NT    c                     g N )selfs    J/opt/python-3.13.8/usr/lib/python3.13/test/test_unittest/test_discovery.py__init__TestableTestProgram.__init__   s        r   )__name__
__module____qualname____firstlineno__moduleexitdefaultTestfailfast
catchbreakbuffer	verbosityprogName
testRunner
testLoaderr   __static_attributes__r   r   r   r   r      s9    FD377K7(7Z&IH""Jr   r   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 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TestDiscovery   c                     [         R                  " 5       nSUl        UR                  S5      nU R	                  US5         g )N/fooz/foo/bar/baz.pyzbar.baz)unittest
TestLoader_top_level_dir_get_name_from_pathassertEqualassertRaisesAssertionError)r   loadernames      r   test_get_name_from_path%TestDiscovery.test_get_name_from_path   s?    $$& &))*;<y)r   c                 ^  ^^^^^ [         R                  " 5       n[        R                  mU4S jn[        R                  R
                  mU4S jn[        R                  R                  mU4S jn/ SQSS//mU4S j[        l        U R                  U5        S nU[        R                  l        U R                  U5        S	 nU[        R                  l        U R                  U5        S
 Ul        UR                  mSU4S jjnXql	        S Ul
        [        R                  R                  S5      nXl        [        UR                  US5      5      n	S V
s/ s H  oS-   /PM
     nn
UR                  S V
s/ s H  n
SU
-  S-   /PM     sn
5        U R!                  X5        g s  sn
f s  sn
f )Nc                     > T [         l        g r   oslistdiroriginal_listdirs   r   restore_listdir6TestDiscovery.test_find_tests.<locals>.restore_listdir/   
    )BJr   c                  0   > T [         R                  l        g r   r5   pathisfileoriginal_isfiles   r   restore_isfile5TestDiscovery.test_find_tests.<locals>.restore_isfile2       ,BGGNr   c                  0   > T [         R                  l        g r   r5   r>   isdiroriginal_isdirs   r   restore_isdir4TestDiscovery.test_find_tests.<locals>.restore_isdir5       *BGGMr   )ztest2.pyztest1.pyznot_a_test.pytest_dirztest.fooztest-not-a-module.pyanother_dirztest4.pyztest3.pyc                 &   > TR                  S5      $ Nr   popr>   
path_listss    r   <lambda>/TestDiscovery.test_find_tests.<locals>.<lambda>;       *.."3r   c                 $    U R                  S5      $ )Ndirendswithr>   s    r   rG   ,TestDiscovery.test_find_tests.<locals>.isdir>   s    ==''r   c                 F    U R                  S5      (       + =(       a    SU ;  $ )NrY   rN   rZ   r\   s    r   r?   -TestDiscovery.test_find_tests.<locals>.isfileC   s    }}U++IMT4IIr   c                     U S-   $ Nz moduler   r\   s    r   rU   rV   I   	    D94Dr   c                     > T" XS9nX S-   /-   $ Npatternz testsr   r   rf   baseorig_load_testss      r   loadTestsFromModule:TestDiscovery.test_find_tests.<locals>.loadTestsFromModuleK       "6;DH,---r   c                     U $ r   r   things    r   rU   rV   P       %r   r&   test*.py)test1test2rM    module tests)test3test4ztest_dir.%sr   )r'   r(   r5   r6   r>   r?   rG   
addCleanup_get_module_from_namerj   
suiteClassr   r)   list_find_testsextendr+   )r   r.   r9   rB   rJ   rG   r?   rj   	top_levelsuiter/   expectedri   rI   rA   r8   rT   s               @@@@@r   test_find_testsTestDiscovery.test_find_tests+   sv   $$&::	*''..	-	+J!:02
 4
(	(&	J  ''D$ 44	. &9"/GGOOF+	 )V''	:>?
 342 26O+,2 	 4&(& IM=4/?BC&( 	))	4(s   F%9F*c                   ^^	^
^^ [         R                  " 5       n[        R                  mU4S jn[        R                  R
                  m
U
4S jn[        R                  R                  m	U	4S jnS//mU4S j[        l        U R                  U5        S [        R                  l        U R                  U5        S [        R                  l        U R                  U5        S Ul        UR                  mSU4S	 jjnXQl	        S
 Ul
        [        R                  R                  S5      nXal        [        UR                  US5      5      nU R                  U/ 5        g )Nc                     > T [         l        g r   r4   r7   s   r   r9   =TestDiscovery.test_find_tests_socket.<locals>.restore_listdird   r;   r   c                  0   > T [         R                  l        g r   r=   r@   s   r   rB   <TestDiscovery.test_find_tests_socket.<locals>.restore_isfileg   rD   r   c                  0   > T [         R                  l        g r   rF   rH   s   r   rJ   ;TestDiscovery.test_find_tests_socket.<locals>.restore_isdirj   rL   r   socketc                 &   > TR                  S5      $ rP   rQ   rS   s    r   rU   6TestDiscovery.test_find_tests_socket.<locals>.<lambda>n   rW   r   c                     gNFr   r\   s    r   rU   r   q   s    Ur   c                     gr   r   r\   s    r   rU   r   t       er   c                     U S-   $ ra   r   r\   s    r   rU   r   w   rb   r   c                     > T" XS9nX S-   /-   $ rd   r   rg   s      r   rj   ATestDiscovery.test_find_tests_socket.<locals>.loadTestsFromModuley   rl   r   c                     U $ r   r   rn   s    r   rU   r   ~   rp   r   r&   rq   r   )r'   r(   r5   r6   r>   r?   rG   rw   rx   rj   ry   r   r)   rz   r{   r+   )r   r.   r9   rB   rJ   rj   r}   r~   ri   rI   rA   r8   rT   s           @@@@@r   test_find_tests_socket$TestDiscovery.test_find_tests_socket^   s     $$&::	*''..	-	+  j\
3
(*&+''D$ 44	. &9"/GGOOF+	 )V''	:>?#r   c                 H  ^^^	^
^^^ [         R                  " 5       n[        R                  mU4S jn[        R                  R
                  mU4S jn[        R                  R                  m
U
4S jn/ SQmT/ / / /mU4S j[        l        U R                  U5        S [        R                  l        U R                  U5        U4S j[        R                  l        U R                  U5         " S S	[        5      mU4S
 jUl	        UR                  m	SU	4S jjnXQl
        S Ul        SUl        [        UR                  SS5      5      nU R                  US/SS/S//5        U R                  TR                   / SQ5        U R                  TR"                  U/ S4/5        g )Nc                     > T [         l        g r   r4   r7   s   r   r9   CTestDiscovery.test_find_tests_with_package.<locals>.restore_listdir   r;   r   c                  0   > T [         R                  l        g r   r=   r@   s   r   rB   BTestDiscovery.test_find_tests_with_package.<locals>.restore_isfile   rD   r   c                  0   > T [         R                  l        g r   rF   rH   s   r   rJ   ATestDiscovery.test_find_tests_with_package.<locals>.restore_isdir   rL   r   a_directorytest_directorytest_directory2c                 &   > TR                  S5      $ rP   rQ   rS   s    r   rU   <TestDiscovery.test_find_tests_with_package.<locals>.<lambda>   rW   r   c                     gNTr   r\   s    r   rU   r          Tr   c                 H   > [         R                  R                  U 5      T;  $ r   r5   r>   basenamer>   directoriess    r   rU   r          bgg&6&6t&<K&Or   c                   (    \ rS rSr/ r/ rS rS rSrg):TestDiscovery.test_find_tests_with_package.<locals>.Module   c                    ^  UT l         T R                  R                  U5        [        R                   R	                  U5      S:X  a  U 4S jnUT l        g g )Nr   c                 ^   > TR                   R                  XU45        TR                  S-   /$ N load_testsload_tests_argsappendr>   r.   testsrf   r   s      r   
load_testsWTestDiscovery.test_find_tests_with_package.<locals>.Module.__init__.<locals>.load_tests   .    ,,33VG4LM $		M 9::r   r>   pathsr   r5   r   r   r   r>   r   s   `  r   r   CTestDiscovery.test_find_tests_with_package.<locals>.Module.__init__   G     	

!!$'77##D)-==; '1DO	 >r   c                 4    U R                   UR                   :H  $ r   r\   r   others     r   __eq__ATestDiscovery.test_find_tests_with_package.<locals>.Module.__eq__       yyEJJ..r   r   r>   N	r   r   r   r   r   r   r   r   r!   r   r   r   Moduler          E O1/r   r   c                    > T" U 5      $ r   r   r/   r   s    r   rU   r      	    F4Lr   c                 4   > T" XS9nX R                   S-   /-   $ Nre   rt   r\   rg   s      r   rj   GTestDiscovery.test_find_tests_with_package.<locals>.loadTestsFromModule   "    "6;D;;8999r   c                     U $ r   r   rn   s    r   rU   r      rp   r   r&   ztest*a_directory module teststest_directory load_teststest_directory module teststest_directory2 module testsr   r'   r(   r5   r6   r>   r?   rG   rw   objectrx   rj   ry   r)   rz   r{   r+   r   r   r   r.   r9   rB   rJ   rj   r~   r   r   ri   rI   rA   r8   rT   s          @@@@@@@r   test_find_tests_with_package*TestDiscovery.test_find_tests_with_package   s`   $$&::	*''..	-	+ K!2r2.
3
()&O'	/V 	/  (A$ 44	: &9"/ & V''89
 	5668:9:<	= 	M	O 	//!2w/0	2r   c                 H  ^^^	^
^^^ [         R                  " 5       n[        R                  mU4S jn[        R                  R
                  mU4S jn[        R                  R                  m
U
4S jn/ SQmT/ / / /mU4S j[        l        U R                  U5        S [        R                  l        U R                  U5        U4S j[        R                  l        U R                  U5         " S S	[        5      mU4S
 jUl	        UR                  m	SU	4S jjnXQl
        S Ul        SUl        [        UR                  SS5      5      nU R                  US/SS/S//5        U R                  TR                   / SQ5        U R                  TR"                  U/ S4/5        g )Nc                     > T [         l        g r   r4   r7   s   r   r9   WTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.restore_listdir   r;   r   c                  0   > T [         R                  l        g r   r=   r@   s   r   rB   VTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.restore_isfile   rD   r   c                  0   > T [         R                  l        g r   rF   rH   s   r   rJ   UTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.restore_isdir   rL   r   r   c                 &   > TR                  S5      $ rP   rQ   rS   s    r   rU   PTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.<lambda>   rW   r   c                     gr   r   r\   s    r   rU   r      r   r   c                 H   > [         R                  R                  U 5      T;  $ r   r   r   s    r   rU   r      r   r   c                   (    \ rS rSr/ r/ rS rS rSrg)NTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.Module   c                    ^  UT l         T R                  R                  U5        [        R                   R	                  U5      S:X  a  U 4S jnUT l        g g )Nr   c                 ^   > TR                   R                  XU45        TR                  S-   /$ r   r   r   s      r   r   kTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.Module.__init__.<locals>.load_tests   r   r   r   r   s   `  r   r   WTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.Module.__init__   r   r   c                 4    U R                   UR                   :H  $ r   r\   r   s     r   r   UTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.Module.__eq__   r   r   r   Nr   r   r   r   r   r      r   r   r   c                    > T" U 5      $ r   r   r   s    r   rU   r      r   r   c                 4   > T" XS9nX R                   S-   /-   $ r   r\   rg   s      r   rj   [TestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.loadTestsFromModule   r   r   c                     U $ r   r   rn   s    r   rU   r      rp   r   r&   rq   r   r   r   r   r   r   r   s          @@@@@@@r   0test_find_tests_default_calls_package_load_tests>TestDiscovery.test_find_tests_default_calls_package_load_tests   s`   $$&::	*''..	-	+ K!2r2.
3
()&O'	/V 	/  (A$ 44	: &9"/ & V''
;<
 	5668:9:<	= 	M	O
 	//!2z23	5r   c                   ^^^	^
^ [         R                  m
U
4S jnU R                  U5        [         R                  R                  m	U	4S jnU R                  U5        [         R                  R
                  mU4S jnU R                  U5        U R                  [        R                  R                  [        S5      5        [        S5      S/[        S5      SS/0mU4S	 jnU[         l        S
 [         R                  l        S [         R                  l         " S S[        5      m[        R                  " 5       nU4S jUl        S Ul        [        S5      Ul        [        UR!                  [        S5      S5      5      nU R#                  US/ S///5        U R#                  TR$                  SS/5        U R#                  TR&                  U/ S4U/ S4/5        g )Nc                     > T [         l        g r   r4   r7   s   r   r9   TTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.restore_listdir  r;   r   c                  0   > T [         R                  l        g r   r=   r@   s   r   rB   STestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.restore_isfile!  rD   r   c                  0   > T [         R                  l        g r   rF   rH   s   r   rJ   RTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.restore_isdir%  rL   r   r&   
my_package/foo/my_package__init__.pytest_module.pyc                     > [        TU    5      $ r   rz   r>   vfss    r   list_dirMTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.list_dir7      D	?"r   c                 .    U R                  S5      (       + $ Nz.pyrZ   r\   s    r   rU   MTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.<lambda>:      u)=%=r   c                 $    U R                  S5      $ r  rZ   r\   s    r   rU   r	  ;      dmmE&:r   c                   (    \ rS rSr/ r/ rS rS rSrg)KTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.Modulei=  c                    ^  UT l         T R                  R                  U5        UR                  S5      (       a  U 4S jnOU 4S jnUT l        g )Ntest_modulec                 ^   > TR                   R                  XU45        TR                  S-   /$ r   r   r   s      r   r   hTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.Module.__init__.<locals>.load_testsE  r   r   c                    > TR                   R                  XU45        Sn[        R                  R	                  U5      nU R                  XBS9nTR                  S-   U/U-   $ )Nz/foo/my_package/__init__.py	start_dirrf   r   )r   r   r5   r>   dirnamediscover)r.   r   rf   __file__this_dir	pkg_testsr   s         r   r   r  I  sj    ,,33VG4LM#@#%77??8#<$*OO&. %4 %A	 $		M 95   ) * *r   )r>   r   r   r[   r   r   s   `  r   r   TTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.Module.__init__A  s>     	

!!$'==//;* #-r   c                 4    U R                   UR                   :H  $ r   r\   r   s     r   r   RTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.Module.__eq__T  r   r   r   Nr   r   r   r   r   r  =  s    E O-&/r   r   c                    > T" U 5      $ r   r   r   s    r   rU   r	  X  r   r   c                     U $ r   r   rn   s    r   rU   r	  Y  rp   r   rq   zmy_package load_testsz!my_package.test_module load_testszmy_package.test_module)r5   r6   rw   r>   r?   rG   sysremover   r   r'   r(   rx   ry   r)   rz   r{   r+   r   r   )r   r9   rB   rJ   r  r.   r~   r   rI   rA   r8   r  s          @@@@@r   -test_find_tests_customize_via_package_pattern;TestDiscovery.test_find_tests_customize_via_package_pattern  s   
 ::	*(''..	-'	+&9 v()M;K+LN	#
=:	/V 	/4 $$&'@$/ ' V''DE
 	2B>?A B	C 	&(@A	C 	//!2z2!2z24	5r   c                   ^
^^^ [         R                  " 5       n[        R                  R                  m[        R                  R
                  mU4S jnS [        R                  l        U R                  U5        [        R                  S S  mU4S jnU R                  U5        [        R                  R                  [        R                  R                  S5      5      nU R                  [        5         UR                  SSS9  S S S 5        U R                  UR                  U5        U R                  U[        R                  5        S [        R                  l        S [        R                  l        U4S	 jnU R                  U5        / m
U
4S
 jnXal        ["        Ul        UR                  SSS5      n[        R                  R                  S5      n[        R                  R                  S5      n	U R                  US5        U R                  UR                  [        R                  R                  S5      5        U R                  T
U	S4/5        U R                  U[        R                  5        g ! , (       d  f       GNy= f)Nc                  0   > T [         R                  l        g r   r=   r@   s   r   rB   3TestDiscovery.test_discover.<locals>.restore_isfilet  rD   r   c                     gr   r   r\   s    r   rU   -TestDiscovery.test_discover.<locals>.<lambda>w  r   r   c                  ,   > T [         R                  S S & g r   )r   r>   )orig_sys_paths   r   restore_path1TestDiscovery.test_discover.<locals>.restore_path{  s    'CHHQKr   r&   /foo/bartop_level_dirc                     gr   r   r\   s    r   rU   r(        dr   c                     gr   r   r\   s    r   rU   r(    r   r   c                  0   > T [         R                  l        g r   rF   rH   s   r   rJ   2TestDiscovery.test_discover.<locals>.restore_isdir  rL   r   c                 .   > TR                  X45        S/$ Nr   )r   )r  rf   _find_tests_argss     r   r{   0TestDiscovery.test_discover.<locals>._find_tests  s    ##Y$899r   z/foo/bar/bazrf   z	['tests'])r'   r(   r5   r>   r?   rG   rw   r   r   normpathr,   ImportErrorr  r+   r)   assertInr{   strry   )r   r.   rB   r+  	full_pathrJ   r{   r~   r/  r  r7  r*  rI   rA   s             @@@@r   test_discoverTestDiscovery.test_discovero  s   $$&''..	- ,'	(%GGOOBGG$4$4V$<=	{+OOJfO= , 	..	:i**)	+&	 )	:F
3GGOON3	,..0GH)Y	,B+CDmSXX.7 ,+s   6I99
Jc                 (  ^^^ [         R                  R                  m[         R                  R                  m[        R                  S S  mUUU4S jnU R                  U5        S [         R                  l        S [         R                  l        [        R                  " 5       n[        Ul	        SnSnUR                  X4S9  U R                  UR                  S 5        S=Ul        nUR                  X4S9  U R                  UR                  U5        g )Nc                     > T[         R                  l        T [         R                  l        T[        R                  S S & g r   )r5   r>   r?   rG   r   )rI   rA   original_sys_paths   r   restore[TestDiscovery.test_discover_should_not_persist_top_level_dir_between_calls.<locals>.restore  s&    ,BGGN*BGGM+CHHQKr   c                     gr   r   r\   s    r   rU   \TestDiscovery.test_discover_should_not_persist_top_level_dir_between_calls.<locals>.<lambda>  r1  r   c                     gr   r   r\   s    r   rU   rF    r   r   r-  r&   r.  z/previous/dir)r5   r>   r?   rG   r   rw   r'   r(   r<  ry   r  r+   r)   )	r   rC  r.   rY   r/  dir2rI   rA   rB  s	         @@@r   <test_discover_should_not_persist_top_level_dir_between_callsJTestDiscovery.test_discover_should_not_persist_top_level_dir_between_calls  s    ''..HHQK	, 	 *)$$&9..5'669..5r   c                   ^^ [        S5      S/[        S5      S/0mU4S jnU R                  [        [        S[        R                  5        U[        l        U R                  [        [        R
                  S[        R
                  R                  5        S [        R
                  l        U R                  [        [        R
                  S	[        R
                  R                  5        S
 [        R
                  l        U R                  [        R
                  R                  [        S5      5         " S S[        5      m[        R                  " 5       nU4S jUl        S Ul        UR                  SSS9nU R!                  US//5        g )Nz	/toplevelstartdirz/toplevel/startdirr   c                     > [        TU    5      $ r   r  r  s    r   r  [TestDiscovery.test_discover_start_dir_is_package_calls_package_load_tests.<locals>.list_dir  r  r   r6   r?   c                 $    U R                  S5      $ r  rZ   r\   s    r   rU   [TestDiscovery.test_discover_start_dir_is_package_calls_package_load_tests.<locals>.<lambda>  r  r   rG   c                 .    U R                  S5      (       + $ r  rZ   r\   s    r   rU   rP    r
  r   c                   .    \ rS rSr/ r/ rS rS rS rSr	g)YTestDiscovery.test_discover_start_dir_is_package_calls_package_load_tests.<locals>.Modulei  c                     Xl         g r   r\   )r   r>   s     r   r   bTestDiscovery.test_discover_start_dir_is_package_calls_package_load_tests.<locals>.Module.__init__  s     	r   c                 "    SU R                   -   /$ )Nzload_tests called r\   )r   r.   r   rf   s       r   r   dTestDiscovery.test_discover_start_dir_is_package_calls_package_load_tests.<locals>.Module.load_tests  s    ,tyy899r   c                 4    U R                   UR                   :H  $ r   r\   r   s     r   r   `TestDiscovery.test_discover_start_dir_is_package_calls_package_load_tests.<locals>.Module.__eq__  r   r   r\   N)
r   r   r   r   r   r   r   r   r   r!   r   r   r   r   rS    s    E O!:/r   r   c                    > T" U 5      $ r   r   r   s    r   rU   rP    r   r   c                     U $ r   r   rn   s    r   rU   rP    rp   r   r.  zload_tests called startdir)r   rw   setattrr5   r6   r>   r?   rG   r   r!  r   r'   r(   rx   ry   r  r+   )r   r  r.   r~   r   r  s       @@r   ;test_discover_start_dir_is_package_calls_package_load_testsITestDiscovery.test_discover_start_dir_is_package_calls_package_load_tests  s    {#j\+,}o?	#Y

;
(BGGNNC:'277==A=)=>	/V 	/ $$&'@$/ 4KP 	789	;r   c                   ^^^^ [         R                  mU4S j[         l        [         R                  R                  mS [         R                  l        [        R                  S S  mUUU4S jnU R                  U5        g )Nc                 
   > T/$ r   r   )_fakefiles    r   rU   8TestDiscovery.setup_import_issue_tests.<locals>.<lambda>  s    zr   c                     gr   r   ra  s    r   rU   rc    s    4r   c                  l   > T [         R                  l        T[         l        T[        R                  S S & g r   )r5   r>   r?   r6   r   )r?   r6   r*  s   r   rC  7TestDiscovery.setup_import_issue_tests.<locals>.restore  s"    #BGGN BJ'CHHQKr   )r5   r6   r>   r?   r   rw   )r   rb  rC  r?   r6   r*  s    ` @@@r   setup_import_issue_tests&TestDiscovery.setup_import_issue_tests  sK    **)
'	( 	 r   c                 b  ^ U R                  [        [        S[        R                  5        U R                  [        [        R                  S[        R                  R
                  5        U R                  [        [        R                  S[        R                  R                  5        U R                  [        R                  R                  [        S 5      [        [        R                  5      5        U4S jnU[        l        S [        R                  l        S [        R                  l        g )Nr6   r?   rG   c                     > [        TU    5      $ r   r  r  s    r   r  @TestDiscovery.setup_import_issue_package_tests.<locals>.list_dir  r  r   c                 .    U R                  S5      (       + $ r  rZ   r\   s    r   rU   @TestDiscovery.setup_import_issue_package_tests.<locals>.<lambda>  r
  r   c                 $    U R                  S5      $ r  rZ   r\   s    r   rU   rn    r  r   )rw   r\  r5   r6   r>   r?   rG   r   __setitem__slicerz   )r   r  r  s    ` r    setup_import_issue_package_tests.TestDiscovery.setup_import_issue_package_tests  s    Y

;(BGGNNC'277==A,,eDk4>J	#
=:r   c                    [         R                  " 5       nU R                  S5        UR                  S5      nU R	                  [
        R                  " 5       [        R                  5        U R                  UR                  5       S5        U R                  / UR                  5        U R                  S[        UR                  5      5        UR                  S   nU R                  SU;   SU-  5        [        [        U5      S   5      S   nU R!                  ["        5         UR$                  " 5         S S S 5        g ! , (       d  f       g = f)Ntest_this_does_not_exist.py.r	   r   z6Failed to import test module: test_this_does_not_existmissing error string in %r)r'   r(   rh  r  r;  r5   getcwdr   r>   r+   countTestCasesassertNotEqualerrorslen
assertTruerz   r,   r:  test_this_does_not_exist)r   r.   r~   errortests        r   .test_discover_with_modules_that_fail_to_import<TestDiscovery.test_discover_with_modules_that_fail_to_import  s    $$&%%&CD$biik388,--/3B.C./a DM(50	2 DKN#A&{+))+ ,++s   "D==
Ec                   ^ [        S5      S/[        S5      SS/0nU R                  U5        / mU4S jn[        R                  " 5       nX#l        UR                  [        S5      5      nU R                  [        S5      [        R                  5        U R                  UR                  5       S5        U R                  / UR                  5        U R                  S[        UR                  5      5        UR                  S   nU R                  S	U;   S
U-  5        [        [        U5      S   5      S   nU R!                  ["        5         UR$                  " 5         S S S 5        U R                  TS/5        ['        [(        R*                  S-   5       H-  n[(        R,                  " [(        R.                  " Xg5      5        M/     g ! , (       d  f       No= f)Nr&   r   r   r   r   c                 <   > TR                  U 5        [        S5      e)NzCannot import Name)r   r:  r/   import_callss    r   rx   `TestDiscovery.test_discover_with_init_modules_that_fail_to_import.<locals>._get_module_from_name  s    %233r   r	   r   z(Failed to import test module: my_packagerw  )r   rr  r'   r(   rx   r  r;  r   r>   r+   ry  rz  r{  r|  r}  rz   r,   r:  r   rangepickleHIGHEST_PROTOCOLloadsdumps)	r   r  rx   r.   r~   r  r  protor  s	           @r   3test_discover_with_init_modules_that_fail_to_importATestDiscovery.test_discover_with_init_modules_that_fail_to_import  so   v()M;K+LN--c2	4 $$&'<$0gfosxx0--/3B.C./a 6%?(50	2 DKN#A&{+OO ,~6 622Q67ELLd23 8 ,+s   G
Gc                 ^   [         R                  R                  (       d  [         R                  " S5      e[         R                  " 5       nS nX!l        U R                  S5        UR                  S5      nU R                  UR                  5       S5        [         R                  " 5       nUR                  U5        U R                  [        UR                  5      S5        [        [        R                   S-   5       H-  n[        R"                  " [        R$                  " X55      5        M/     g )NSuite cleanup is disabledc                 .    [         R                  " S5      eN	skipperoo)r'   SkipTest)r/   s    r   rx   eTestDiscovery.test_discover_with_module_that_raises_SkipTest_on_import.<locals>._get_module_from_name1  s    ##K00r   ztest_skip_dummy.pyrv  r	   )r'   BaseTestSuite_cleanupr  r(   rx   rh  r  r+   ry  
TestResultrunr|  skippedr  r  r  r  r  )r   r.   rx   r~   resultr  s         r   8test_discover_with_module_that_raises_SkipTest_on_importFTestDiscovery.test_discover_with_module_that_raises_SkipTest_on_import+  s    %%..##$?@@$$&	1'<$%%&:;$--/3$$&		&V^^,a0 622Q67ELLe34 8r   c                 b  ^ [         R                  R                  (       d  [         R                  " S5      e[	        S5      S/[	        S5      SS/0nU R                  U5        / mU4S jn[         R                  " 5       nX#l        UR                  [	        S5      5      nU R                  [	        S5      [        R                  5        U R                  UR                  5       S5        [         R                  " 5       nUR                  U5        U R                  [!        UR"                  5      S5        U R                  UR$                  S5        U R                  TS/5        ['        [(        R*                  S-   5       H-  n[(        R,                  " [(        R.                  " XF5      5        M/     g )	Nr  r&   r   r   r   r   c                 R   > TR                  U 5        [        R                  " S5      er  )r   r'   r  r  s    r   rx   jTestDiscovery.test_discover_with_init_module_that_raises_SkipTest_on_import.<locals>._get_module_from_nameJ  s"    %##K00r   r	   )r'   r  r  r  r   rr  r(   rx   r  r;  r   r>   r+   ry  r  r  r|  r  testsRunr  r  r  r  r  )r   r  rx   r.   r~   r  r  r  s          @r   =test_discover_with_init_module_that_raises_SkipTest_on_importKTestDiscovery.test_discover_with_init_module_that_raises_SkipTest_on_importB  sA   %%..##$?@@v()M;K+LN--c2	1 $$&'<$0gfosxx0--/3$$&		&V^^,a0!,~6 622Q67ELLe34 8r   c                     [        5       n/ nUR                  Ul        UR                  SS/5        U R	                  U/ /5        / US S & UR                  / SQ5        U R	                  USS//5        g )N	somethingr  )r  r  foobarr  r  )r   r   _do_discovery	parseArgsr+   r   programargss      r   $test_command_line_handling_parseArgs2TestDiscovery.test_command_line_handling_parseArgs]  so    %' $;
34t$QAB/0r   c                 h   [        5       n/ nUR                  Ul        UR                  S/5        U R	                  U/ /5        U R	                  UR
                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g )Nr  r	   F
r   r   r  r  r+   r   assertIsr   r   r   r  s      r   .test_command_line_handling_discover_by_default<TestDiscovery.test_command_line_handling_discover_by_defaulti  s    %' $;-(t$**A.gnne,g((%0g&&.r   c                 j   [        5       n/ nUR                  Ul        UR                  / SQ5        U R	                  U/ /5        U R	                  UR
                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g )N)r  -vz-br  -c-f   Tr  r  s      r   ;test_command_line_handling_discover_by_default_with_optionsITestDiscovery.test_command_line_handling_discover_by_default_with_optionsu  s    %' $EFt$**A.gnnd+g(($/g&&-r   c                    [        5       nS Ul        [        R                  " 5        nU R	                  [
        5       nUR                  / SQ5        S S S 5        S S S 5        U R                  WR                  R                  S5        U R                  SWR                  5       5        g ! , (       d  f       N]= f! , (       d  f       Nf= f)N)onetwothreefour)r  zusage:)r   r    r   captured_stderrr,   
SystemExitr  r+   	exceptionr  r;  getvalue)r   r  stderrcms       r   :test_command_line_handling_do_discovery_too_many_argumentsHTestDiscovery.test_command_line_handling_do_discovery_too_many_arguments  s    %'!$$&&z*b!!"AB + ' 	**D1h 12	 +* '&s"   B9B(B9(
B6	2B99
Cc                     [         R                  [        R                  5      nUR	                  5          " S S[         5      nU" 5       Ul        UR                  S/5        U R                  UR                  S/5        g )Nc                       \ rS rSr/ rS rSrg)YTestDiscovery.test_command_line_handling_do_discovery_uses_default_loader.<locals>.Loaderi  c                 >    U R                   R                  XU45        gr6  r  r   r   r  rf   r/  s       r   r  bTestDiscovery.test_command_line_handling_do_discovery_uses_default_loader.<locals>.Loader.discover      		  )m!DEr   r   Nr   r   r   r   r  r  r!   r   r   r   Loaderr        Dr   r  r  rv  rq   N)	r   __new__r'   TestProgram_initArgParsersr    r  r+   r  r   r  r  s      r   ;test_command_line_handling_do_discovery_uses_default_loaderITestDiscovery.test_command_line_handling_do_discovery_uses_default_loader  sb    ..!5!56!	V 	 $Xtf%'>&?@r   c                    [        5       n " S S[        5      nUR                  S/US9  U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S/5        / Ul        [        5       nUR                  S/US9  U R                  UR
                  S5        U R                  UR                  S/5        / Ul        [        5       nUR                  / US9  U R                  UR
                  S5        U R                  UR                  S/5        / Ul        [        5       nUR                  S	/US9  U R                  UR
                  S5        U R                  UR                  S
/5        / Ul        [        5       nUR                  S	S/US9  U R                  UR
                  S5        U R                  UR                  S/5        / Ul        [        5       nUR                  / SQUS9  U R                  UR
                  S5        U R                  UR                  S/5        / Ul        [        5       nUR                  SS	/US9  U R                  UR
                  S5        U R                  UR                  S
/5        / Ul        [        5       nUR                  SS	/US9  U R                  UR
                  S5        U R                  UR                  S/5        / Ul        [        5       nUR                  SS	/US9  U R                  UR
                  S5        U R                  UR                  S/5        U R                  UR                  5        U R                  UR                  5        / Ul        [        5       nUR                  / SQUS9  U R                  UR
                  S5        U R                  UR                  S/5        U R                  UR                  S5        U R                  UR                  5        U R                  UR                  5        g )Nc                       \ rS rSr/ rS rSrg)RTestDiscovery.test_command_line_handling_do_discovery_calls_loader.<locals>.Loaderi  c                 >    U R                   R                  XU45        gr6  r  r  s       r   r  [TestDiscovery.test_command_line_handling_do_discovery_calls_loader.<locals>.Loader.discover  r  r   r   Nr  r   r   r   r  r    r  r   r  r  )r  r  r   r  z	--verbosefish)r  rq   Neggs)r  r  N)r  r  ham-sz-t)rv  rq   r  -p)rv  r  N)r  r  r  r  r  r  r  )r   r   r  r+   r   r  r  assertFalser   r   r}  r  s      r   4test_command_line_handling_do_discovery_calls_loaderBTestDiscovery.test_command_line_handling_do_discovery_calls_loader  s   %'	V 	 	tfV4**A.w/'>&?@%'{mF;w/'>&?@%'b0w/'>&?@%'vhv6w/'A&BC%'vv.v>w/'=&>?%'5fEw/'>&?@%'tVnV<w/'A&BC%'tVnV<w/'@&AB%'tVnV<w/':&;<))*++,%'L%+ 	 	-w/'=&>?**A.(()**+r   c                   ^^^^	^
  " S S[         5      nU[        R                  S'   [        R                  R                  S5      m[        R                  m	[        R                  R                  m[        R                  R                  m[        R                  R                  m
UUUU	U
4S jnU R                  U5        S nS nS nU[        l        U[        R                  l        U[        R                  l        [        R                  S:X  a-  [        R                  R
                  [        R                  l	        T$ )	Nc                       \ rS rSrSrSrg)0TestDiscovery.setup_module_clash.<locals>.Modulei  z
bar/foo.pyr   N)r   r   r   r   r  r!   r   r   r   r   r    s    #Hr   r   r  c                  $  > T[         l        T[         R                  l        T[         R                  l        T[         R                  l        [        R                  S	 T [        R                  ;   a   [        R                  R                  T 5        g g )Nr  )	r5   r6   r>   r?   rG   realpathr   modulesr!  )r=  rI   rA   r8   original_realpaths   r   cleanup1TestDiscovery.setup_module_clash.<locals>.cleanup  sY    )BJ,BGGN*BGGM0BGGE"CHH$	* %r   c                     S/$ Nfoo.pyr   re  s    r   r6   1TestDiscovery.setup_module_clash.<locals>.listdir  s
    :r   c                     gr   r   re  s    r   r?   0TestDiscovery.setup_module_clash.<locals>.isfile      r   c                     gr   r   re  s    r   rG   /TestDiscovery.setup_module_clash.<locals>.isdir  r  r   nt)r   r   r  r5   r>   r   r6   r?   rG   r  rw   r/   )r   r   r  r6   r?   rG   r=  rI   rA   r8   r  s         @@@@@r   setup_module_clash TestDiscovery.setup_module_clash  s    	$V 	$#EGGOOE*	::''..GG,,	+ 	+ 	 			
77d?  "wwBGGr   c                    U R                  5       n[        R                  " 5       n[        R                  R                  S5      n[        R                  R                  S5      n[        R                  " SU< SU< S35      nU R                  [        SU-  UR                  SSS9  U R                  [        R                  S	   U5        g )
Nr  r  z''foo' module incorrectly imported from z. Expected z$. Is this module globally installed?z^%s$r  r  r   )r  r'   r(   r5   r>   r   reescapeassertRaisesRegexr:  r  r+   r   )r   r=  r.   mod_direxpected_dirmsgs         r   test_detect_module_clash&TestDiscovery.test_detect_module_clash	  s    ++-	$$&''//%(wwu-ii8?O P#vX 	 	
 	!i0r   c                   ^^^ U R                  5       n[        R                  R                  m[        R                  R	                  S5      m[        R                  R	                  S5      mU4S jnU R                  U5        UU4S jnU[        R                  l        [        R                  " 5       nUR                  SSS9  g )Nr  r  c                  0   > T [         R                  l        g r   )r5   r>   r  )r  s   r   r  5TestDiscovery.test_module_symlink_ok.<locals>.cleanup  s    0BGGr   c                    > U [         R                  R                  TS5      :X  a   [         R                  R                  TS5      $ U $ r  )r5   r>   join)r>   r  r  s    r   r  6TestDiscovery.test_module_symlink_ok.<locals>.realpath#  s4    rww||GX66ww||L(;;Kr   r  r  )	r  r5   r>   r  r   rw   r'   r(   r  )r   r=  r  r  r.   r  r  r  s        @@@r   test_module_symlink_ok$TestDiscovery.test_module_symlink_ok  s    ++-	GG,,''//%(wwu-	1 	 $$$&%:r   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$ r   )wasRunr+   )r  rf   expectedPathr   r   s     r   r{   BTestDiscovery.test_discovery_from_dotted_path.<locals>._find_tests2  s    DKY5Lr   ztest.test_unittest)r'   r(   r5   r>   r   r  r  test_unittestr  r  r{   r  r}  r+   _tests)r   r.   r{   r~   r  r   s   `   @@r   test_discovery_from_dotted_path-TestDiscovery.test_discovery_from_dotted_path+  s    $$&wwrwwt7I7I7R7R'ST	 ) 45$u-r   c                 &  ^^^^ [         R                  " 5       n[        R                  mS [        l        [        R                  R
                  m[        R                  R                  mS [        R                  l        [        R                  S S  mUUUU4S jnU R                  U5        U R                  [        5       nUR                  S5        S S S 5        U R                  [        WR                  5      S5        g ! , (       d  f       N4= f)Nc                     S/$ )Nru  r   re  s    r   rU   OTestDiscovery.test_discovery_from_dotted_path_builtin_modules.<locals>.<lambda>A  s     =>r   c                     gr   r   re  s    r   rU   r  D  s    %r   c                     > T[         R                  l        T [         R                  l        T[         l        T[
        R                  S S & g r   )r5   r>   r?   rG   r6   r   )rG   r?   r6   r*  s   r   rC  NTestDiscovery.test_discovery_from_dotted_path_builtin_modules.<locals>.restoreF  s-    #BGGN!BGGM BJ'CHHQKr   r   z2Can not use builtin modules as dotted module names)r'   r(   r5   r6   r>   r?   rG   r   rw   r,   	TypeErrorr  r+   r<  r  )r   r.   rC  r  rG   r?   r6   r*  s       @@@@r   /test_discovery_from_dotted_path_builtin_modules=TestDiscovery.test_discovery_from_dotted_path_builtin_modules<  s    $$&**>
'	( 	(
 	 y)ROOE" *R\\*2	3 *)s   D
Dc           	        ^ SSK Jn  [        R                  " 5       n[        R
                  " S5      mU4S jn[        R                  R                  SU5         [        R                  " 5          UR                  S5         U R                  [        5       nUR                  S5        S S S 5        U R                  [        WR                   5      SR#                  T5      5        S S S 5        S S S 5        S S S 5        g ! , (       d  f       N[= f! , (       d  f       N0= f! , (       d  f       N9= f! , (       d  f       g = f)Nr   )utilpackagec                 .   > T[         R                  U '   T$ r   )r   r  )packagenamer  kwargsr"  s      r   _import>TestDiscovery.test_discovery_failed_discovery.<locals>._importY  s    '.CKK$Nr   zbuiltins.__import__z$don't know how to discover from {!r})test.test_importlibr!  r'   r(   types
ModuleTypemockpatchr   DirsOnSysPathuncacher,   r  r  r+   r<  r  format)r   r!  r.   r&  r  r"  s        @r   test_discovery_failed_discovery-TestDiscovery.test_discovery_failed_discoveryS  s    ,$$&""9-	 ]]  !6@,,.\\),**95	2 6$$S%6%L&,fWo7 - / A@
 65 -, /. A@sT   D1/D DC>	)<D%D -D1>
DD
DD  
D.	*D11
D?)r  N) r   r   r   r   r0   r   r   r   r   r"  r>  rI  r]  rh  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r0  r!   r   r   r   r#   r#      s    61*f&$PH2TE5NV5p,/\60+;Z
!	;,(4<5.56
1
/
.	3AH,T!F1;(."3.7r   r#   __main__)os.pathr5   r   r  r   r)  r  r  r   test.supportr   r'   unittest.mocktest.test_unittestr  r   TestCaser#   r   mainr   r   r   <module>r9     se      	 
    &   	(.. 	K7H%% K7\ zMMO r   