o
    HXh3                     @   s.  	 d dl Z d dlZd dlZd dlmZmZmZmZmZm	Z	 d dl
T d dlmZ d dlmZ d dlmZmZ d dlmZmZ d dlmZ d d	lmZmZmZ d d
lmZmZ zd dlZW n eyf   dZY nw d dl m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z) d dl*m+Z+ d dl,m-Z- zd dl.m/Z/ W n ey   dZ/Y nw d dl0m1Z2 d dl3m4Z4 d dl5m6Z6m7Z7 d dl8m9Z9m:Z:m;Z; d dl<m=Z=m>Z> d dl?m@Z@mAZA d dlBmCZC d dlDmEZEm1Z1 d dlFmGZGmHZHmIZI d dlJZJd dlJmKZK eKdZLeKdZMeKdZNG d d! d!e jOZPeQd"kre R  dS dS )#    N)defaultdictdequeOrderedDictCounterUserDictUserList)*)Future)	_WorkItem)AbstractContextManagerAbstractAsyncContextManager)
ContextVarToken)Field)partialpartialmethodcached_property)Mailbox_PartialFile)SequenceMatcher)dircmp)	FileInput)chain)Morsel)
ValueProxy)ApplyResult)ShareableList)SimpleQueue)DirEntry)PatternMatch)GenericAliasMappingProxyTypeAsyncGeneratorType)TemporaryDirectorySpooledTemporaryFile)SplitResultParseResult)_AssertRaisesContext)Queuer   )WeakSetReferenceTyperef)TypeVarTKVc                   @   s  e Zd Z	 g eeeeeee	e
eeeeeeeeeeeeeeeeeeeeee e!e"e#e$e%e&e'e(e)e*e+e,e-e.e/e0e1e2e3e4e5e6e7e8e9e:e;e<e=e>e?e@eAeBeCeDeEeFeGeHZIeJdureIKeJjLeJjMf dd ZNdd ZOdd ZPdd	 ZQd
d ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\d d! Z]d"d# Z^d$d% Z_d&d' Z`d(d) Zad*d+ Zbd,d- Zcd.d/ Zdd0d1 Zed2d3 ZfdS )4BaseTestNc              	   C   s   | j D ]<}|d u r
q|j}| d| " |t }| |j| | |jtf | |jd W d    n1 s:w   Y  qd S )NTesting  )	generic_types__name__subTestintassertIs
__origin__assertEqual__args____parameters__selfttnamealiasr3   r3   @/opt/python-3.10.19/usr/lib/python3.10/test/test_genericalias.pytest_subscriptableX   s   
zBaseTest.test_subscriptablec              
   C   s   t ttttfD ]6}|j}| d| ! | t |t   W d    n1 s)w   Y  W d    n1 s8w   Y  qd S Nr2   )	r7   strfloatSizedHashabler5   r6   assertRaises	TypeError)r>   r?   r@   r3   r3   rB   test_unsubscriptablec   s   
zBaseTest.test_unsubscriptablec              	   C   s   t ttttttfD ]s}|j}| d| ^ |t	 }| 
| |  |tu rF| 
|tddgtddd | 
|dddtddd n'|tu radd }||}t|}| 
|d	 |d	  n| 
|td
|d
 W d    n1 sww   Y  q	d S )Nr2   )a   )b   rM   rO   )rL   rN   c                   S   s   dS )Nvaluer3   r3   r3   r3   rB   defaultt      z*BaseTest.test_instantiate.<locals>.defaulttest)rM   rO      )tuplelistdictset	frozensetr   r   r5   r6   r7   r:   iter)r>   r?   r@   rA   rQ   rL   dr3   r3   rB   test_instantiatej   s$    zBaseTest.test_instantiatec                 C   sV   t t }| }||d | |dg ||d}| |d | ||d d S )NZfoor   rM   )rV   r7   appendr:   __getitem____len__)r>   r?   rL   xr3   r3   rB   test_unbound_methods|   s   zBaseTest.test_unbound_methodsc                 C   s6   G dd dt t }| |jt f | |jt d S )Nc                   @      e Zd ZdS )z$BaseTest.test_subclassing.<locals>.CNr5   
__module____qualname__r3   r3   r3   rB   C       rf   )rV   r7   r:   	__bases__	__class__type)r>   rf   r3   r3   rB   test_subclassing   s   zBaseTest.test_subclassingc                 C   sH   t td f }| t tdd d d | |tdd d d d S )NrO   )r   rM   )rW   r7   r:   fromkeysranger>   r?   r3   r3   rB   test_class_methods   s    zBaseTest.test_class_methodsc                 C   s@   t t }| t |t  W d    d S 1 sw   Y  d S N)rV   r7   rI   rJ   rn   r3   r3   rB   test_no_chaining   s   
"zBaseTest.test_no_chainingc                 C   sH   G dd dt }|t }| |j| | |jtf | |jd d S )Nc                   @   rb   )z.BaseTest.test_generic_subclass.<locals>.MyListNrc   r3   r3   r3   rB   MyList   rg   rr   r3   )rV   r7   r8   r9   r:   r;   r<   )r>   rr   r?   r3   r3   rB   test_generic_subclass   s
   zBaseTest.test_generic_subclassc                 C   s   G dd dt }| tt t d | tt d d | tttdf d | t|t d | tt t  d	 d S )
Nc                   @   rb   )z"BaseTest.test_repr.<locals>.MyListNrc   r3   r3   r3   rB   rr      rg   rr   z	list[str]r3   zlist[()].ztuple[int, ...]z(.BaseTest.test_repr.<locals>.MyList[int]z[])rV   r:   reprrE   rU   r7   
assertTrueendswith)r>   rr   r3   r3   rB   	test_repr   s   zBaseTest.test_reprc                 C   sT   dd l }|tt}| t|d | |jt | |jtf | |j	d d S )Nr   z	list[int]r3   )
typesr!   rV   r7   r:   rE   r8   r9   r;   r<   )r>   rx   rL   r3   r3   rB   test_exposed_type   s   zBaseTest.test_exposed_typec                 C   s`  ddl m}m}m} tttf }| |jttf | |j	d ttt
f }| |jtt
f | |j	t
f tttf }| |jttf | |j	tf ttt
f }| |jtt
f | |j	tt
f tttf }| |jttf | |j	tf tt }	| |	jtf | |	j	d tt }
| |
jtf | |
j	tf ttt  }| |jtt f | |j	tf t|t  }| |j|t f | |j	tf t|tt
f  }| |j|tt
f f | |j	tt
f t|ttf  }| |j|ttf f | |j	tf t|tt
gtf  }| |j|tt
gtf f | |j	tt
f d S )Nr   )ListDictCallabler3   )typingrz   r{   r|   rW   rE   r7   r:   r;   r<   r0   r/   r.   rV   )r>   rz   r{   r|   ZD0ZD1aZD1bZD2aZD2bZL0ZL1ZL2ZL3ZL4aZL4bZL5r3   r3   rB   test_parameters   sJ   zBaseTest.test_parametersc                 C   s  ddl m}m}m}m} | tt t tt  | t	t
tf t t	t
tf  | t	ttf t
 t	t
tf  | t	ttf t
tf t	t
tf  | t	ttf t t	ttf  | ttt  t ttt   | tt	ttf  t
 tt	t
tf   | tt	t
tf  t tt	t
tf   | tt	ttf  t
tf tt	t
tf   | t	ttt f t
 t	t
tt f  | t|t  t t|t   | t|ttf  t
tf t|t
tf   | t|ttf  t
tf t|t
tf   | t|ttgtf  t
tf t|t
tgt
f   | t	t|t f t
 t	t
|t f  | t- tt t  t	ttf t
tf  t	t
tf t
tf  t	ttf t
tf  W d    d S 1 s\w   Y  d S )Nr   )rz   r{   Unionr|   )r}   rz   r{   r   r|   r:   rV   r.   r7   rW   rE   r/   r0   rI   rJ   )r>   rz   r{   r   r|   r3   r3   rB   test_parameter_chaining   s0     $  ((,( ,,($z BaseTest.test_parameter_chainingc                 C   sp   |  tt tt  |  tttf tttf  | tttf tttf  | ttt  | tt t d S rp   )r:   rV   r7   rW   rE   ZassertNotEqualr>   r3   r3   rB   test_equality   s
   zBaseTest.test_equalityc                 C   sN   |  tg t | t tg tt  W d    d S 1 s w   Y  d S rp   )ru   
isinstancerV   rI   rJ   rE   r   r3   r3   rB   test_isinstance   s   "zBaseTest.test_isinstancec                 C   s^   G dd dt }| t|t  | t t|t t  W d    d S 1 s(w   Y  d S )Nc                   @   rb   )z#BaseTest.test_issubclass.<locals>.LNrc   r3   r3   r3   rB   L       r   )rV   ru   
issubclassrI   rJ   rE   )r>   r   r3   r3   rB   test_issubclass   s
   "zBaseTest.test_issubclassc                 C   sN   t t }|ddi }| t|t  | }| ||| | |dt d S )NTestr3   r   )rj   r7   ru   r   r:   )r>   r?   r   rS   r3   r3   rB   test_type_generic  s   zBaseTest.test_type_genericc                 C   sH   G dd dt }| t |t  W d    d S 1 sw   Y  d S )Nc                   @   rb   )z3BaseTest.test_type_subclass_generic.<locals>.MyTypeNrc   r3   r3   r3   rB   MyType  rg   r   )rj   rI   rJ   r7   )r>   r   r3   r3   rB   test_type_subclass_generic
  s   
"z#BaseTest.test_type_subclass_genericc                 C   sh   t tt}ttjd D ]%}t||}t|}| |j	|j	 | |j
|j
 | |j|j qd S )NrM   )r!   rV   r.   rm   pickleHIGHEST_PROTOCOLdumpsloadsr:   r9   r;   r<   )r>   rA   protosZloadedr3   r3   rB   test_pickle  s   

zBaseTest.test_picklec                 C   s   G dd dt }t t|fD ]A}t|t}t|}| |j|j | |j|j | |j|j t	|}| |j|j | |j|j | |j|j qd S )Nc                   @   s   e Zd Zdd Zdd ZdS )zBaseTest.test_copy.<locals>.Xc                 S      | S rp   r3   r   r3   r3   rB   __copy__  rR   z&BaseTest.test_copy.<locals>.X.__copy__c                 S   r   rp   r3   )r>   memor3   r3   rB   __deepcopy__  rR   z*BaseTest.test_copy.<locals>.X.__deepcopy__N)r5   rd   re   r   r   r3   r3   r3   rB   X  s    r   )
rV   r   r!   r.   copyr:   r9   r;   r<   deepcopy)r>   r   originrA   Zcopiedr3   r3   rB   	test_copy  s   


zBaseTest.test_copyc                 C   sB   t jtt tt f }| |jtt tt f | |jd d S )Nr3   )r}   r   rV   r7   rE   r:   r;   r<   r>   rL   r3   r3   rB   
test_union+  s   zBaseTest.test_unionc                 C   sL   t jtt ttdf f }| |jtt ttdf f | |jtf d S )N.)r}   r   rV   r.   rU   r:   r;   r<   r   r3   r3   rB   test_union_generic0  s   zBaseTest.test_union_genericc                 C   s>   t ttt }| |tt dD ]}| || qd S )N)r9   r;   r<   )rX   dirrV   r7   ru   
issupersetZassertIn)r>   Zdir_of_gen_aliasZgeneric_alias_propertyr3   r3   rB   test_dir5  s
   zBaseTest.test_dirc              	   C   sj   | j D ]/}|d u r
q|j}| d|  |t }| t| | W d    n1 s-w   Y  qd S rD   )r4   r5   r6   r7   r:   r,   r=   r3   r3   rB   test_weakref;  s   
zBaseTest.test_weakrefc                 C   s:   |  t ttd W d    d S 1 sw   Y  d S )NZbad)rI   rJ   r!   rF   r   r3   r3   rB   test_no_kwargsD  s   "zBaseTest.test_no_kwargsc                 C   sx   G dd dt }|tt}G dd dt }| |tt  | t |tttd W d    d S 1 s5w   Y  d S )Nc                   @   rb   )z>BaseTest.test_subclassing_types_genericalias.<locals>.SubClassNrc   r3   r3   r3   rB   SubClassJ  r   r   c                       s   e Zd Z fddZ  ZS )z9BaseTest.test_subclassing_types_genericalias.<locals>.Badc                    s   t  j| g|R i | d S rp   )super__new__)clsargskwargsri   r3   rB   r   M  s   zABaseTest.test_subclassing_types_genericalias.<locals>.Bad.__new__)r5   rd   re   r   __classcell__r3   r3   r   rB   BadL  s    r   r   )r!   rV   r7   r:   rI   rJ   )r>   r   rA   r   r3   r3   rB   #test_subclassing_types_genericaliasI  s   
"z,BaseTest.test_subclassing_types_genericalias)gr5   rd   re   rj   rU   rV   rW   rX   rY   	enumerater   r   r   r   r   r   r   r   r   r   r    r   r   r   r   r   	Awaitable	CoroutineAsyncIterableAsyncIteratorAsyncGenerator	GeneratorIterableIterator
Reversible	Container
Collectionr   r   r   r   r   Set
MutableSetMappingMutableMappingMappingViewKeysView	ItemsView
ValuesViewSequenceMutableSequencer"   r#   r   r   r$   r%   r)   r   r(   r&   r'   r   r   r*   r+   r,   r   MPSimpleQueuer	   r
   r   r4   ctypesextendArrayZLibraryLoaderrC   rK   r\   ra   rk   ro   rq   rs   rw   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r3   r3   r3   rB   r1   1   s8   		

  !"		'		r1   __main__)SZunittestr   r   collectionsr   r   r   r   r   r   collections.abcconcurrent.futuresr	   Zconcurrent.futures.threadr
   
contextlibr   r   Zcontextvarsr   r   Zdataclassesr   	functoolsr   r   r   Zmailboxr   r   r   ImportErrorZdifflibr   filecmpr   Z	fileinputr   	itertoolsr   Zhttp.cookiesr   Zmultiprocessing.managersr   Zmultiprocessing.poolr   Zmultiprocessing.shared_memoryr   multiprocessing.queuesr   r   osr   rer   r    rx   r!   r"   r#   tempfiler$   r%   urllib.parser&   r'   Zunittest.caser(   queuer)   weakrefr*   r+   r,   r}   r-   r.   r/   r0   ZTestCaser1   r5   mainr3   r3   r3   rB   <module>   sd       
&