
    0hhn(                         S SK r S SKJr  S SKJrJrJr  S SKrS SKJ	r	J
r  S SKJr  S SKrS SKJr  \" \" S 5      5      r\" \" S 5      5      r " S	 S
\	\5      r " S S\	5      r\S:X  a  \" 5         gg)    N)dedent)FunctionType
MethodTypeBuiltinFunctionType)TestCasemain)util)ExtraAssertionsc                      g N r       9/opt/python-3.13.8/usr/lib/python3.13/test/test_pyclbr.py<lambda>r          Tr   c                     g r   r   )cs    r   r   r      r   r   c                   H    \ 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g)
PyclbrTest   c                     [        U5      [        U5      -  [        U5      -
  nU(       aG  [        SU< SU< SU< 3[        R                  S9  U R	                  SUR                  5       -  5        g g )Nzl1=z
l2=z
ignore=filez
%r missing)setprintsysstderrfailpop)selfl1l2ignoremissings        r   assertListEqPyclbrTest.assertListEq   sQ    r7SW$F3r2v>SZZPIIlW[[]23 r   c                 n    X#;   a  g X!;  a  [        SU[        R                  S9  U R                  X!5        g )Nz***r   )r   r   r   assertIn)r    objkeyr#   s       r   assertHaskeyPyclbrTest.assertHaskey#   s*    =&>%#**-cr   c                 >    X;  a  X#;  a  U R                  X5        g g g r   )assertEqual)r    abr#   s       r   assertEqualsOrIgnored PyclbrTest.assertEqualsOrIgnored*   s     ?qQ"  /?r   Nr   c           	      *   [        U5      [        S/5      -  nUc  [        U[        5       0 S/5      n[        R                  " U5      nS nUR                  5        GH  u  pgXc;   a  M  U R                  X&U5        [        X&5      n[        U[        R                  5      (       aV  U R                  U[        [        45        UR                  U:w  a  Mw  U R                  UR                  UR                  5        M  U R                  U[         5        UR                  U:w  a  M  UR"                   V	s/ s H  oR$                  PM     n
n	UR&                   V	s/ s H  n	[        U	SU	5      PM     nn	 U R)                  XU5        / nUR0                  R3                  5        H.  nU" U[        X5      U5      (       d  M  UR5                  U5        M0     UR7                  S5      =n(       ay  / nUR8                  R3                  5        HX  nUR;                  S5      (       a.  UR=                  S5      (       d  UR5                  SU U 35        MG  UR5                  U5        MZ     O#[?        UR8                  R3                  5       5      n U R)                  XU5        U R                  UR                  UR                  5        U RA                  UR$                  URB                  U5        GM     S	 n[E        U5       HM  n[        X&5      n[        U[         [        45      (       d  M+  U" UU5      (       d  M;  U RG                  XFU5        MO     g s  sn	f s  sn	f !   [+        SU-  [,        R.                  S9  e = f!   [+        SU-  [,        R.                  S9  e = f)
Nobjectz<silly>c                    U R                   n[        U[        5      (       a(  [        X2   [        5      (       a  UR                  U La  gO[        U[
        5      (       d  gUR                  nUR                  S5      (       a?  UR                  S5      (       d)  U R                  R                  S5      =n(       a  SU U 3nXB:H  $ )NF___)
__dict__
isinstancer   ClassMethodType__self__r   __name__
startswithendswithlstrip)oclassr)   name	classdictobjnamestripped_typenames         r   ismethod(PyclbrTest.checkModule.<locals>.ismethod>   s    I#z**"9?ODDLL.  /\22llG!!$''0@0@0F0F(.(>(>s(CC$C !"3!4WI>G?"r   rA   zclass=%sr   r7   r6   c                     [        U [        5      (       a  U R                  UR                  :H  $ [        U [        5      (       a  U R
                  UR                  L $ g)NF)r9   type
__module__r<   r   __globals__r8   )itemmodules     r   
defined_in*PyclbrTest.checkModule.<locals>.defined_in   sG    $%%&//99$--''6??::r   )$r   
__import__globalspyclbrreadmodule_exitemsassertHasAttrgetattrr9   FunctionassertIsInstancer   r   rI   r.   rL   rH   	__bases__r<   superr%   r   r   r   r8   keysappendr?   methodsr=   r>   listr1   rA   dirr+   )r    
moduleNamerL   r#   dictrE   rA   valuepy_itembase
real_basespyclbr_basesactualMethodsmrD   foundMethodsrM   rK   s                     r   checkModulePyclbrTest.checkModule/   s    VsH:.>  
GIrI;GF##J/	#"  ::<KD~vV4f+G%11%%g>Q/RS%%3  !3!3U\\B%%gt4%%38?8I8IJ8Imm8I
J-2[[ ;-8T ")vt!<-8   ;%%jG
 !# ))..0A)<a@@%,,Q/ 1 )-C(88$8#%L"]]//1<<--ajj6F6F(//!4E3Fqc0JK(//2	 2 $((:(:(<#=L	%%l6J$$W%7%7F..w/?/?/57Y (h	 KD6(D$$!566dF++%%d&9	  W K ;
*w.SZZ@0*w.SZZ@s%   1M	M0MAM4M14Nc                 f    U R                  S5        U R                  SSS9  U R                  SSS9  g )NrQ   doctest)TestResults	_SpoofOutDocTestCase_DocTestSuiter#   difflib)Matchri   r    s    r   	test_easyPyclbrTest.test_easy   s?    " 	 ,L 	M:6r   c                 (    U R                  SSS/S9  g )Nztest.pyclbr_inputomfrq   rt   ru   s    r   
test_casesPyclbrTest.test_cases   s    ,dC[Ar   c           	        ^ ^^ [         mSSS0 S 4u  pp4n[        S5      nTR                  XX6XE5      nTR                  USUSSS9nTR	                  US	S
S5      n	TR	                  U	SSS5      n
TR                  USSS5      nTR                  USS USSS9nTR	                  USSS5      nTR                  USSS5      nTR                  USSS5      nTR	                  USSS5      nXS.nUUU 4S jmT" S US U5        g )Ntest ztest.pya          def f0():
            def f1(a,b,c):
                def f2(a=1, b=2, c=3): pass
                return f1(a,b,d)
            class c1: pass
        class C0:
            "Test class."
            def F1():
                "Method."
                return 'return'
            class C1():
                class C2:
                    "Class nested within nested class."
                    def F3(): return 1+1

        f0      )
end_linenof1      f2   c1C0      F1   
   C1   C2   F3)r   r   c                 N  > TR                  UR                  5       UR                  5       5        UR                  5        H  nTR                  UR                  U 5        M!     UR                  5        H  nTR                  UR                  U5        M!     UR                  5        H  nX   X5   pv[        U5      UR                  UR                  UR                  UR                  UR                  4n[        U5      UR                  UR                  UR                  UR                  UR                  4n	TR                  X5        [        U5      TR                  L a&  TR                  UR                  UR                  5        T
" XfR                  XwR                  5        M     g r   )r.   rZ   valuesassertIsparentrH   rA   r   rL   linenor   Classr\   children)parent1	children1parent2	children2obr*   o1o2t1t2comparembr    s             r   r   'PyclbrTest.test_nested.<locals>.compare   s%    Y^^-y~~/?@&&(bii1 )&&(bii1 ) ~~'"B"XrwwBIIr}}T"XrwwBIIr}}T  (8rxx'$$RZZ<KK[[9 (r   )rQ   r   _create_treerV   _nest_function_nest_classr   )r    rg   prz   tisourceactualr   r   r   r   r   r   r   r   r   expectedr   r   s   `                 @@r   test_nestedPyclbrTest.test_nested   s&   Ir47aA  " q!7 [[D!Q1[5r4A.r4A.^^Ba+XXatQbX9r4B/^^Bb"-^^Bb"-r4R0%	:0 	fdH-r   c                    U R                   nU" SSS9  U" SSS9  [        R                  " 5          [        R                  " S[        5        U" SSS9  S S S 5        U" S	S
S9  U" SSS9  U" S5        U" S5        g ! , (       d  f       N-= f)Nrandom)Randomrq   pickle)partialPickleBufferr#   	sre_parse)dumpgroupspospdb)Union_ModuleTarget_ScriptTarget
_ZipTargetrlcompleterpydoc)inputoutputzemail.parserztest.test_pyclbr)ri   warningscatch_warningssimplefilterDeprecationWarning)r    cms     r   test_othersPyclbrTest.test_others   s     	8K(
878$$&!!(,>?{#<= ' 	[	

 	7/0 	>
 '&s   #A::
B)Nr   )r<   rI   __qualname____firstlineno__r%   r+   r1   ri   rv   r{   r   r   __static_attributes__r   r   r   r   r      s.    4 #
^:@7B;.zr   r   c                   ,    \ rS rSrS rS rS rS rSrg)ReadmoduleTests   c                 J    [         R                  R                  5       U l        g r   )rQ   _modulescopyru   s    r   setUpReadmoduleTests.setUp   s    ,,.r   c                 .    U R                   [        l         g r   )r   rQ   ru   s    r   tearDownReadmoduleTests.tearDown   s    --r   c                 N    U R                  [        [        R                  S5        g )Nzasyncio.foo)assertRaisesImportErrorrQ   rR   ru   s    r   test_dotted_name_not_a_package.ReadmoduleTests.test_dotted_name_not_a_package   s    
 	+v';';]Kr   c                     Sn[         R                  " U5         U R                  [        5         [        R
                  " U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Ndoesnotexist)test_importlib_utiluncacher   ModuleNotFoundErrorrQ   rR   )r    module_names     r   test_module_has_no_spec'ReadmoduleTests.test_module_has_no_spec   sO    $ ((5""#67$$[1 8 6577 65s"   A(AA(
A%	!A((
A6)r   N)	r<   rI   r   r   r   r   r   r   r   r   r   r   r   r      s    /(L2r   r   __main__)r   textwrapr   typesr   r   r   rQ   unittestr   r   unittest_maintest.test_importlibr	   r   r   test.support.testcaser
   rH   staticmethodStaticMethodTypeclassmethodr:   r   r   r<   r   r   r   <module>r      st      ? ?  4 ;  1 \23 {>23P? Pf2h 20 zO r   