
    0hhy                        S r SSKrSSKrSSK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Jr  SSKJr  SSKJr  S r " S	 S
\R$                  5      rS r " S S\R$                  5      r " S S5      r " S S5      r " S S5      r " S S\5      r " S S5      r " S S\R$                  5      r\S:X  a  \R:                  " 5         gg)z/
Test cases for the repr module
Nick Mathewson
    N)verbose)create_empty_file)repr)Repr)recursive_reprc                 4    Sn[        U 5       H  nU4nM     U$ )N )range)nestingtis      :/opt/python-3.13.8/usr/lib/python3.13/test/test_reprlib.pynestedTupler      s!    
A7^D H    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g)	ReprTests   c                     SSSSSSSSS	S
SSSS.n[        5       nUR                  5        H  u  p4[        X#U5        M     [        S0 UD6nU H&  nU R                  [	        X#5      [	        XS5      US9  M(     g )Ne   f   g   h   i   j   k   l   m   n   o   pxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxqxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)maxlevelmaxtuplemaxlistmaxarraymaxdictmaxsetmaxfrozensetmaxdeque	maxstringmaxlongmaxother	fillvalueindent)msgr	   )r   itemssetattrassertEqualgetattr)selfexample_kwargsr1attrvalr2s         r   test_init_kwargsReprTests.test_init_kwargs   s    "
 V'--/IDBc" 0#N#"DWR.0AtL #r   c                 j   U R                   nU" [        S5      S5        U" [        S5      S5        Sn[        U5      S S S-   [        U5      SS  -   nU" [        U5      U5        U" [        S	5      [        S	5      5        S
n[        U5      S S S-   [        U5      SS  -   nU" [        U5      U5        g )Nabcz'abc'abcdefghijklmnopz'abcdefghijklmnop'<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbb   ...z"'z""""""""""""""""""""""""""""""'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')r2   rr   )r4   eqsexpecteds       r   test_stringReprTests.test_string4   s    
1U8W
1 !5673B<%'$q'#$-7
1Q4
1U8T%[!73B<%'$q'#$-7
1Q4r   c                 ^   U R                   nU" [        S5      S5        SnU" [        U5      S5        [        5       nSUl        [	        U5      S S S-   nU" UR	                  U5      U5        [        5       nSUl        SUl        [	        U5      S S S	-   nU" UR	                  U5      U5        g )
N   (1,)rK         	(1, 2, 3)rN   z...)+++z+++))r2   rC   r   r#   r   r-   )r4   rD   t3r9   rF   r3s         r   
test_tupleReprTests.test_tupleB   s    
1T7F
1R5+V8CR=6)
2772;! V8CR=6)
2772;!r   c           	         SSK J n  SSKJn  U R                  nU" [	        S5      S5        U" [	        S5      S5        U" [	        S5      S	5        U" [	        S
5      S5        U" [	        S5      S5        U" [	        / 5      S5        U" [	        S/5      S5        U" [	        / SQ5      S5        U" [	        / S
Q5      S5        U" [	        / SQ5      S5        U" [	        [        / 5      5      S5        U" [	        [        S/5      5      S5        U" [	        [        / SQ5      5      S5        U" [	        [        / S
Q5      5      S5        U" [	        [        / SQ5      5      S5        U" [	        [        / 5      5      S5        U" [	        [        S/5      5      S5        U" [	        [        / SQ5      5      S5        U" [	        [        / S
Q5      5      S5        U" [	        [        / SQ5      5      S5        U" [	        U" / SQ5      5      S5        U" [	        0 5      S5        SS S!S"S#.nU" [	        U5      S$5        SUS%'   U" [	        U5      S&5        U" [	        U" S'5      5      S(5        U" [	        U" S'S/5      5      S)5        U" [	        U" S'SS /5      5      S*5        U" [	        U" S'/ SQ5      5      S+5        U" [	        U" S'/ S,Q5      5      S-5        U" [	        U" S'/ S.Q5      5      S/5        U" [	        U" S'/ S
Q5      5      S05        g )1Nr   )array)dequer	   ()rJ   rL   rM   rP   )rK   rN   rO            z(1, 2, 3, 4, 5, 6))rK   rN   rO   r[   r\   r]      z(1, 2, 3, 4, 5, 6, ...)z[]rK   z[1]z	[1, 2, 3]z[1, 2, 3, 4, 5, 6]z[1, 2, 3, 4, 5, 6, ...]zset(){1}	{1, 2, 3}{1, 2, 3, 4, 5, 6}{1, 2, 3, 4, 5, 6, ...}zfrozenset()frozenset({1})frozenset({1, 2, 3})frozenset({1, 2, 3, 4, 5, 6})"frozenset({1, 2, 3, 4, 5, 6, ...})zdeque([1, 2, 3, 4, 5, 6, ...])z{}rN   rO   r[   )alicebobcharlesdavez/{'alice': 1, 'bob': 2, 'charles': 3, 'dave': 4}arthurz6{'alice': 1, 'arthur': 1, 'bob': 2, 'charles': 3, ...}r   z
array('i')zarray('i', [1])zarray('i', [1, 2])zarray('i', [1, 2, 3]))rK   rN   rO   r[   zarray('i', [1, 2, 3, 4]))rK   rN   rO   r[   r\   zarray('i', [1, 2, 3, 4, 5])z array('i', [1, 2, 3, 4, 5, ...]))rX   collectionsrY   r2   rC   set	frozenset)r4   rX   rY   rD   ds        r   test_containerReprTests.test_containerU   s   %
1R5$
1T7F
1Y<%
1 "67
1"#%>? 	1R5$
1aS65
1Y<%
1 "67
1"#%>? 	1SW:w
1S!X;
1S^k*
1S#$%';<
1S&'(*CD 	1Yr]]+
1Ys^./
1Yy!"$:;
1Y)*+-LM
1Y,-.0TU 	1U()*,LM 	1R5$a;
1Q4BC(
1Q4IJ 	1U3Z=,'
1U3_01
1U3A "67
1U3	"#%<=
1U3%&(BC
1U3()+HI
1U3*+,5	7r   c                     U R                   nU" [        S15      S5        U" [        1 Sk5      S5        U" [        1 Sk5      S5        U" [        1 Sk5      S5        g )	NrK   r_      rK   rN   rO   r`      rK   rN   rO   r[   r\   r]   ra      rK   rN   rO   r[   r\   r]   r^   rb   r2   rC   r4   rD   s     r   test_set_literalReprTests.test_set_literal   sM    
1aS65
1Y<%
1 "67
1"#%>?r   c                    U R                   nU" [        [        S15      5      S5        U" [        [        1 Sk5      5      S5        U" [        [        1 Sk5      5      S5        U" [        [        1 Sk5      5      S5        g )	NrK   rc   rs   rd   rt   re   ru   rf   )r2   rC   rn   rw   s     r   test_frozensetReprTests.test_frozenset   sd    
1Ys^./
1Yy!"$:;
1Y)*+-LM
1Y,-.0TUr   c           
        ^ S H'  nU R                  [        U5      [        U5      5        M)     [        R                  " 5       mSTS-
  4 H_  nU R                  SU 3US9   SU-  n[        U5      S S S-   [        U5      S	S  -   nU R                  [        U5      U5        S S S 5        Ma     U4S
 jnTnU R                  SU 3US9   SU-  nU R                  [        [        U5        U R                  [        U5      U" X2S-   5      5        S S S 5        TS-   ST-  4 H  nU R                  US5        U R                  SU 3US9   SU-  nU R                  [        [        U5        U R                  [        U5      U" X2S-   5      5        S S S 5        U R                  SU S3US9   SU-  S-
  nU R                  [        [        U5        U R                  [        U5      U" X2S-   5      5        S S S 5        M     g ! , (       d  f       GM  = f! , (       d  f       GN
= f! , (       d  f       N= f! , (       d  f       GM$  = f)N){   gUUUUUU?d   rK   z10 ** )k
      rA   ic                 D   > SU R                   R                   SU ST S3$ )N<z instance with roughly z digits \(limit at z\) at 0x[a-f0-9]+>)	__class____name__)nro   
max_digitss     r   re_msg&ReprTests.test_numbers.<locals>.re_msg   s6    --..EaS I**45GI Jr   rN   z - 1)
r2   rC   r   sysget_int_max_str_digitssubTestassertRaises
ValueErrorassertRegexassertGreater)r4   xr   r   rF   r   r   s         @r   test_numbersReprTests.test_numbers   s   AQqT47+   //1
zA~&Aqcla0!G73B<%/$q'#$-?  1x0 10 '	J \\F1#,!\,aAj$2QqT6!U#34 -
 q.!j.1Aq#&qcla0!G!!*dA6  1vaQ'78 1 qc.!4!GaK !!*dA6  1vaQ'78 54 2 10 -, 10 54s4   !AG>	AHAH#)AH4>
H	
H #
H1	4
I	c                    U R                   n[        S5      nU" [        U5      [        U5      5        [        S5      n[        U5      S S S-   [        U5      SS  -   nU" [        U5      U5        [	        5       nU" [        U5      S[        U5      -  5        [        [        5      nU R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      S	S/5        g )
Na  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr@   rA   rB   z&<ClassWithFailingRepr instance at %#x>z<class >   )r2   ClassWithReprrC   r   ClassWithFailingReprid
assertTrue
startswithendswithassertInfind)r4   rD   i1i2rF   i3rE   s          r   test_instanceReprTests.test_instance   s    3
1R5$r(8$8CR=5(48CD>9
1R5(!#
1R5;BrFBD"#Y/0

3(affUmb"X.r   c                 `    [        S 5      nU R                  UR                  " S5      U5        g )Nc                     U $ Nr	   r   s    r   <lambda>'ReprTests.test_lambda.<locals>.<lambda>   s    1r   z0<function ReprTests.test_lambda.<locals>.<lambda)r   r   r   )r4   rC   s     r   test_lambdaReprTests.test_lambda   s%    %WXZ[\r   c                     U R                   nU" [        [        5      S5        U R                  [        SR                  5      R                  S5      5        g )Nz<built-in function hash> z*<built-in method split of str object at 0x)r2   r   hashr   splitr   rw   s     r   test_builtin_functionReprTests.test_builtin_function   s@    
4:12RXX118: 	;r   c           	          U R                   nU" [        [        S5      5      S5        U" [        [        SS5      5      S5        U" [        [        SSS5      5      S5        g )NrK   zrange(0, 1)rN   zrange(1, 2)r[   rO   zrange(1, 4, 3))r2   r   r
   rw   s     r   
test_rangeReprTests.test_range   sL    
4a>=)
4am,
4aA!12r   c                    U R                   nU" [        / //////5      S5        U" [        / ///////5      S5        U" [        [        S5      5      S5        U" [        [        S5      5      S5        U" [        [        S5      [        S5      05      S5        U" [        [        S5      [        S5      05      S	5        U" [        0 //////5      S
5        U" [        0 ///////5      S5        g )Nz[[[[[[[]]]]]]]z[[[[[[[...]]]]]]]r]   z(((((((),),),),),),)r^   z(((((((...),),),),),),)r\   z&{((((((),),),),),): ((((((),),),),),)}z,{((((((...),),),),),): ((((((...),),),),),)}z[[[[[[{}]]]]]])r2   rC   r   rw   s     r   test_nestingReprTests.test_nesting   s    
12$zl^./
1B4&
|n 34
1[^45
1[^78
1{1~A013	5
1{1~A019	; 	12$zl^./
1B4&
|n 34r   c                     S nU" 5       R                   S   nU R                  [        U5      S5        U R                  [        U5      S5        g )Nc                     ^ SmU4S jn U $ )N*   c                     > T $ r   r	   r   s   r   inner4ReprTests.test_cell.<locals>.get_cell.<locals>.inner   s    r   r	   )r   r   s    @r   get_cell%ReprTests.test_cell.<locals>.get_cell   s    ALr   r   z6<cell at 0x[0-9A-Fa-f]+: int object at 0x[0-9A-Fa-f]+>z<cell at 0x.*\.\.\..*>)__closure__r   r   rC   )r4   r   r   s      r   	test_cellReprTests.test_cell   sK    	
 J""1%a #C 	D189r   c                 l   U R                   nU" [        [        R                  5      S5         " S S5      n[	        UR
                  5      nU R                  [        U5      SUR
                  < S35        [        UR
                  5      nU R                  [        U5      SUR
                  < S35        g )Nz"<method 'items' of 'dict' objects>c                       \ rS rSrS rSrg)%ReprTests.test_descriptors.<locals>.C  c                     g r   r	   )clss    r   foo)ReprTests.test_descriptors.<locals>.C.foo  s    $r   r	   N)r   
__module____qualname____firstlineno__r   __static_attributes__r	   r   r   Cr     s    r   r   z<staticmethod(z)>z<classmethod()r2   r   dictr0   staticmethodr   classmethod)r4   rD   r   r   s       r   test_descriptorsReprTests.test_descriptors   s    
4

AB
	 	aN155)2">?aM!%%""=>r   c                     [        / SQ5      n[        U5      nSSS.n[        U5        [        U5        [        U5        g )N)              ?               @y              @rK   rN   )r   r   )rm   rn   rC   )r4   r   yzs       r   test_unsortableReprTests.test_unsortable	  s5     aLN	!	!	!r   c                 @   S[        S S9S4[        SS9S4[        SS9S4[        SS9S4[        SS9S4[        SS9S4[        SS	S
9S4[        SS9S4[        SS9S4[        SS9S44
S.S[        S S9S4[        SS9S4[        SS9S4[        SS9S4[        SS9S4[        SS9S4[        SS	S
9S4[        SS9S4[        SS9S4[        SS9S44
S.SSS/ S./[        S S9S4[        SS9S4[        SS9S4[        SS9S4[        SS9S4[        SS9S4[        SS	S
9S4[        SS9S4[        SS9S4[        SS9S44
S.SS[        S5      [        S5      //S.[        S S9S4[        SS9S4[        SS9S4[        SS9S4[        SS9S4[        SS9S 4[        SS	S
9S!4[        SS9S4[        SS9S"4[        SS9S#44
S./nU H  nU R                  US$   S%9   US&    H  u  p4U R                  US'9   [	        5       nUR                  5        H  u  pg[        XVU5        M     UR                  " US$   5      n[        R                  " U5      nU R                  X5        S S S 5        M     S S S 5        M     g ! , (       d  f       M  = f! , (       d  f       M  = f)(Nr	   r.   rZ   FTr   rK   r[   rN   )r.   r"   r   z-->z....)objecttestsz''spameggshamz>                        [1, 'spam', {'eggs': True, 'ham': []}]z                        [
                        1,
                        'spam',
                        {
                        'eggs': True,
                        'ham': [],
                        },
                        ]z                        [
                         1,
                         'spam',
                         {
                          'eggs': True,
                          'ham': [],
                         },
                        ]a                          [
                            1,
                            'spam',
                            {
                                'eggs': True,
                                'ham': [],
                            },
                        ]a                          [
                        -->1,
                        -->'spam',
                        -->{
                        -->-->'eggs': True,
                        -->-->'ham': [],
                        -->},
                        ]a                          [
                        ....1,
                        ....'spam',
                        ....{
                        ........'eggs': True,
                        ........'ham': [],
                        ....},
                        ]two)g      @g      @)   	   )r      )rK   s   threezZ                        {1: 'two', b'three': [(4.5, 6.25), [{8, 9}, frozenset({10, 11})]]}a                          {
                        1: 'two',
                        b'three': [
                        (
                        4.5,
                        6.25,
                        ),
                        [
                        {
                        8,
                        9,
                        },
                        frozenset({
                        10,
                        11,
                        }),
                        ],
                        ],
                        }aI                          {
                         1: 'two',
                         b'three': [
                          (
                           4.5,
                           6.25,
                          ),
                          [
                           {
                            8,
                            9,
                           },
                           frozenset({
                            10,
                            11,
                           }),
                          ],
                         ],
                        }a                          {
                            1: 'two',
                            b'three': [
                                (
                                    4.5,
                                    6.25,
                                ),
                                [
                                    {
                                        8,
                                        9,
                                    },
                                    frozenset({
                                        10,
                                        11,
                                    }),
                                ],
                            ],
                        }z                        {
                            1: 'two',
                            b'three': [
                                (...),
                                [...],
                            ],
                        }a                          {
                        -->1: 'two',
                        -->b'three': [
                        -->-->(
                        -->-->-->4.5,
                        -->-->-->6.25,
                        -->-->),
                        -->-->[
                        -->-->-->{
                        -->-->-->-->8,
                        -->-->-->-->9,
                        -->-->-->},
                        -->-->-->frozenset({
                        -->-->-->-->10,
                        -->-->-->-->11,
                        -->-->-->}),
                        -->-->],
                        -->],
                        }a                          {
                        ....1: 'two',
                        ....b'three': [
                        ........(
                        ............4.5,
                        ............6.25,
                        ........),
                        ........[
                        ............{
                        ................8,
                        ................9,
                        ............},
                        ............frozenset({
                        ................10,
                        ................11,
                        ............}),
                        ........],
                        ....],
                        }r   )test_objectr   )repr_settings)r   rm   rn   r   r   r0   r1   r   textwrapdedentr2   )	r4   
test_cases	test_caser   expected_reprrC   	attributevalueresulting_reprs	            r   test_valid_indentReprTests.test_valid_indent  s    &-'.&-^T*^T*^T*Q/6_d+'.($/  &-'.&-^T*^T*^T*Q/6_d+'.($/  ftB&?@& )B C' *  & )  ^ &  ^ &  ^ &  Q/ 2  _ '  ' *  ( + WTWt #Vi&9: & )^ _' * ( & ) ( ^ & ( ^ & ( ^ & ( Q/ 2  _ ' ( ' * ( ( + oktol

Z	 $I)H*=>4=g4F0MMB F0=0C0C0E,I#A%8 1F)*	(0C)D(0(F((G CB 5G ?> $ CB ?>s%   J7A,I<	#J<
JJ
J	c           	         SSS/ S./nS[         S44S[         S44S[        S 44/ [        S 44S	[        S 44S
/[        S 44[        5       [        S 44/nU Hq  u  nu  pEU R                  US9   [	        5       nX6l        U=(       d    [        U5       nU R                  XE5         UR                  " U5        S S S 5        S S S 5        Ms     g ! , (       d  f       N= f! , (       d  f       M  = f)NrK   r   Tr   z[Nn]egative|[Pp]ositiver	   )r[   r[   r   )	r   	TypeErrorr   r   r   r.   typeassertRaisesRegexr   )r4   r   r   r.   expected_errorexpected_msgrC   s          r   test_invalid_indentReprTests.test_invalid_indentL  s    &4";<*789*789)T"#)T"#It$%TIt$%X	4()

 7A2F2^V,F!+@$v,++NIFF;' J	 -, 7A
 JI	 -,s$   ,7C#C6C
CC
C+	c                 X     " S S5      nU R                  [        U" 5       5      S5        g )Nc                       \ rS rSrS rSrg)3ReprTests.test_shadowed_stdlib_array.<locals>.arrayia  c                     g)Nnot array.arrayr	   r4   s    r   __repr__<ReprTests.test_shadowed_stdlib_array.<locals>.array.__repr__b  s    (r   r	   Nr   r   r   r   r  r   r	   r   r   rX   r  a  s    )r   rX   r  rv   )r4   rX   s     r   test_shadowed_stdlib_array$ReprTests.test_shadowed_stdlib_array_  s%    	) 	) 	57%67r   c                 X     " S S5      nU R                  [        U" 5       5      S5        g )Nc                       \ rS rSrS rSrg)-ReprTests.test_shadowed_builtin.<locals>.listij  c                     g)Nnot builtins.listr	   r  s    r   r  6ReprTests.test_shadowed_builtin.<locals>.list.__repr__k  s    *r   r	   Nr	  r	   r   r   listr  j  s    +r   r  r  rv   )r4   r  s     r   test_shadowed_builtinReprTests.test_shadowed_builting  s%    	+ 	+ 	46$78r   c                      " S S[         5      nU" 5       nU R                  UR                  [        R                  5      S5        g )Nc                       \ rS rSrS rSrg)*ReprTests.test_custom_repr.<locals>.MyRepriq  c                 P    UR                   S;   a  UR                   $ [        U5      $ )N>   <stdin><stderr><stdout>)namer   r4   objlevels      r   repr_TextIOWrapper=ReprTests.test_custom_repr.<locals>.MyRepr.repr_TextIOWrappers  s"    88BB88OCy r   r	   N)r   r   r   r   r   r   r	   r   r   MyReprr  q  s    !r   r"  r  )r   r2   r   r   stdin)r4   r"  aReprs      r   test_custom_reprReprTests.test_custom_reprp  s4    	!T 	! CII.	:r   c                      " S S5      nU" 5       nS[        U5      l        U R                  [        U5      R                  S5         " S S[        5      nU" 5       nU R                  UR	                  U5      S5        g )Nc                       \ rS rSrSrg)DReprTests.test_custom_repr_class_with_spaces.<locals>.TypeWithSpacesi|  r	   N)r   r   r   r   r   r	   r   r   TypeWithSpacesr)  |  s    r   r*  ztype with spacesc                       \ rS rSrS rSrg)<ReprTests.test_custom_repr_class_with_spaces.<locals>.MyRepri  c                     g)NType With Spacesr	   r  s      r   repr_type_with_spacesRReprTests.test_custom_repr_class_with_spaces.<locals>.MyRepr.repr_type_with_spaces  s    )r   r	   N)r   r   r   r   r/  r   r	   r   r   r"  r,    s    *r   r"  r.  )r   r   r2   r   r   )r4   r*  r   r"  r$  s        r   "test_custom_repr_class_with_spaces,ReprTests.test_custom_repr_class_with_spaces{  sk    	 	 -Qa))+=>	*T 	*
 A(:;r   r	   N)r   r   r   r   r:   rG   rU   rp   rx   r{   r   r   r   r   r   r   r   r   r   r   r   r
  r  r%  r1  r   r	   r   r   r   r      st    M."&37j@V 9D/"]
;35"	:?wHr	(&89	;<r   r   c                 p    [        U SSS9 nUR                  U5        S S S 5        g ! , (       d  f       g = f)NwASCII)encoding)openwrite)pathtextfps      r   
write_filer<    s'    	dC'	*b
 
+	*	*s   '
5c                       \ rS rSrSrS rS rS rS rS r	\
R                  " S5      S	 5       rS
 rS rS r\
R                  " S5      S 5       rSrg)LongReprTesti  3areallylongpackageandmodulenametotestreprtruncationc                 L   [         R                  R                  U R                  5      U l        [         R                  R                  U R                  U R                  5      U l        [        R                  " U R                  SS9  [         R                  " U R                  5        [        [         R                  R                  U R                  S5      5        [        R                  " U R
                  SS9  [         R                  " U R
                  5        [        [         R                  R                  U R
                  S5      5        [         R                  " 5       U l        [        R                  R                  SU R                  5        [        R                  " 5         g )NT)ignore_errorsz__init__.pyr   )osr9  joinlongnamepkgname
subpkgnameshutilrmtreemkdirr   getcwdherer   insert	importlibinvalidate_cachesr  s    r   setUpLongReprTest.setUp  s    ww||DMM2'',,t}}dmmDdll$7
"'',,t||]CDdooT:
!"'',,tFGIIK	499% 	##%r   c                    / n[         R                  " U R                  5       H?  u  p#nX4-    H1  nUR                  [         R                  R                  X%5      5        M3     MA     UR                  U R                  5        UR                  5         UR                  5         U HU  n[         R                  R                  U5      (       a  [         R                  " U5        M?  [         R                  " U5        MW     [        R                  S	 g )Nr   )rB  walkrE  appendr9  rC  sortreverseisdirrmdirremover   )r4   actionsdirpathdirnames	filenamesr  ps          r   tearDownLongReprTest.tearDown  s    ,.GGDLL,A(Gy ,rww||G:; - -B 	t||$Aww}}Q		!	 
 HHQKr   c                    [        U R                  5      nUS[        U R                  5      S-   -  -  nU[        U5      S-   [        S5      -   -  nU[        [        R                  R                  S5      5      -   [        S5      -
  n[        R                  S:X  a  US:  a  U R                  SU-  5        g [        R                  S:X  a  [        (       a  [        SU5        g g g )	NrN   rK   .pyzx.pyntr   zDtest paths too long (%d characters) for Windows' 260 character limitzcached_path_len =)lenrK  rD  rM  utilcache_from_sourcerB  r  skipTestr   print)r4   module_namesource_path_lencached_path_lens       r   _check_path_limitations$LongReprTest._check_path_limitations  s    dii.1DMM 2Q 6773{+a/#e*<<*	0089:<?KH77d?#5 MM`+, -WW_%7 ")_r   c                    S U l         U R                  U R                  5        [        [        R
                  R                  U R                  U R                  S-   5      5        [        R                  " 5         SSK
Jn  UnU R                  [        U5      SUR                  < SUR                  < S35        U R                  [        [         5      S5        g )Nra  r   )r?  z<module z from r   z<module 'sys' (built-in)>)maxDiffrk  rE  r   rB  r9  rC  rF  rM  rN  gareallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncationr?  r2   r   r   __file__r   )r4   r?  modules      r   test_moduleLongReprTest.test_module  s    $$T\\2"'',,tu8LMN##% 	pDfQWQ`Q`'abc$?@r   c                 .   U R                  S5        U R                  n[        [        R                  R                  U R                  S5      S5        [        R                  " 5         SSK	J
n  U" [        UR                  5      SUR                  -  5        g )Nr   zfoo.pyzclass foo(object):
    pass
r   )r   z<class '%s.foo'>)rk  r2   r<  rB  r9  rC  rF  rM  rN  ro  r   r   r   )r4   rD   r   s      r   	test_typeLongReprTest.test_type  sl    $$U+277<<: = 	 	##%
4=!CLL0	2r   zneed a suitable objectc                     g r   r	   r  s    r   r   LongReprTest.test_object  s     	r   c                 (   U R                  S5        [        [        R                  R	                  U R
                  S5      S5        [        R                  " 5         SSKJ	n  U R                  [        UR                  5      SUR                  -  5        g )Nbarzbar.pyzclass bar:
    pass
r   )rz  z<class '%s.bar'>)rk  r<  rB  r9  rC  rF  rM  rN  ro  rz  r2   r   r   )r4   rz  s     r   
test_classLongReprTest.test_class  se    $$U+277<<: = 	 	##%cgg(:S\\(IJr   c                 P   U R                  S5        [        [        R                  R	                  U R
                  S5      S5        [        R                  " 5         SSKJ	n  UR                  5       nU R                  [        U5      R                  SUR                  -  5      5        g )Nbazzbaz.pyzclass baz:
    pass
r   )r~  z<%s.baz object at 0x)rk  r<  rB  r9  rC  rF  rM  rN  ro  r~  r   r   r   r   )r4   r~  ibazs      r   r   LongReprTest.test_instance  sw    $$U+277<<: = 	 	##%wwyT
--"S\\13 	4r   c                 
   U R                  S5        U R                  n[        [        R                  R                  U R                  S5      S5        [        R                  " 5         SSK	J
n  [        UR                  R                  5      nU R                  UR                  " S5      U5        UR                  5       n[        UR                  5      nU R                  UR                  " SUR                   < S35      U5        g )	Nquxzqux.pyzclass aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:
    def amethod(self): pass
r   )r  z<function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.amethodz<bound method aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.amethod of <z.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa object at 0x)rk  r2   r<  rB  r9  rC  rF  rM  rN  ro  r  r   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamethodr   r   r   )r4   rD   r  rC   iquxs        r   test_methodLongReprTest.test_method  s    $$U+277<<: = 	 	##%  ^  ^  f  f  g  &B  C  EF  	G  \  \  ^|| !"	$r   z1needs a built-in function with a really long namec                     g r   r	   r  s    r   r   "LongReprTest.test_builtin_function
  s     	r   )rK  rn  rE  rF  N)r   r   r   r   rD  rO  r^  rk  rr  ru  unittestskipr   r{  r   r  r   r   r	   r   r   r>  r>    sn    DH&"8$A
2 ]]+, -
	K
4$& ]]FG Hr   r>  c                        \ rS rSrS rS rSrg)r   i  c                     Xl         g r   rE   )r4   rE   s     r   __init__ClassWithRepr.__init__  s    r   c                      SU R                   -  $ )NzClassWithRepr(%r)r  r  s    r   r  ClassWithRepr.__repr__  s    "TVV++r   r  N)r   r   r   r   r  r  r   r	   r   r   r   r     s    ,r   r   c                       \ rS rSrS rSrg)r   i  c                     [        S5      e)Nz+This should be caught by Repr.repr_instance)	Exceptionr  s    r   r  ClassWithFailingRepr.__repr__  s    EFFr   r	   Nr	  r	   r   r   r   r     s    Gr   r   c                   >    \ rS rSrSrS rS r\" 5       S 5       rSr	g)MyContaineri  z"Helper class for TestRecursiveReprc                 $    [        U5      U l        g r   )r  values)r4   r  s     r   r  MyContainer.__init__  s    6lr   c                 :    U R                   R                  U5        g r   )r  rS  )r4   r   s     r   rS  MyContainer.append  s    5!r   c                 `    SSR                  [        [        U R                  5      5      -   S-   $ Nr   z, r   rC  mapstrr  r  s    r   r  MyContainer.__repr__   &    TYYs3455;;r   )r  N)
r   r   r   r   __doc__r  rS  r   r  r   r	   r   r   r  r    s$    (#"< <r   r  c                   0    \ rS rSr\" S5      S 5       rSrg)MyContainer2i$  rR   c                 `    SSR                  [        [        U R                  5      5      -   S-   $ r  r  r  s    r   r  MyContainer2.__repr__%  r  r   r	   N)r   r   r   r   r   r  r   r	   r   r   r  r  $  s    E< <r   r  c                   8    \ rS rSrS r\r\" 5       " \5      rSrg)MyContainer3i)  c                     g)zTest document contentNr	   r  s    r   r  MyContainer3.__repr__*  s    r   r	   N)	r   r   r   r   r  wrappedr   wrapperr   r	   r   r   r  r  )  s     Gw'Gr   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestRecursiveRepri0  c                    [        [        S5      5      nUR                  U5        UR                  S5        UR                  U5        U R                  [	        U5      S5        [        [        S5      5      nUR                  U5        UR                  S5        UR                  U5        U R                  [	        U5      S5        g )Nabcder   z<a, b, c, d, e, ..., x, ...>z<a, b, c, d, e, +++, x, +++>)r  r  rS  r2   r   r  )r4   ms     r   test_recursive_repr%TestRecursiveRepr.test_recursive_repr1  s    W&			a"@Ag'			a"@Ar   c                     SSK Jn  [        R                  n[        R                  nU H'  nU R                  [        X45      [        X$5      5        M)     g )Nr   )WRAPPER_ASSIGNMENTS)	functoolsr  r  r  r  assertIsr3   )r4   assignedr  r  r  s        r   test_assigned_attributes*TestRecursiveRepr.test_assigned_attributes=  s=    =&&&&DMM''0''2HI r   c                 x     " S S5      nU R                  UR                  UR                  R                  5        g )Nc                   8    \ rS rSrS r\r\" 5       " \5      rSrg),TestRecursiveRepr.test__wrapped__.<locals>.XiE  c                     g)NzX()r	   r  s    r   r  5TestRecursiveRepr.test__wrapped__.<locals>.X.__repr__F  s    r   r	   N)r   r   r   r   r  fr   r   r	   r   r   Xr  E  s    A%'1Hr   r  )r  r  r  __wrapped__)r4   r  s     r   test__wrapped__!TestRecursiveRepr.test__wrapped__D  s*    	2 	2 	acc1::112r   c                     " S S5      nU" 5       R                   R                  nU R                  [        U5      S5        U R                  US   R                  S5        U R                  US   R
                  [        5        g )Nc                   J   ^  \ rS rSr m \" 5       SU 4S js5       5       rSrU rg)1TestRecursiveRepr.test__type_params__.<locals>.MyiN  c                 4   > S U4S j8=n4U SUSTZ 4S jjs8$ )Tc                  
   > T Z $ r   r  __classdict__s   r   r  3TestRecursiveRepr.test__type_params__.<locals>.My.TP  s    Cr   defaultreturnc                     U$ r   r	   )r4   r  s     r   r  :TestRecursiveRepr.test__type_params__.<locals>.My.__repr__O  s    r   r  )	.defaultsr  r  s     r    <generic parameters of __repr__>RTestRecursiveRepr.test__type_params__.<locals>.My.<generic parameters of __repr__>O  s    C  3 r   r	   N)r   )r   r   r   r   r   r  r   __classdictcell__r  s   @r   Myr  N  s       r   r  rK   r   r  )r  __type_params__r2   rc  r   	__bound__r  )r4   r  type_paramss      r   test__type_params__%TestRecursiveRepr.test__type_params__M  sh    	 	
 dmm33[)1-Q00#6Q1137r   r	   N)	r   r   r   r   r  r  r  r  r   r	   r   r   r  r  0  s    
BJ3	8r   r  __main__)r  r   rB  rG  rM  importlib.utilr  r   test.supportr   test.support.os_helperr   reprlibr   rC   r   r   r   TestCaser   r<  r>  r   r   r  r  r  r  r   mainr	   r   r   <module>r     s   
  	        4   "n	<!! n	<`~8$$ ~@, ,G G< <<; <
( (&8)) &8P zMMO r   