
    <e&                         d dl Z d dlmZ d dlZd dlZ G d d          Z G d de j                  Zedk    r e j	                     dS dS )    N)patchc                       e Zd Z	 dZdZdS )
CompleteMe      N)__name__
__module____qualname__spam_ham     ,/usr/lib/python3.11/test/test_rlcompleter.pyr   r      s        @DDDDr   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            dd	          d
             Zd ZdS )TestRlcompleterc                     t          j                    | _        t          j        t          t          t
          t                              | _        | j                            dd           d S )N)r   eggr    r   )	rlcompleter	Completerstdcompleterdictintstrr   	completercompleteselfs    r   setUpzTestRlcompleter.setUp   sf    '133$.t8;?I0K 0K 0K L L
 	""2q)))))r   c                     G d dt                     } G d dt                    }|                     | j        j                   |                     | j        j                   |                     t          j         |                      j                   | 	                    t          t          j         |d                     d S )Nc                       e Zd ZdS ))TestRlcompleter.test_namespace.<locals>.ANr   r	   r
   r   r   r   Ar"              Dr   r$   c                       e Zd ZdS ))TestRlcompleter.test_namespace.<locals>.BNr#   r   r   r   Br'      r%   r   r(   )r   )r   list
assertTruer   use_main_nsassertFalser   r   r   assertRaises	TypeError)r   r$   r(   s      r   test_namespacezTestRlcompleter.test_namespace   s    	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	)56663444.qqss33?@@@)[%:AAdGGDDDDDr   c                    |                      t          | j                            d                    d t	          t
                    D                        |                      t          | j                            d                    d t	          t
                    D                        |                      | j                            d          g            |                      | j                            d          dg           |                      | j                            d          d	g           |                      | j                            d          dg           d S )
Ndic                 B    g | ]}|                     d           |dz   S )r1   (
startswith.0xs     r   
<listcomp>z7TestRlcompleter.test_global_matches.<locals>.<listcomp>$   -    MMMA!,,t:L:LM!C%MMMr   stc                 B    g | ]}|                     d           |dz   S )r;   r3   r4   r6   s     r   r9   z7TestRlcompleter.test_global_matches.<locals>.<listcomp>&   r:   r   akaksajadhak	CompleteMzCompleteMe()egzegg()assertEqualsortedr   global_matchesdirbuiltinsr   r   s    r   test_global_matchesz#TestRlcompleter.test_global_matches!   s`    1 @ @ F FGGMMXMMM	O 	O 	O 1 @ @ F FGGMMXMMM	O 	O 	O*99.II2NNN 	66{CC()	+ 	+ 	+66t<< 	# 	# 	# 	66{CC()	+ 	+ 	+ 	+ 	+r   c                    |                      | j                            d          d t          t                    D                        |                      | j                            d          g            t          d t          d           D                       }|                      | j                            d          |           |                      | j                            d          |           |                      | j                            d          |           |                      | j                            d          d	g           |                      | j                            d
          g            |                      | j                            d          dd	g           |                      | j                            d          dg           | j                            d          }|D ]+}|                     |                    d          |           ,| 	                    d|           | 	                    d|           t          j        t          dt          d          5  |                      | j                            d          dg           |                      | j                            d          d t          t                    D                        d d d            d S # 1 swxY w Y   d S )Nzstr.sc                 b    g | ],}|                     d           d                    |          -S )szstr.{}(r5   formatr6   s     r   r9   z5TestRlcompleter.test_attr_matches.<locals>.<listcomp>5   sF     0 0 0!\\#..0)**1-- 0 0 0r   ztuple.foospameggc                 ,    h | ]}d ||dk    rdndS )None.__doc__r3   r   r   r6   s     r   	<setcomp>z4TestRlcompleter.test_attr_matches.<locals>.<setcomp>8   s@     / / / q +,!ANNSS-JK / / /r   rL   zNone._zNone.__zCompleteMe.spzCompleteMe.spamzCompleteme.eggzCompleteMe.zCompleteMe.mro()zCompleteMe._zCompleteMe._hamzCompleteMe.__zCompleteMe.__name__zCompleteMe.__new__(meT)createzCompleteMe.me.me.spzCompleteMe.me.me.spamzegg.sc                 b    g | ],}|                     d           d                    |          -S )rH   zegg.{}(rI   r6   s     r   r9   z5TestRlcompleter.test_attr_matches.<locals>.<listcomp>P   sF     4 4 4a!"c!2!24i..q11 4 4 4r   )r@   r   attr_matchesrC   r   rA   r   r*   r5   assertInr   objectr   )r   expectedmatchesr8   s       r   test_attr_matchesz!TestRlcompleter.test_attr_matches2   sG   *77@@0 0s3xx 0 0 0	1 	1 	1 	*778JKKRPPP / /$'II/ / / 0 0*77@@(KKK*77AA8LLL*77	BBHMMM 	44_EE+,	. 	. 	.445EFFKKK44]CC,.?@	B 	B 	B44^DD+,	. 	. 	..--o>> 	> 	>AOOALL991====+W555+W555\*dJtDDD 	5 	5T^889NOO568 8 8T^88AA4 43s88 4 4 45 5 5	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   ;A:LL	Lc                    	  G d d          } |            }t          j        t          |                    }|                     |                    dd          d           |                     |j        d           d S )Nc                   &     e Zd ZdZdZ fdZ xZS )3TestRlcompleter.test_excessive_getattr.<locals>.Foor   r   c                 v    |dk    r| xj         dz  c_         d S t                                          |          S )Nbarr   )callssuper__getattribute__)r   name	__class__s     r   r_   zDTestRlcompleter.test_excessive_getattr.<locals>.Foo.__getattribute__]   s8    5==JJ!OJJ4ww//555r   )r   r	   r
   r]   r\   r_   __classcell__)ra   s   @r   FoorZ   Z   sB        EC6 6 6 6 6 6 6 6 6r   rc   ff.br   f.barr   )r   r   r   r@   r   r]   r   rc   re   r   s       r   test_excessive_getattrz&TestRlcompleter.test_excessive_getattrS   s    I	6 	6 	6 	6 	6 	6 	6 	6 CEE)$)))44	++E155w???!$$$$$r   c                      G d d          } |            }t          j        t          |                    }|                     |                    dd          d           |                     |j                   d S )Nc                   ,    e Zd ZdZdZed             ZdS )<TestRlcompleter.test_property_method_not_called.<locals>.Foor   Fc                     d| _         | j        S )NT)property_called_barr   s    r   r\   z@TestRlcompleter.test_property_method_not_called.<locals>.Foo.barm   s    '+$y r   N)r   r	   r
   ro   rn   propertyr\   r   r   r   rc   rl   i   s7        D#O! ! X! ! !r   rc   rd   rf   r   rg   )r   r   r   r@   r   r,   rn   rh   s       r   test_property_method_not_calledz/TestRlcompleter.test_property_method_not_calledh   s    	! 	! 	! 	! 	! 	! 	! 	! CEE)$)))44	++E155w???*+++++r   c                      G d d          }t          j        t           |                                }|                     |                    dd          d           d S )Nc                       e Zd ZdZdS )0TestRlcompleter.test_uncreated_attr.<locals>.Foo)r\   N)r   r	   r
   	__slots__r   r   r   rc   rt   {   s         IIIr   rc   rd   zf.r   rg   )r   r   r   r@   r   )r   rc   r   s      r   test_uncreated_attrz#TestRlcompleter.test_uncreated_attrx   st    	! 	! 	! 	! 	! 	! 	! 	!)$---88	++D!44g>>>>>r   zrlcompleter._readline_availableFc                 p   t          j                    }|                     |                    dd          d           |                     |                    dd          d           |                     |                    dd          d           |                     |                    dd	          d
           |                     |                    dd          d           |                     |                    dd          d           |                     |                    dd          d           |                     |                    dd          d           |                     |                    dd          d           |                     |                    dd          d           |                     |                    dd          d           |                     |                    dd          d           |                     |                    dd          d           d S )Nr   r   	azand r   zas asr   assert anpapassFaFalseelzelif elsetrtry:_matchzmatch casezcase )r   r   r@   r   )r   r   s     r   test_completezTestRlcompleter.test_complete   s   )++	++B22D999++C33V<<<++C33U;;;++D!44i@@@++D!44f===++D!44f===++D!44g>>>++D!44g>>>++D!44f===++D!44f===++C33S999++GQ77BBB++FA66@@@@@r   c                    d d d d d d}t          j        |          }|                     |                    dd          d           |                     |                    dd                     |                     |                    dd          d           |                     |                    dd                     |                     |                    d	d          d
           |                     |                    d	d                     |                     |                    dd          d           |                     |                    dd                     |                     |                    dd          d           |                     |                    dd                     d S )Nc                      d S Nr   r   r   r   <lambda>z8TestRlcompleter.test_duplicate_globals.<locals>.<lambda>   s    4 r   c                      d S r   r   r   r   r   r   z8TestRlcompleter.test_duplicate_globals.<locals>.<lambda>   s     r   )r   asserttry
memoryviewEllipsisr   r   r   r   r{   r   r   r   r   z
Ellipsis())r   r   r@   r   assertIsNone)r   	namespacer   s      r   test_duplicate_globalsz&TestRlcompleter.test_duplicate_globals   s   <$
 
	  ))44	++GQ77AAA),,Wa88999++Ha88)DDD),,Xq99:::++E155v>>>),,UA66777++L!<<lKKK),,\1==>>>++J::LIII),,Z;;<<<<<r   N)r   r	   r
   r   r/   rE   rW   ri   rq   rv   unittestmockr   r   r   r   r   r   r   r      s        * * *	E 	E 	E+ + +"5 5 5B% % %*, , , ? ? ? ]:EBBA A CBA = = = = =r   r   __main__)
r   unittest.mockr   rD   r   r   TestCaser   r   mainr   r   r   <module>r      s                      Y= Y= Y= Y= Y=h' Y= Y= Y=v zHMOOOOO r   