Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_dataclasses.cpython-39.opt-2.pyc

a

��g���@s�ddlTddlZddlZddlZddlZddlZddlmZddlm	Z	m
Z
mZmZm
Z
mZmZmZmZmZddlmZddlmZmZmZddlmZddlZddlZGdd	�d	e�ZGd
d�dej�ZGdd
�d
ej�ZGdd�dej�ZGdd�dej�ZGdd�dej�Z Gdd�dej�Z!Gdd�dej�Z"Gdd�dej�Z#Gdd�dej�Z$Gdd�dej�Z%Gdd�dej�Z&Gd d!�d!ej�Z'Gd"d#�d#ej�Z(Gd$d%�d%ej�Z)e*d&k�r�e�+�dS)'�)�*N)�Mock)
�ClassVar�Any�List�Union�Tuple�Dict�Generic�TypeVar�Optional�Protocol)�get_type_hints)�deque�OrderedDict�
namedtuple)�total_orderingc@seZdZdS)�CustomErrorN��__name__�
__module__�__qualname__�rr�1/usr/local/lib/python3.9/test/test_dataclasses.pyr�rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAdB�Z#dCdD�Z$dEdF�Z%dGdH�Z&dIdJ�Z'dKdL�Z(dMdN�Z)dOdP�Z*dQdR�Z+dSdT�Z,dUdV�Z-dWdX�Z.dYdZ�Z/d[d\�Z0d]d^�Z1d_d`�Z2dadb�Z3dcdd�Z4dedf�Z5dgdh�Z6didj�Z7dkdl�Z8dmdn�Z9dodp�Z:dqdr�Z;dsdt�Z<dudv�Z=dwdx�Z>dydz�Z?d{d|�Z@d}d~�ZAdd��ZBd�d��ZCd�d��ZDd�d��ZEd�d��ZFd�d��ZGd�d��ZHd�d��ZId�d��ZJd�d��ZKd�d��ZLd�d��ZMd�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�S)��TestCasecCs0tGdd�d��}|�}|�tt|��d�dS)Nc@seZdZdS)z"TestCase.test_no_fields.<locals>.CNrrrrr�Csrr��	dataclass�assertEqual�len�fields��selfr�orrr�test_no_fieldsszTestCase.test_no_fieldscCs0tGdd�d��}|�}|�tt|��d�dS)Nc@seZdZdZdS)z6TestCase.test_no_fields_but_member_variable.<locals>.CrN)rrr�irrrrr"srrrr"rrr�"test_no_fields_but_member_variable!sz+TestCase.test_no_fields_but_member_variablecCs,tGdd�d��}|d�}|�|jd�dS)Nc@seZdZUeed<dS)z-TestCase.test_one_field_no_default.<locals>.C�xN�rrr�int�__annotations__rrrrr*s
r�*�rrr(r"rrr�test_one_field_no_default)sz"TestCase.test_one_field_no_defaultcCsFd}|�t|��"tGdd�d��}Wd�n1s80YdS)Nz/cannot specify both default and default_factoryc@s"eZdZUeded�Zeed<dS)z<TestCase.test_field_default_default_factory_error.<locals>.C���default�default_factoryr(N)rrr�fieldr*r(r+rrrrr4s
r)�assertRaisesRegex�
ValueErrorr)r#�msgrrrr�(test_field_default_default_factory_error1sz1TestCase.test_field_default_default_factory_errorcCs8tdddd�}d|_t|�}dt�d�}|�||�dS)Nr/TF)r1�init�repr�idz4Field(name='id',type=None,default=1,default_factory=zX,init=True,repr=False,hash=None,compare=True,metadata=mappingproxy({}),_field_type=None))r3�namer9�MISSINGr)r#Z	int_fieldZrepr_outputZexpected_outputrrr�test_field_repr8s�zTestCase.test_field_reprcCs.tGdd�d��}|dd�}|�|jd�dS)Nc@seZdZUeed<dS)z*TestCase.test_named_init_params.<locals>.Cr(Nr)rrrrrEs
r� �r(r-r"rrr�test_named_init_paramsDs
zTestCase.test_named_init_paramscCstGdd�d��}|d�}|�|j|jfd�|�td��"tGdd�d��}Wd�n1sb0Y|�td��6tGdd�d��}tGd	d�d|��}Wd�n1s�0Y|�td��6tGd
d�d��}tGdd�d|��}Wd�n1�s0YdS)Nc@s"eZdZUeed<dZeed<dS)�/TestCase.test_two_fields_one_default.<locals>.Cr(r�yN�rrrr*r+rBrrrrrMs
r�)rDrz1non-default argument 'y' follows default argumentc@s"eZdZUdZeed<eed<dS)rArr(rBN�rrrr(r*r+rrrrrYs
c@seZdZUdZeed<dS)�/TestCase.test_two_fields_one_default.<locals>.Brr(NrErrrr�Bbs
rGc@seZdZUeed<dS)rArBNr)rrrrrfs
c@seZdZUeed<eed<dS)rFr(rBNr)rrrrrGos
c@seZdZUdZeed<dS)rArr(NrErrrrrts
)rrr(rBr4�	TypeError)r#rr$rGrrr�test_two_fields_one_defaultLs.�.�0�z$TestCase.test_two_fields_one_defaultcCstdd�Gdd�d��}|�t|d��d�tdd�Gdd�d��}|�t|d��td��|�td	��(tdd
�Gdd�d��}Wd�n1s�0Ytdd
�Gdd�d��}|�t|d
��td��|�td	��(tdd
�Gdd�d��}Wd�n1�s0YdS)NT��frozenc@seZdZUeed<dd�ZdS)�'TestCase.test_overwrite_hash.<locals>.Cr(cSsdS�N�-r�r#rrr�__hash__~s�0TestCase.test_overwrite_hash.<locals>.C.__hash__N)rrrr*r+rPrrrrr{s
r�drNc@seZdZUeed<dd�ZdS)rLr(cSsdS�NFr�r#�otherrrr�__eq__�s�.TestCase.test_overwrite_hash.<locals>.C.__eq__N�rrrr*r+rVrrrrr�s
)rR�#Cannot overwrite attribute __hash__��unsafe_hashc@seZdZdd�ZdS)rLcSsdS�NrrOrrrrP�srQN�rrrrPrrrrr�sc@seZdZUeed<dd�ZdS)rLr(cSsdSr\rrOrrrrV�srWNrXrrrrr�s
�
)r^c@s&eZdZUeed<dd�Zdd�ZdS)rLr(cSsdSr\rrOrrrrV�srWcSsdSr\rrOrrrrP�srQN)rrrr*r+rVrPrrrrr�s
)rr�hashr4rH�r#rrrr�test_overwrite_hashxs&�.�zTestCase.test_overwrite_hashcCsptGdd�d��}tGdd�d|��}|�}|�t|�d�|�}|�t|�d�|dd�}|�t|�d	�dS)
Nc@s&eZdZUdZeed<dZeed<dS)z=TestCase.test_overwrite_fields_in_derived_class.<locals>.Baseg.@r(rrBN)rrrr(rr+rBr*rrrr�Base�s
rbc@s&eZdZUdZeed<dZeed<dS)z;TestCase.test_overwrite_fields_in_derived_class.<locals>.C1r^�z�r(N)rrrrcr*r+r(rrrr�C1�s
rezJTestCase.test_overwrite_fields_in_derived_class.<locals>.Base(x=15.0, y=0)zLTestCase.test_overwrite_fields_in_derived_class.<locals>.C1(x=15, y=0, z=10)�r?zKTestCase.test_overwrite_fields_in_derived_class.<locals>.C1(x=5, y=0, z=10)�rrr9)r#rbrer$rrr�&test_overwrite_fields_in_derived_class�s
z/TestCase.test_overwrite_fields_in_derived_classcCs�tGdd�d��}|d�}|�|jd�t�|j�}tt|j��}|�	d|�tGdd�d��}t�|j�}tt|j��}|�d|�dS)Nc@seZdZUeed<dS)�)TestCase.test_field_named_self.<locals>.Cr#N�rrr�strr+rrrrr�s
r�foor#c@seZdZUeed<dS)riZselfxNrjrrrrr�s
)
rrr#�inspect�	signature�__init__�next�iter�
parameters�assertNotEqual)r#r�c�sig�firstrrr�test_field_named_self�szTestCase.test_field_named_selfcCs,tGdd�d��}|d�}|�|jd�dS)Nc@seZdZUeed<dS)z+TestCase.test_field_named_object.<locals>.C�objectNrjrrrrr�s
rrl�rrrx�r#rrtrrr�test_field_named_object�sz TestCase.test_field_named_objectcCs2tdd�Gdd�d��}|d�}|�|jd�dS)NTrJc@seZdZUeed<dS)z2TestCase.test_field_named_object_frozen.<locals>.CrxNrjrrrrr�s
rrlryrzrrr�test_field_named_object_frozen�sz'TestCase.test_field_named_object_frozencsnhd��t�fdd�tj��D��}dd�|D�}td|�}|dd�|D��}|D]}|�t||�|�qRdS)N>�None�False�Truec3s$|]}|�d�s|�vr|VqdS��__N��
startswith��.0�b�Z
exclusionsrr�	<genexpr>�s�z9TestCase.test_field_named_like_builtin.<locals>.<genexpr>cSsg|]}|tf�qSr�rk�r�r;rrr�
<listcomp>�rz:TestCase.test_field_named_like_builtin.<locals>.<listcomp>rcSsg|]}|�qSrrr�rrrr��r��sorted�builtins�__dict__�keys�make_dataclassr�getattr�r#Zbuiltins_namesZ
attributesrrtr;rr�r�test_field_named_like_builtin�s�
z&TestCase.test_field_named_like_builtincsrhd��t�fdd�tj��D��}dd�|D�}td|dd�}|d	d�|D��}|D]}|�t||�|�qVdS)
N>r}r~rc3s$|]}|�d�s|�vr|VqdSr�r�r�r�rrr��s�z@TestCase.test_field_named_like_builtin_frozen.<locals>.<genexpr>cSsg|]}|tf�qSrr�r�rrrr�rzATestCase.test_field_named_like_builtin_frozen.<locals>.<listcomp>rTrJcSsg|]}|�qSrrr�rrrr�rr�r�rr�r�$test_field_named_like_builtin_frozen�s�z-TestCase.test_field_named_like_builtin_frozencCsTtGdd�d��}tdd�Gdd�d��}||fD]�}|j|d���|�|�|��tdd	�d
d	�dd	�dd	�g�D]�\}}|j|d
��\|�td|j�d|j�d���||�|��Wd�n1s�0YWd�qt1s�0YqtWd�q21�s0Yq2tdd�Gdd�d��}|�|�|��|�|�|��dS)Nc@seZdZdS)z)TestCase.test_0_field_compare.<locals>.C0Nrrrrr�C0sr�F��orderc@seZdZdS)z)TestCase.test_0_field_compare.<locals>.C1Nrrrrrresre��clscSs||kSr\r��ar�rrr�<lambda>rz/TestCase.test_0_field_compare.<locals>.<lambda>cSs||kSr\rr�rrrr�rcSs||kSr\rr�rrrr�rcSs||kSr\rr�rrrr�r��idx�$not supported between instances of '�' and '�'Tc@seZdZdS)z(TestCase.test_0_field_compare.<locals>.CNrrrrrr sr)	r�subTestr�	enumerater4rHr�assertLessEqual�assertGreaterEqual�r#r�rer�r��fnrrrr�test_0_field_compare
s*��nzTestCase.test_0_field_comparecCs�tGdd�d��}tdd�Gdd�d��}||fD�]}|j|d���|�|d�|d��|�|d	�|d��td
d�dd�d
d�dd�g�D]�\}}|j|d��`|�td|j�d|j�d���"||d	�|d	��Wd�n1s�0YWd�q�1�s
0Yq�Wd�q21�s,0Yq2tdd�Gdd�d��}|�|d	�|d��|�	|d	�|d��|�	|d�|d��|�
|d�|d	��|�|d�|d	��|�|d�|d��dS)Nc@seZdZUeed<dS)z)TestCase.test_1_field_compare.<locals>.C0r(Nr)rrrrr�(s
r�Fr�c@seZdZUeed<dS)z)TestCase.test_1_field_compare.<locals>.C1r(Nr)rrrrre,s
rer�r/rcSs||kSr\rr�rrrr�4rz/TestCase.test_1_field_compare.<locals>.<lambda>cSs||kSr\rr�rrrr�5rcSs||kSr\rr�rrrr�6rcSs||kSr\rr�rrrr�7rr�r�r�r�Tc@seZdZUeed<dS)z(TestCase.test_1_field_compare.<locals>.Cr(Nr)rrrrr=s
r)rr�rrsr�r4rHr�
assertLessr��
assertGreaterr�r�rrr�test_1_field_compare&s4��tzTestCase.test_1_field_comparecCsTtGdd�d��}tdd�Gdd�d��}||fD�]B}|j|d���|�|dd�|dd��|�|d	d
�|d	d
��|�|d	d�|dd��|�|d	d�|d	d	��tdd�d
d�dd�dd�g�D]�\}}|j|d��f|�td|j�d|j�d���&||dd�|dd��Wd�n1�s*0YWd�q�1�sJ0Yq�Wd�q21�sl0Yq2tdd�Gdd�d��}tdd�dd�dd�g�D]T\}}|j|d��,|�||dd�|dd���Wd�n1�s�0Y�q�tdd�dd�dd�g�D]�\}}|j|d��d|�||dd�|dd	���|�||dd	�|d	d���|�||d	d�|d	d	���Wd�n1�s�0Y�qtdd�dd�dd�g�D]�\}}|j|d��d|�||dd	�|dd���|�||d	d�|dd	���|�||d	d	�|d	d���Wd�n1�sB0Y�q�dS) Nc@seZdZUeed<eed<dS)z(TestCase.test_simple_compare.<locals>.C0r(rBNr)rrrrr�Is
r�Fr�c@seZdZUeed<eed<dS)z(TestCase.test_simple_compare.<locals>.C1r(rBNr)rrrrreNs
rer�rr/�cSs||kSr\rr�rrrr�Yrz.TestCase.test_simple_compare.<locals>.<lambda>cSs||kSr\rr�rrrr�ZrcSs||kSr\rr�rrrr�[rcSs||kSr\rr�rrrr�\rr�r�r�r�Tc@seZdZUeed<eed<dS)z'TestCase.test_simple_compare.<locals>.Cr(rBNr)rrrrrbs
rcSs||kSr\rr�rrrr�grcSs||kSr\rr�rrrr�hrcSs||kSr\rr�rrrr�ircSs||kSr\rr�rrrr�mrcSs||kSr\rr�rrrr�nrcSs||kSr\rr�rrrr�orcSs||kSr\rr�rrrr�urcSs||kSr\rr�rrrr�vrcSs||kSr\rr�rrrr�wr)	rr�rrsr�r4rHr�
assertTruer�rrr�test_simple_compareGsX��z�@�@�zTestCase.test_simple_comparec
Cs2tGdd�d��}tGdd�d|��}tdd�dfdd�d	fg�D]R\}\}}|j|d
��*|�||d�|d��|�Wd�qB1s�0YqBtdd�d
d�dd�dd�g�D]v\}}|j|d
��P|�td��"||d�|d��Wd�n1�s0YWd�q�1�s"0Yq�dS)Nc@seZdZUeed<dS)z+TestCase.test_compare_subclasses.<locals>.Br&Nr)rrrrrG�s
rGc@seZdZdS)z+TestCase.test_compare_subclasses.<locals>.CNrrrrrr�srcSs||kSr\rr�rrrr��rz2TestCase.test_compare_subclasses.<locals>.<lambda>FcSs||kSr\rr�rrrr��rTr�rcSs||kSr\rr�rrrr��rcSs||kSr\rr�rrrr��rcSs||kSr\rr�rrrr��rcSs||kSr\rr�rrrr��rz.not supported between instances of 'B' and 'C')rr�r�rr4rH)r#rGrr�r��expectedrrr�test_compare_subclasses}s&
�:��z TestCase.test_compare_subclassesc
Cs�dD�]�\}}}|j||d���p|dkrt|�td��*t||d�Gdd�d��}Wd�n1sf0Y�nt||d�Gdd�d��}|dkr�|�d	|j�|�d
|j�|�d|j�|�d|j�|�d
|j�n�|dk�r0|�d	|j�|�d
|j�|�d|j�|�d|j�|�d
|j�nR|dk�r�|�d	|j�|�d
|j�|�d|j�|�d|j�|�d
|j�nWd�q1�s�0YqdS)N))FF�neither)FT�	exception)TF�eq_only)TT�both)�eqr�r�z eq must be true if order is truec@seZdZdS�z!TestCase.test_eq_order.<locals>.CNrrrrrr�src@seZdZdSr�rrrrrr�sr�rV�__lt__�__le__�__gt__�__ge__r�r�)r�r4r5r�assertNotInr��assertIn)r#r�r��resultrrrr�
test_eq_order�s6
2


zTestCase.test_eq_ordercCsZtGdd�d��}|�|d�jd�|�td��|�Wd�n1sL0YdS)Nc@seZdZUe�Zeed<dS)z)TestCase.test_field_no_default.<locals>.Cr(N�rrrr3r(r*r+rrrrr�s
rrf�8__init__\(\) missing 1 required positional argument: 'x')rrr(r4rHr`rrr�test_field_no_default�s�zTestCase.test_field_no_defaultcsft��tG�fdd�d��}|�|j��|d�}|�|jd�|`|�|j��|�|�j��dS)Ncs eZdZUe�d�Zeed<dS)z&TestCase.test_field_default.<locals>.C�r1r(N)rrrr3r(rxr+rr�rrr�s
rr^)rxr�assertIsr(rrzrr�r�test_field_default�szTestCase.test_field_defaultcCs�tGdd�d��}|�t��|�Wd�n1s80Y|d�}|�t|�d�tGdd�d��}|dd�}|�t|�d�dS)Nc@s eZdZUedd�Zeed<dS)�$TestCase.test_not_in_repr.<locals>.CF�r9r(Nr�rrrrr�s
rr^z&TestCase.test_not_in_repr.<locals>.C()c@s(eZdZUedd�Zeed<eed<dS)r�Fr�r(rBNr�rrrrr�s
�z*TestCase.test_not_in_repr.<locals>.C(y=20))r�assertRaisesrHrr9rzrrr�test_not_in_repr�s$
zTestCase.test_not_in_reprcCsptGdd�d��}|�|�|dd��|�|dd�|dd��|�|d�|dd��|�|dd�|dd��dS)	Nc@s.eZdZUdZeed<eddd�Zeed<dS)z'TestCase.test_not_in_compare.<locals>.Crr(F�)�comparer1rBN)rrrr(r*r+r3rBrrrrr�s
rrr�r/r^rDr��rrrsr`rrr�test_not_in_compare�szTestCase.test_not_in_comparec	s�dD]�\��}|j��d��rtdd�G��fdd�d��}|dkr^|�t|d��td	��n"|d
kr�|�t|d��td��nWd�q1s�0YqdS)N))TFr3)TTr3)FF�absent)FTr�)NFr�)NTr3)r_r�TrZcs$eZdZUe��dd�Zeed<dS)z)TestCase.test_hash_field_rules.<locals>.Crf)r�r_r1r(Nr�r�r�Zhash_rrrs
rr3rf)rfr�r)r�rrr_)r#r�rrr�r�test_hash_field_rules�szTestCase.test_hash_field_rulescCsftGdd�d��}|�d|�j�tGdd�d��}|�d|d�j�|�t|d��dddd	��dS)
Nc@s eZdZUedd�Zeed<dS)�.TestCase.test_init_false_no_default.<locals>.CF�r8r(Nr�rrrrrs
rr(c@s@eZdZUeed<dZeed<edd�Zeed<dZeed<d	S)
r�r(rrBFr�rcr^�tN)	rrrr*r+rBr3rcr�rrrrrs
rcrrfr^)r�r(rB)rr�r�r�varsr`rrr�test_init_false_no_defaultsz#TestCase.test_init_false_no_defaultcCs`tGdd�d��}t|�}|�|t�|D]$}|�t|�t�|�|j|j	�q*|�
t|�d�|�
|djd�|�
|djt�|�
t|d��|�|dj�|�|dj�|�
|djd�|�
|djt�|�t|d��|�
|dj�|�|dj�|�
|djd	�|�
|djt�|�
t|d	��|�|dj�|�
|dj�dS)
Nc@s<eZdZUeed<eddd�Zeed<edd�Zeed<dS)z%TestCase.test_class_marker.<locals>.Cr(FN�r8r1rBr�rc)	rrrr*r+r3rBrkrcrrrrr$s
rrDrr(r/rBr�rc)rr!�assertIsInstance�tupler��typeZFieldr�r;r+rr r*�assertFalse�hasattrr�r8r9rk�assertIsNoner�)r#rZ
the_fields�frrr�test_class_marker#s.zTestCase.test_class_markercCs�tGdd�d��}tGdd�d|��}|�dd�t|�D�gd��tGdd	�d	|��}|�d
d�t|�D�gd��tGdd
�d
|��}|�dd�t|�D�gd��dS)Nc@s2eZdZUdZeed<dZeed<dZeed<dS)z$TestCase.test_field_order.<locals>.B�B:ar��B:br��B:crtN)rrrr�rkr+r�rtrrrrrGEs
rGc@seZdZUdZeed<dS)z$TestCase.test_field_order.<locals>.C�C:br�N)rrrr�rkr+rrrrrKs
rcSsg|]}|j|jf�qSr�r;r1�r�r�rrrr�Orz-TestCase.test_field_order.<locals>.<listcomp>)�r�r�)r�r�)rtr�c@seZdZUdZeed<dS)z$TestCase.test_field_order.<locals>.D�D:crtN)rrrrtrkr+rrrr�DTs
r�cSsg|]}|j|jf�qSrr�r�rrrr�Xr)r��r�r��rtr�c@s&eZdZUdZeed<dZeed<dS)z$TestCase.test_field_order.<locals>.E�E:ar��E:d�dN)rrrr�rkr+r�rrrr�E]s
r�cSsg|]}|j|jf�qSrr�r�rrrr�br))r�r�r�r�)r�r��rrr!)r#rGrr�r�rrr�test_field_orderDs"���zTestCase.test_field_ordercs\t��tG�fdd�d��}|�t|d��|�t|d��|�|j��|�|jd�dS)NcsFeZdZUeed<edd�Zeed<�Zeed<edd�Z	eed<d	S)
z$TestCase.test_class_attrs.<locals>.Cr(Fr�rBrcrRr�r�N)
rrrr*r+r3rBrcrxr�rr�rrrls
rr(rBrR)rxrr�r�r�rcrr�r`rr�r�test_class_attrshszTestCase.test_class_attrsc
s�tgdgftiddiftt�tdg�ffD�]V\���|j�d���,|�td��d���(tG��fdd�d��}Wd�n1s�0Y|�td��d���(tG��fd	d�d��}Wd�n1s�0YGd
d�d���|�td��(tG��fd
d�d��}Wd�n1�s*0YtG�fdd�d��}tG��fdd�d��}Wd�q*1�sx0Yq*dS)Nr/r��typzmutable default z for field x is not allowedcseZdZU�Z�ed<dS)�8TestCase.test_disallowed_mutable_defaults.<locals>.Pointr(N)rrrr(r+r)�emptyr�rr�Point�s
r�z for field y is not allowedcseZdZU�Z�ed<dS)r�rBN)rrrrBr+r)�	non_emptyr�rrr��s
c@seZdZdS)z;TestCase.test_disallowed_mutable_defaults.<locals>.SubclassNrrrrr�Subclass�rr�z7mutable default .*Subclass'> for field z is not allowedcseZdZU��Z�ed<dS)r�rcN)rrrrcr+r�r�r�rrr��s
cs eZdZU��Ze�ed<dS)�4TestCase.test_disallowed_mutable_defaults.<locals>.CrcN)rrrrcrr+rr�rrr�s
rcs eZdZU��Ze�ed<dS)r�r(N)rrrr(rr+rr�rrr�s
)�list�dict�setr�r4r5r�r#r�rr)r�r�r�r�r� test_disallowed_mutable_defaultsxs2
�
�4
�4�6z)TestCase.test_disallowed_mutable_defaultscs�Gdd�d��tG�fdd�d��}��}||�}||�}|�||�|jj�ddg�|�||�|�|jjddg�|�|j|j�dS)Nc@seZdZdd�ZdS)z<TestCase.test_deliberately_mutable_defaults.<locals>.MutablecSs
g|_dSr\��lrOrrrro�szETestCase.test_deliberately_mutable_defaults.<locals>.Mutable.__init__N�rrrrorrrr�Mutable�srcseZdZU�ed<dS)z6TestCase.test_deliberately_mutable_defaults.<locals>.Cr(N�rrrr+r�rrrr�s
rr/r�)rrr(r�extendr�)r#r�lstZo1Zo2rrr�"test_deliberately_mutable_defaults�sz+TestCase.test_deliberately_mutable_defaultscCs*t�Gdd�d��}|�|d�jd�dS)Nc@seZdZUeed<dS)z#TestCase.test_no_options.<locals>.Cr(Nr)rrrrr�s
rr,r-r`rrr�test_no_options�szTestCase.test_no_optionscCsRtGdd�d��}|�|dd�d�tGdd�d��}|�|dd�|dd��dS)	Nc@seZdZUeed<eed<dS)z&TestCase.test_not_tuple.<locals>.Pointr(rBNr)rrrrr��s
r�r/r��r/r�c@seZdZUeed<eed<dS)z"TestCase.test_not_tuple.<locals>.Cr(rBNr)rrrrr�s
rrD)rrsr�rrr�test_not_tuple�szTestCase.test_not_tuplecCs�tGdd�d��}tGdd�d��}|�|ddd�|ddd��|�|dd	d�d
�|�td��"|dd
d�\}}}Wd�n1s�0YtGdd�d��}|�|ddd�|��dS)Nc@s&eZdZUeed<eed<eed<dS)z2TestCase.test_not_other_dataclass.<locals>.Point3Dr(rBrcNr)rrrr�Point3D�s
rc@s&eZdZUeed<eed<eed<dS)z/TestCase.test_not_other_dataclass.<locals>.DateZyearZmonthZdayNr)rrrr�Date�s
r
i��rDr/r�)r/r�rD�unpackr�rfc@s2eZdZUdZeed<dZeed<dZeed<dS)z4TestCase.test_not_other_dataclass.<locals>.Point3Dv1rr(rBrcN)rrrr(r*r+rBrcrrrr�	Point3Dv1�s
rr)rrsr4rH)r#rr
r(rBrcrrrr�test_not_other_dataclass�s0z!TestCase.test_not_other_dataclasscsnGdd�d�������fdd�}tG��fdd�d��}||�tddd�G��fd	d�d��}||�dS)
Nc@seZdZdS)z-TestCase.test_function_annotations.<locals>.FNrrrrr�F�srcs���|jdt���|jdt���|jd����|jdt���|jdt�t�|j�}��	|j
d�t|j�
��}t|�}��|jd�t|�}��|jd���	|jt���|jtjj���|jtjj�t|�}��|jd���	|jt���|jtjj���|jtjj�t|�}��|jd���	|j����|jtjj�t|�}��|jd���	|jt���|jtjj���tt|�dS)Nr&�j�krrcr#)rr+r*rk�float�complexrmrnror�Zreturn_annotationrqrr�valuesrpr;�
annotationr1Z	Parameterr��kindZPOSITIONAL_OR_KEYWORDr��
StopIteration)r�rn�paramsZparam)rr#rr�validate_class�s:z:TestCase.test_function_annotations.<locals>.validate_classcsPeZdZUeed<eed<�Z�ed<edd�Ze	ed<eddd	�Z
eed
<dS�z-TestCase.test_function_annotations.<locals>.Cr&rrNr�ry@@F�r1r8rc�rrrr*r+rkrr3rrrcrr�rr�rrr!s

rT)rKr[csPeZdZUeed<eed<�Z�ed<edd�Ze	ed<eddd	�Z
eed
<dSrrrr rrr,s

)r)r#rrr)rr�r#r�test_function_annotations�s+
z"TestCase.test_function_annotationscCs�tGdd�d��}|�td��|�Wd�n1s:0Y|�d|j�tGdd�d��}|�td��|�Wd�n1s�0Y|�d|j�dS)Nc@s eZdZUeed�Zeed<dS)z(TestCase.test_missing_default.<locals>.Cr�r(N�rrrr3r<r(r*r+rrrrr9s
r�3__init__\(\) missing 1 required positional argumentr(c@seZdZUeed<dS)z(TestCase.test_missing_default.<locals>.Dr(Nr)rrrrr�Bs
r��rr4rHr�r��r#rr�rrr�test_missing_default6s�$�$zTestCase.test_missing_defaultcCs�tGdd�d��}|�td��|�Wd�n1s:0Y|�d|j�tGdd�d��}|�td��|�Wd�n1s�0Y|�d|j�dS)Nc@s eZdZUeed�Zeed<dS)z0TestCase.test_missing_default_factory.<locals>.C�r2r(Nr"rrrrrOs
rr#r(c@s"eZdZUeeed�Zeed<dS)z0TestCase.test_missing_default_factory.<locals>.Dr0r(Nr"rrrrr�Xs
r�r$r%rrr�test_missing_default_factoryKs�$�$z%TestCase.test_missing_default_factorycCs|�dtt��dS)NzMISSING_TYPE object)r�r9r<rOrrr�test_missing_repraszTestCase.test_missing_reprcCsbtGdd�d��}|�t|j�dg�|�|d���d�|�|d�jd�|�|d�jd�dS)Nc@s6eZdZUeed<ed�dd�Zeed�dd��ZdS)z7TestCase.test_dont_include_other_annotations.<locals>.Cr&)�returncSsdS�Nr�rrOrrrrlhsz;TestCase.test_dont_include_other_annotations.<locals>.C.foocSsdS�NrfrrOrrr�barjsz;TestCase.test_dont_include_other_annotations.<locals>.C.barN)rrrr*r+rl�propertyr-rrrrres
rr&r^r�rf)rrr�r+rlr-r&r`rrr�#test_dont_include_other_annotationsdsz,TestCase.test_dont_include_other_annotationscCs,tGdd�d��}|�t��|�Wd�n1s80YtGdd�d��}|�t��|�Wd�n1sz0Y|d�tdd�Gdd�d��}|�tGdd�d��}|�|�jd	�|�|d
�jd�tdd
�Gdd�d��}|�t��|�Wd�n1�s0YdS)Nc@seZdZdd�ZdS)�"TestCase.test_post_init.<locals>.CcSs
t��dSr\�rrOrrr�
__post_init__vs�0TestCase.test_post_init.<locals>.C.__post_init__N�rrrr2rrrrrtsrc@s"eZdZUdZeed<dd�ZdS)r0r^r&cSs|jdkrt��dS�Nr^)r&rrOrrrr2~s
r3N)rrrr&r*r+r2rrrrr{s
rfFr�c@seZdZdd�ZdS)r0cSs
t��dSr\r1rOrrrr2�sr3Nr4rrrrr�sc@s"eZdZUdZeed<dd�ZdS)r0rr(cSs|jd9_dS�Nr�r?rOrrrr2�sr3N�rrrr(r*r+r2rrrrr�s
rr�r�TrJc@s"eZdZUdZeed<dd�ZdS)r0rr(cSs|jd9_dSr6r?rOrrrr2�sr3Nr7rrrrr�s
)rr�rrr(�FrozenInstanceErrorr`rrr�test_post_initrs($$zTestCase.test_post_initcCs�Gdd�d�}tGdd�d|��}|�|�jd�tGdd�d|��}|�t��|�Wd�n1sl0YtGdd�d|��}|�t��|�Wd�n1s�0YdS)Nc@seZdZdd�ZdS)z(TestCase.test_post_init_super.<locals>.BcSs
t��dSr\r1rOrrrr2�sz6TestCase.test_post_init_super.<locals>.B.__post_init__Nr4rrrrrG�srGc@seZdZdd�ZdS)�(TestCase.test_post_init_super.<locals>.CcSs
d|_dSr,r?rOrrrr2�s�6TestCase.test_post_init_super.<locals>.C.__post_init__Nr4rrrrr�srrfcseZdZ�fdd�Z�ZS)r:cst���dSr\)�superr2rO��	__class__rrr2�sr;)rrrr2�
__classcell__rrr=rr�sc@seZdZdS)r:Nrrrrrr�s)rrr(r�r�r#rGrrrr�test_post_init_super�s$zTestCase.test_post_init_supercsPd�tG�fdd�d��}|���|dd�}|�|j|jfd�|���dS)NFcs.eZdZUeed<eed<e�fdd��ZdS)z/TestCase.test_post_init_staticmethod.<locals>.Cr(rBcsd�dS�NTrr��flagrrr2�sz=TestCase.test_post_init_staticmethod.<locals>.C.__post_init__N)rrrr*r+�staticmethodr2rrCrrr�s
rrDr��rDr�)rr�rr(rBr�rzrrCr�test_post_init_staticmethod�s

z$TestCase.test_post_init_staticmethodcCsLtGdd�d��}|�|j�|dd�}|�|j|jfd�|�|j�dS)Nc@s.eZdZUdZeed<eed<edd��ZdS)z.TestCase.test_post_init_classmethod.<locals>.CFr(rBcSs
d|_dSrBrCr�rrrr2�sz<TestCase.test_post_init_classmethod.<locals>.C.__post_init__N)rrrrDr*r+�classmethodr2rrrrr�s

rrDr�rF)rr�rDrr(rBr�rzrrr�test_post_init_classmethod�s
z#TestCase.test_post_init_classmethodcCs�tGdd�d��}|d�}|�t|�d�|�tt|��d�|�t|j�d�|�|jd�|�|jd�|�|jd	�|�|j	d
�|jd7_|�|jd�|d
�}|�|j
|jfd�|�|jd�|�|jd�|�|jd	�|�|j	d
�dS)Nc@s^eZdZUeed<dZeed<dZeeed<dZeeed<dZ	eeed	<d
Z
eed<dS)
z"TestCase.test_class_var.<locals>.Cr(r^rB��rc���w�r���sN)rrrr*r+rBrcrrLr�rOrrrrr�s
rrfz-TestCase.test_class_var.<locals>.C(x=5, y=10)r�rrJrKrMrNr/��r��r�r^)rrr9r r!r+rcrLr�rOr(rBrzrrr�test_class_var�s$zTestCase.test_class_varcCs$tGdd�d��}|�d|j�dS)Nc@seZdZUeeed<dS)z-TestCase.test_class_var_no_default.<locals>.Cr(N)rrrrr*r+rrrrr�s
rr(�rr�r�r`rrr�test_class_var_no_default�sz"TestCase.test_class_var_no_defaultcCsP|�td��0tGdd�d��}|�d|j�Wd�n1sB0YdS)N�cannot have a default factoryc@s$eZdZUeed�Zeeed<dS)z2TestCase.test_class_var_default_factory.<locals>.Cr'r(N�rrrr3r*r(rr+rrrrrs
rr(�r4rHrr�r�r`rrr�test_class_var_default_factorys�z'TestCase.test_class_var_default_factorycCsDtGdd�d��}|�|jd�tGdd�d��}|�|jd�dS)Nc@seZdZUdZeeed<dS)�/TestCase.test_class_var_with_default.<locals>.Cr^r(N)rrrr(rr*r+rrrrrs
rr^c@s$eZdZUedd�Zeeed<dS)rYr^r�r(N)rrrr3r(rr*r+rrrrrs
r-r`rrr�test_class_var_with_defaultsz$TestCase.test_class_var_with_defaultcCs�tdd�Gdd�d��}|d�}|�t|d��d�|�tt|��d�|�t|j�d�|�|jd�|�|jd	�|�|jd
�|jd7_|�|jd�|d
�}|�|j	|j
fd�|�|jd�|�|jd	�|�|jd
�dS)NTrJc@sReZdZUeed<dZeed<dZeeed<dZeeed<dZ	eeed	<d
S)z)TestCase.test_class_var_frozen.<locals>.Cr(r^rBrJrcrKrLrMr�N)
rrrr*r+rBrcrrLr�rrrrrs

rrfz4TestCase.test_class_var_frozen.<locals>.C(x=5, y=10)r�rJrKrMr/rPr�rQ)rrr9r r!r+rcrLr�r(rBrzrrr�test_class_var_frozens zTestCase.test_class_var_frozencCs$tGdd�d��}|�d|j�dS)Nc@seZdZUeeed<dS)z,TestCase.test_init_var_no_default.<locals>.Cr(N)rrr�InitVarr*r+rrrrr7s
rr(rSr`rrr�test_init_var_no_default5sz!TestCase.test_init_var_no_defaultcCsP|�td��0tGdd�d��}|�d|j�Wd�n1sB0YdS)NrUc@s$eZdZUeed�Zeeed<dS)z1TestCase.test_init_var_default_factory.<locals>.Cr'r(N)rrrr3r*r(r\r+rrrrrBs
rr(rWr`rrr�test_init_var_default_factory=s�z&TestCase.test_init_var_default_factorycCsDtGdd�d��}|�|jd�tGdd�d��}|�|jd�dS)Nc@seZdZUdZeeed<dS)�.TestCase.test_init_var_with_default.<locals>.Cr^r(N)rrrr(r\r*r+rrrrrJs
rr^c@s$eZdZUedd�Zeeed<dS)r_r^r�r(N)rrrr3r(r\r*r+rrrrrOs
r-r`rrr�test_init_var_with_defaultHsz#TestCase.test_init_var_with_defaultcCs.tGdd�d��}|dd�}|�|jd�dS)Nc@s2eZdZUdZeed<dZeeed<dd�ZdS)z!TestCase.test_init_var.<locals>.CNr(�
init_paramcSs|jdur|d|_dSr6r?)r#rarrrr2Zs
z/TestCase.test_init_var.<locals>.C.__post_init__)	rrrr(r*r+rar\r2rrrrrUs
rr^)rar�r-rzrrr�
test_init_varTs
zTestCase.test_init_varcCsZ|�ttjt�|�ttt�d�|�tttt�d�|�tttt�d�dS)N�dataclasses.InitVar[int]z%dataclasses.InitVar[typing.List[int]]zdataclasses.InitVar[list[int]])rr\r*r�r9rr�rOrrr�test_init_var_preserve_typeas��z$TestCase.test_init_var_preserve_typecCsltGdd�d��}|dd�}|�t|�ddi�tGdd�d|��}|ddd	d
�}|�t|�ddd
��dS)Nc@s"eZdZUeed<eeed<dS)z0TestCase.test_init_var_inheritance.<locals>.Baser(�	init_baseN)rrrr*r+r\rrrrrbos
rbrr^r(c@s*eZdZUeed<eeed<dd�ZdS)z-TestCase.test_init_var_inheritance.<locals>.CrB�init_derivedcSs|j||_|j||_dSr\�r(rB)r#rerfrrrr2~sz;TestCase.test_init_var_inheritance.<locals>.C.__post_init__N�rrrr*r+r\r2rrrrrys
r��2�3��erg)rrr�)r#rbr�rrtrrr�test_init_var_inheritanceks
z"TestCase.test_init_var_inheritancecs�tGdd�d��}|d�}|d�}|�|jd�|�|jg�|�||�|�|j|j�|�t|ddg��ddgf�g�tG�fdd�d��}|d�}|d�}|�|jd�|�|jg�|�||�|�|j|j�|�t|ddg��ddgf�tGdd�d��}|�t|��d�|�|�jg�td	d
�Gdd�d��}|�t|��gf�|�t|��td��tGd
d�d��}|�t|��gf�tGdd�d��}|�|�|dg��dS)Nc@s(eZdZUeed<eed�Zeed<dS)�(TestCase.test_default_factory.<locals>.Cr(r'rBN)rrrr*r+r3r�rBrrrrr�s
rrDrfr/cs0eZdZUeed<e�fdd�d�Zeed<dS)ror(cs�Sr\rrrrrr��rz1TestCase.test_default_factory.<locals>.C.<lambda>r'rBN)rrrr*r+r3rBr�rrrrr�s
c@s"eZdZUeedd�Zeed<dS)roF)r2r9r(N�rrrr3r�r(r+rrrrr�s
z*TestCase.test_default_factory.<locals>.C()TrZc@s"eZdZUeedd�Zeed<dS)roF)r2r_r(Nrprrrrr�s
rc@s"eZdZUeedd�Zeed<dS)roF�r2r8r(Nrprrrrr�s
c@s"eZdZUeedd�Zeed<dS)roF)r2r�r(Nrprrrrr�s
)	rrr(rB�assertIsNot�astupler�r9r_)r#rZc0�c1rrr�test_default_factory�sBzTestCase.test_default_factorycsLt��tG�fdd�d��}|�j|��jd�|�j|��jd�dS)Ncs"eZdZUe�dd�Zeed<dS)z5TestCase.test_default_factory_with_no_init.<locals>.CFrqr(N)rrrr3r(r�r+r��factoryrrr�s
rr/r��rrr(r�
call_countr`rrvr�!test_default_factory_with_no_init�sz*TestCase.test_default_factory_with_no_initcslt��tG�fdd�d��}|�j|��jd�|�|d�jd�|��jd�|�j|��jd�dS)Ncs eZdZUe�d�Zeed<dS)zBTestCase.test_default_factory_not_called_if_value_given.<locals>.Cr'r(Nr�rrvrrr�s
rr/r^r�rxr`rrvr�.test_default_factory_not_called_if_value_given�sz7TestCase.test_default_factory_not_called_if_value_givencCs~tGdd�d��}tGdd�d|��}|�|�ji�|�|�ji�|�|�jd�tGdd�d|��}|�|�ji�dS)Nc@s eZdZUeed�Zeed<dS)z2TestCase.test_default_factory_derived.<locals>.Foor'r(N)rrrr3r�r(r+rrrr�Foo�s
r|c@seZdZUdZeed<dS)z2TestCase.test_default_factory_derived.<locals>.Barr/rBN�rrrrBr*r+rrrr�Bar�s
r~r/c@seZdZdS)z2TestCase.test_default_factory_derived.<locals>.BazNrrrrr�Baz�sr)rrr(rB)r#r|r~rrrr�test_default_factory_derived�sz%TestCase.test_default_factory_derivedcCs�tGdd�d��}Gdd�d|�}tGdd�d|��}|dd�}|�|j|jfd	�|�td
��|jWd�n1s|0YGdd�d|�}|d
d�}|�|j|jfd�dS)Nc@seZdZUeed<dS)z3TestCase.test_intermediate_non_dataclass.<locals>.Ar(Nr)rrrr�A�s
r�c@seZdZUeed<dS)z3TestCase.test_intermediate_non_dataclass.<locals>.BrBNr)rrrrrG�s
rGc@seZdZUeed<dS)z3TestCase.test_intermediate_non_dataclass.<locals>.CrcNr)rrrrr�s
rr/rD)r/rDzobject has no attributec@seZdZUeed<dS)z3TestCase.test_intermediate_non_dataclass.<locals>.Dr�Nr)rrrrr�s
r�r�rf)r�rf)rrr(rcr4�AttributeErrorrB)r#r�rGrrtr�r�rrr�test_intermediate_non_dataclass�s
�$
z(TestCase.test_intermediate_non_dataclasscCsB|�td��"tGdd�d��}Wd�n1s40YdS)NrUc@s$eZdZUeed�Zeeed<dS)z1TestCase.test_classvar_default_factory.<locals>.Cr'r(NrVrrrrrs
r�r4rHrr`rrr�test_classvar_default_factory
s
�z&TestCase.test_classvar_default_factorycs�Gdd�d�}|�td��|�tt��|�t|��|�t|���tGdd�d���tG�fdd�d��}�d�}||d	�}|�t���|�t|��|�t|j��|�t|j��|�t|j��dS)
Nc@seZdZdS)z0TestCase.test_is_dataclass.<locals>.NotDataClassNrrrrr�NotDataClasssr�rc@seZdZUeed<dS)z%TestCase.test_is_dataclass.<locals>.Cr(Nr)rrrrrs
rcseZdZU�ed<eed<dS)z%TestCase.test_is_dataclass.<locals>.Dr��eN�rrrr+r*r�rrrr�"s
r�r^r�)r��is_dataclassr*rr�r(r�r�)r#r�r�rtr�rr�r�test_is_dataclasss 
zTestCase.test_is_dataclassc
Cs*Gdd�d�}|�t|��|�}Gdd�d�}|�}g|_||fD]�}|j|d���|�t|��|�td��t|�Wd�n1s�0Y|�td��t|�Wd�n1s�0Y|�td��t|dd�Wd�n1s�0YWd�qD1�s0YqDdS)	Nc@seZdZdd�ZdS)zATestCase.test_is_dataclass_when_getattr_always_returns.<locals>.AcSsdS�Nrr)r#�keyrrr�__getattr__3szMTestCase.test_is_dataclass_when_getattr_always_returns.<locals>.A.__getattr__N)rrrr�rrrrr�2sr�c@seZdZdS)zATestCase.test_is_dataclass_when_getattr_always_returns.<locals>.BNrrrrrrG9srG)�objz'should be called on dataclass instancesrr?)	r�r�Z__dataclass_fields__r�r4rH�asdictrs�replace)r#r�r�rGr�r�rrr�-test_is_dataclass_when_getattr_always_returns0s&&z6TestCase.test_is_dataclass_when_getattr_always_returnscCsRtGdd�dtj��}|�t|��|tt�}|�tt|���|�t|��dS)Nc@seZdZUeed<eed<dS)z2TestCase.test_is_dataclass_genericalias.<locals>.A�origin�argsN)rrrr�r+rrrrr�Ks
r�)r�types�GenericAliasr�r�r�r*r�)r#r�r�rrr�test_is_dataclass_genericaliasJs
z'TestCase.test_is_dataclass_genericaliascCs0tGdd�d��}|�t|�t|dd���dS)Nc@seZdZUeed<eed<dS)z:TestCase.test_helper_fields_with_class_instance.<locals>.Cr(rBN)rrrr*r+rrrrrrXs
rrgr�r`rrr�&test_helper_fields_with_class_instanceUsz/TestCase.test_helper_fields_with_class_instancecCs�|�td��td�Wd�n1s*0YGdd�d�}|�td��t|�Wd�n1sl0Y|�td��t|��Wd�n1s�0YdS)Nzdataclass type or instancerc@seZdZdS)z0TestCase.test_helper_fields_exception.<locals>.CNrrrrrrerr)r4rHr!r`rrr�test_helper_fields_exception_s&&z%TestCase.test_helper_fields_exceptioncCs�tGdd�d��}|dd�}|�t|�ddd��|�t|�t|��|�t|�t|��d|_|�t|�ddd��|�tt|��t�dS)Nc@seZdZUeed<eed<dS)z&TestCase.test_helper_asdict.<locals>.Cr(rBNr)rrrrrms
rr/r�rgr,)rrr�rrr(r�r�r�rzrrr�test_helper_asdictks
zTestCase.test_helper_asdictcCs~tGdd�d��}|�td��t|�Wd�n1s<0Y|�td��tt�Wd�n1sp0YdS)Nc@seZdZUeed<eed<dS)z8TestCase.test_helper_asdict_raises_on_classes.<locals>.Cr(rBNr)rrrrr|s
r�dataclass instance)rr4rHr�r*r`rrr�$test_helper_asdict_raises_on_classeszs&z-TestCase.test_helper_asdict_raises_on_classescCsxtGdd�d��}g}|d|�}t|�}|�|d|�|�|d|�|d�}t|�}|d�d�|�|jg�dS)Nc@s,eZdZUeed<eed�Zeeed<dS)z2TestCase.test_helper_asdict_copy_values.<locals>.Cr(r'rBN�	rrrr*r+r3r�rBrrrrrr�s
rr/rB)rr�rrr�appendrB)r#r�initialrtr�rrr�test_helper_asdict_copy_values�s
z'TestCase.test_helper_asdict_copy_valuescs�tGdd�d���tG�fdd�d��}|d�dd��}t|�}|�|dddd�d	��|�t|�t|��d
|j_|�t|�ddd
d�d	��dS)Nc@seZdZUeed<eed<dS)z2TestCase.test_helper_asdict_nested.<locals>.UserId�token�groupNr)rrrr�UserId�s
r�cseZdZUeed<�ed<dS)z0TestCase.test_helper_asdict_nested.<locals>.Userr;r:Nrjr�r�rr�User�s
r��Joe�{r/)r�r��r;r:r�)rr�rrrr:r�)r#r��ur�rr�r�test_helper_asdict_nested�s�z"TestCase.test_helper_asdict_nestedc	stGdd�d���tG�fdd�d��}tG�fdd�d��}tG�fdd�d��}�d	d
�}�dd�}|d
||g�}|d
||f�}|d
||d��}|�t|�d
d	d
d�ddd�gd��|�t|�d
d	d
d�ddd�fd��|�t|�d
d	d
d�ddd�d�d��dS)Nc@seZdZUeed<eed<dS)z<TestCase.test_helper_asdict_builtin_containers.<locals>.Userr;r:N�rrrrkr+r*rrrrr��s
r�cs"eZdZUeed<e�ed<dS)zATestCase.test_helper_asdict_builtin_containers.<locals>.GroupListr:�usersN�rrrr*r+rr�r�rr�	GroupList�s
r�cs&eZdZUeed<e�dfed<dS)zBTestCase.test_helper_asdict_builtin_containers.<locals>.GroupTupler:.r�N�rrrr*r+rrr�rr�
GroupTuple�s
r�cs&eZdZUeed<ee�fed<dS)zATestCase.test_helper_asdict_builtin_containers.<locals>.GroupDictr:r�N�rrrr*r+r	rkrr�rr�	GroupDict�s
r��Alicer/�Bobr�r�rv�secondr�)r:r��rrr��	r#r�r�r�r�r��gl�gt�gdrr�r�%test_helper_asdict_builtin_containers�s,

�
�
�z.TestCase.test_helper_asdict_builtin_containerscsxtGdd�d���tG�fdd�d��}|�t|�dg���dddgii�|�t|�ddi���ddddiii�dS)	Nc@seZdZUeed<dS)zDTestCase.test_helper_asdict_builtin_object_containers.<locals>.Childr�N�rrrrxr+rrrr�Child�s
r�cseZdZU�ed<dS)zETestCase.test_helper_asdict_builtin_object_containers.<locals>.Parent�childNrr�r�rr�Parent�s
r�r/r�r�r�r��r#r�rr�r�,test_helper_asdict_builtin_object_containers�s$z5TestCase.test_helper_asdict_builtin_object_containerscCs�tGdd�d��}|dd�}t|td�}|�|tddg��|�|t|td��d|_t|td�}|�|td	dg��|�t|�t�dS)
Nc@seZdZUeed<eed<dS)z.TestCase.test_helper_asdict_factory.<locals>.Cr(rBNr)rrrrr�s
rr/r��Zdict_factory)r(r/)rBr�r,)r(r,)rr�rrrrr(r�r��r#rrtr�rrr�test_helper_asdict_factory�s
z#TestCase.test_helper_asdict_factorycs�tdd��tG�fdd�d��}|d�d|d�dd	d
��d��}t|�}|�|d�dd�dd	d
�d�d�d��t|td
�}|�|d�dd�dd	d
�d�d�d��|�t|�t�|�t|dd�t�dS)N�T�a b ccseZdZUeed<�ed<dS)z1TestCase.test_helper_asdict_namedtuple.<locals>.Cr(rBNrjr�r�rrr�s
r�outerr/�innerri��
r�rgr�rB)rrr�rrr�r�r�rr�r�test_helper_asdict_namedtuple�s0
 
���
���	z&TestCase.test_helper_asdict_namedtuplecCsNtGdd�d��}tdd�}||d�di�}|�t|�d|dd�dii�dS)	Nc@seZdZUeed<dS)z5TestCase.test_helper_asdict_namedtuple_key.<locals>.Cr�N)rrrr�r+rrrrrs
rr�r�zan arr��r�)rrrr�)r#rr�rtrrr�!test_helper_asdict_namedtuple_key�s

z*TestCase.test_helper_asdict_namedtuple_keycs�Gdd�dtdd���tG�fdd�d��}�d�}||�}t|�}|�|d�dd	�i�|�|d|�|�|d��d�dS)
Nc@seZdZdd�ZdS)z9TestCase.test_helper_asdict_namedtuple_derived.<locals>.TcSs|jSr\r�rOrrr�my_asz>TestCase.test_helper_asdict_namedtuple_derived.<locals>.T.my_aN)rrrr�rrrrr�sr�ZTbaser�cseZdZU�ed<dS)z9TestCase.test_helper_asdict_namedtuple_derived.<locals>.Cr�Nrrr�rrrs
rrr�r�)rrr�rrrr�)r#rr�rtr�rr�r�%test_helper_asdict_namedtuple_derived
sz.TestCase.test_helper_asdict_namedtuple_derivedcCs�tGdd�d��}|d�}|�t|�d�|�t|�t|��|�t|�t|��d|_|�t|�d�|�tt|��t�dS)Nc@s"eZdZUeed<dZeed<dS)z'TestCase.test_helper_astuple.<locals>.Cr(rrBNrCrrrrrs
rr/)r/rr,)r/r,)rrrsrrrBr�r�r�rzrrr�test_helper_astupleszTestCase.test_helper_astuplecCs~tGdd�d��}|�td��t|�Wd�n1s<0Y|�td��tt�Wd�n1sp0YdS)Nc@seZdZUeed<eed<dS)z9TestCase.test_helper_astuple_raises_on_classes.<locals>.Cr(rBNr)rrrrr-s
rr�)rr4rHrsr*r`rrr�%test_helper_astuple_raises_on_classes+s&z.TestCase.test_helper_astuple_raises_on_classescCsxtGdd�d��}g}|d|�}t|�}|�|d|�|�|d|�|d�}t|�}|d�d�|�|jg�dS)Nc@s,eZdZUeed<eed�Zeeed<dS)z3TestCase.test_helper_astuple_copy_values.<locals>.Cr(r'rBNr�rrrrr7s
rr/)rrsrrrr�rB)r#rr�rtr�rrr�test_helper_astuple_copy_values6s
z(TestCase.test_helper_astuple_copy_valuescs|tGdd�d���tG�fdd�d��}|d�dd��}t|�}|�|d�|�t|�t|��d	|j_|�t|�d
�dS)Nc@seZdZUeed<eed<dS)z3TestCase.test_helper_astuple_nested.<locals>.UserIdr�r�Nr)rrrrr�Fs
r�cseZdZUeed<�ed<dS)z1TestCase.test_helper_astuple_nested.<locals>.Userr;r:Nrjrr�rrr�Js
r�r�r�r/)r�)r�r/r�)r�)r�r�)rrsrrrr:r�)r#r�r�r�rr�r�test_helper_astuple_nestedEsz#TestCase.test_helper_astuple_nestedc	s�tGdd�d���tG�fdd�d��}tG�fdd�d��}tG�fdd�d��}�d	d
�}�dd�}|d
||g�}|d
||f�}|d
||d��}|�t|�d
ddgf�|�t|�d�|�t|�d
ddd�f�dS)Nc@seZdZUeed<eed<dS)z=TestCase.test_helper_astuple_builtin_containers.<locals>.Userr;r:Nr�rrrrr�Vs
r�cs"eZdZUeed<e�ed<dS)zBTestCase.test_helper_astuple_builtin_containers.<locals>.GroupListr:r�Nr�rr�rrr�Zs
r�cs&eZdZUeed<e�dfed<dS)zCTestCase.test_helper_astuple_builtin_containers.<locals>.GroupTupler:.r�Nr�rr�rrr�^s
r�cs&eZdZUeed<ee�fed<dS)zBTestCase.test_helper_astuple_builtin_containers.<locals>.GroupDictr:r�Nr�rr�rrr�bs
r�r�r/r�r�rr��r�r/�r�r�)r)r�r��rrrsr�rr�r�&test_helper_astuple_builtin_containersUs 

z/TestCase.test_helper_astuple_builtin_containerscsptGdd�d���tG�fdd�d��}|�t|�dg���dgff�|�t|�ddi���ddiff�dS)Nc@seZdZUeed<dS)zETestCase.test_helper_astuple_builtin_object_containers.<locals>.Childr�Nr�rrrrr�ps
r�cseZdZU�ed<dS)zFTestCase.test_helper_astuple_builtin_object_containers.<locals>.Parentr�Nrrr�rrr�ts
r�r/r�r�r�rr�r�-test_helper_astuple_builtin_object_containersos z6TestCase.test_helper_astuple_builtin_object_containerscs�tGdd�d��}tdd���fdd�}|dd�}t||d	�}|�|�dd��|�|t||d	��d
|_t||d	�}|�|�d
d��|�t|���dS)Nc@seZdZUeed<eed<dS)z/TestCase.test_helper_astuple_factory.<locals>.Cr(rBNr)rrrrr|s
r�NTzx ycs�|�Sr\r)r�r�rr�nt�sz0TestCase.test_helper_astuple_factory.<locals>.ntr/r��Z
tuple_factoryr,)rrrsrrrr(r�r�)r#rr�rtr�rr�r�test_helper_astuple_factory{s

z$TestCase.test_helper_astuple_factorycs�tdd��tG�fdd�d��}|d�d|d�dd	d
��d��}t|�}|�|d�ddd�f�t|td
�}|�|d�dd�dd	d
�gd�g�dS)Nr�r�cseZdZUeed<�ed<dS)z2TestCase.test_helper_astuple_namedtuple.<locals>.Cr(rBNrjrr�rrr�s
rr�r/r�rir�r�r�)r�)rir�r�r�)rrrsrr�)r#rrtr�rr�r�test_helper_astuple_namedtuple�s
 z'TestCase.test_helper_astuple_namedtuplecCsNdttd�i}tdd|�}t|�}|�||�|�t|dd��ddd��dS)Nr+rgrrr/r�)r*r�rrr��r#Zcls_dictr�Zcls1rrr�test_dynamic_class_creation�s
z$TestCase.test_dynamic_class_creationcCsTttd�tdd�d�}tdd|�}t|�}|�||�|�t|d��ddd��dS)Nrgrfr�)r+rBrrr/)r*r3r�rrr�r�rrr�'test_dynamic_class_creation_using_field�s�z0TestCase.test_dynamic_class_creation_using_fieldcs�tGdd�d��}g��fdd�}||_|dd�}|�d�d�|�d�d�|�d	gf�d
�|�dgf�d�|�d
��|�d�d�dS)Nc@sjeZdZUeed<e�Zeed<eedd�Zeed<eed�Z	eed<eddd	�Z
eed
<dZeed<dS)
z&TestCase.test_init_in_order.<locals>.Cr�r�Frqrtr'r�r�rr�r�N)rrrr*r+r3r�r�rtr�r�r�rrrrr�s
rcs��||f�dSr\)r��r#r;�value�Zcallsrr�setattr�sz,TestCase.test_init_in_order.<locals>.setattrrr/)r�r)r�r/rtr�r�rD)r�r�)r�r�r�)r�__setattr__rr�)r#rr�rtrr�r�test_init_in_order�s
zTestCase.test_init_in_ordercCs�tGdd�d��}|d�}|�d|j�|�d|j�|�d|j�|�d|j�|�|jd�|�d	|j�|�|jd�|�d|j�|�|jd�|�d|j�|�|jg�|�d|j�|�|j	g�|�d|j�|�d	|j�|�|jd�dS)
Nc@s\eZdZUeed<eedd�Zeed<eed�Zeed<eddd�Z	eed	<d
Z
eed<dS)
z'TestCase.test_items_in_dicts.<locals>.Cr�Frqr�r'rtr�rr�rr�N)rrrr*r+r3r�r�rtr�r�rrrrr�s

rrr�r�rtr�r�r�)
rr�r�r�rr�r�r�r�rtrzrrr�test_items_in_dicts�s&zTestCase.test_items_in_dictscCs*tGdd�d��}|�|�d�jd�dS)Nc@s"eZdZUeed<edd��ZdS)z:TestCase.test_alternate_classmethod_constructor.<locals>.Cr(cSsd}||�S)Nr�r)r��filenameZ
value_in_filerrr�	from_file�szDTestCase.test_alternate_classmethod_constructor.<locals>.C.from_fileN)rrrr*r+rHr�rrrrr�s
rr�r�)rrr�r(r`rrr�&test_alternate_classmethod_constructor�s	z/TestCase.test_alternate_classmethod_constructorcCs�tGdd�d��}|�t|�dj�|�tt|�dj�d�|�td��"dt|�djd<Wd�n1st0YdS)Nc@seZdZUeed<dS)z/TestCase.test_field_metadata_default.<locals>.Cr&Nr)rrrrr�s
rr� does not support item assignmentrD�test)rr�r!�metadatarr r4rHr`rrr�test_field_metadata_default�s�z$TestCase.test_field_metadata_defaultcsF|�t��"tGdd�d��}Wd�n1s20Yi�tG�fdd�d��}|�t|�dj�|�tt|�dj�d�d�d<|�tt|�dj�d�|�t|�djdd�|�td��"dt|�djd	<Wd�n1s�0Yd
ddd
��tG�fdd�d��}|�tt|�dj�d�|�t|�djd	d
�|�t|�djdd�|�t|�djdd�d�d<|�tt|�dj�d�|�t|�djdd�|�t	��"t|�djdWd�n1�s�0Y|�td��"dt|�djd	<Wd�n1�s80YdS)Nc@s eZdZUedd�Zeed<dS)�/TestCase.test_field_metadata_mapping.<locals>.Cr�r�r&N�rrrr3r&r*r+rrrrrs
rcs eZdZUe�d�Zeed<dS�r�r�r&Nr�r�r�rrrs
rr/rlr�rDr�r^Z42Zthree)r�r-rDcs eZdZUe�d�Zeed<dSr�r�rr�rrr s
r-r�Zbaz)
r�rHrr�r!r�rr r4�KeyErrorr`rr�r�test_field_metadata_mappings>.�02�z$TestCase.test_field_metadata_mappingcs�Gdd�d��tG�fdd�d��}|�tt|�dj�d�|�t|�djdd�|�t��"t|�djd	Wd�n1s�0Y|�t|�djd
d�dS)Nc@s$eZdZdd�Zdd�Zdd�ZdS)zDTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpacec[s|j�|�dSr\)r��update)r#�kwrrrro5szMTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__init__cSs|dkrdSt||�S)N�xyzzy�plugh)r�)r#�itemrrr�__getitem__8szPTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__getitem__cSs
|j��Sr\)r��__len__rOrrrr=szLTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__len__N)rrrrorrrrrr�SimpleNameSpace4srcs&eZdZUe�dd�d�Zeed<dS)z6TestCase.test_field_metadata_custom_mapping.<locals>.Cr^r�r�r&Nr�r�rrrr@s
rrr/r�r^r�r�r�)rrr r!r�r�r�r`rrr�"test_field_metadata_custom_mapping2s0z+TestCase.test_field_metadata_custom_mappingcsXtd��tG�fdd�dt���}|d�}|�|jd�|�|jd�t|t}dS)Nr�cs"eZdZU�ed<dZeed<dS)z5TestCase.test_generic_dataclasses.<locals>.LabeledBox�content�	<unknown>�labelN)rrrr+rrkrr�rr�
LabeledBoxNs
rr,r)rrr
rrrrr*)r#rZbox�Aliasrr�r�test_generic_dataclassesKsz!TestCase.test_generic_dataclassescs�td��td��tG��fdd�dt��f��}tGdd�d|t�f��}|t}|ddd	�}|�t|�d
�Gdd�d|t�f�}|t}|d
d�}|�|��d�dS)N�Sr�cseZdZU�ed<�ed<dS)z-TestCase.test_generic_extending.<locals>.Baser(rBNrr�rr�rrrb^s
rbc@seZdZUeed<dS)z4TestCase.test_generic_extending.<locals>.DataDerivedZ	new_fieldNrjrrrr�DataDerivedcs
r
r�test1�test2)rrrc@seZdZdd�ZdS)z7TestCase.test_generic_extending.<locals>.NonDataDerivedcSs|jSr\�rBrOrrr�
new_methodkszBTestCase.test_generic_extending.<locals>.NonDataDerived.new_methodN)rrrrrrrr�NonDataDerivedjsrr^��?)	rrr
r*rkrrsrr)r#rbr
r	rtrrrr�test_generic_extendingZs 
zTestCase.test_generic_extendingcs�td��tG�fdd�dt���}tdd�fdt�dfg|tt�fddid	�}|�|td
d�jd�|�|td
dd�jd�|�|td
dd�j	d�|�}|�|td
d�j
d
�|�|j||ttf�dS)
Nr�cseZdZU�ed<dS)z-TestCase.test_generic_dynamic.<locals>.Parentr(Nrrr�rrr�ts
r�r�rBrcrUr,)�bases�	namespacer/r�rD)
rrr
r�rr*r�rcrrUr(�__mro__rx)r#r�r�r	rr�r�test_generic_dynamicqs�zTestCase.test_generic_dynamicc
Cs8tGdd�d��atGdd�d��atGdd�d��atd�}d|_td�tdd�td�|td�tdgd	��g}|D]�}ttjd�D]�}|j||d
���t�	t�
||��}|�|j|j�|�|j|j�|�
||�d|_t�	t�
||��}|�|j|j�|�|j|j�Wd�q�1�s&0Yq�qtdS)Nc@s"eZdZUeed<dZeed<dS)�Pr(rrBNrCrrrrr�s
rc@s*eZdZUeed<eddd�Zeed<dS)�Qr(rFrrBN�rrrr*r+r3rBrrrrr�s
rc@s,eZdZUeed<eed�Zeeed<dS)�Rr(r'rBNr�rrrrr�s
rr/r�)r�rDr�)�sample�protor,)rrrrrB�range�pickle�HIGHEST_PROTOCOLr��loads�dumpsrr(rr)r#�qZsamplesrrZ
new_sampleZanother_new_samplerrr�test_dataclassses_pickleable�s(,z%TestCase.test_dataclassses_pickleableN)arrrr%r'r.r7r=r@rIrarhrwr{r|r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr	rrr!r&r(r)r/r9rArGrIrRrTrXrZr[r]r^r`rbrdrnrurzr{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr
rrr%rrrrrs�,5!6(!$-F/

9
!


+rc@s$eZdZdd�Zdd�Zdd�ZdS)�TestFieldNoAnnotationcCsB|�td��"tGdd�d��}Wd�n1s40YdS)N�)'f' is a field but has no type annotationc@seZdZe�ZdS)z>TestFieldNoAnnotation.test_field_without_annotation.<locals>.CN�rrrr3r�rrrrr�srr�r`rrr�test_field_without_annotation�s
�z3TestFieldNoAnnotation.test_field_without_annotationcCsVtGdd�d��}|�td��$tGdd�d|��}Wd�n1sH0YdS)Nc@seZdZUeed<dS)zUTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base.<locals>.Br�Nr)rrrrrG�s
rGr'c@seZdZe�ZdS)zUTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base.<locals>.CNr(rrrrr�sr�rr4rHr@rrr�4test_field_without_annotation_but_annotation_in_base�s�zJTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_basecCsRGdd�d�}|�td��$tGdd�d|��}Wd�n1sD0YdS)Nc@seZdZUeed<dS)zcTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclass.<locals>.Br�Nr)rrrrrG�s
rGr'c@seZdZe�ZdS)zcTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclass.<locals>.CNr(rrrrr�srr�r@rrr�Btest_field_without_annotation_but_annotation_in_base_not_dataclass�s�zXTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclassN)rrrr)r+r,rrrrr&�s
r&c@sleZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�
TestDocStringcCs |�|�dd�|�dd��dS)N� �)rr�)r#r�r�rrr�assertDocStrEqual�szTestDocString.assertDocStrEqualcCs$tGdd�d��}|�|jd�dS)Nc@seZdZUeed<dS)z?TestDocString.test_existing_docstring_not_overridden.<locals>.Cr(Nr)rrrrr�s
rzLorem ipsum)rr�__doc__r`rrr�&test_existing_docstring_not_overridden�sz4TestDocString.test_existing_docstring_not_overriddencCs$tGdd�d��}|�|jd�dS)Nc@seZdZdS)z1TestDocString.test_docstring_no_fields.<locals>.CNrrrrrr�srzC()�rr0r1r`rrr�test_docstring_no_fields�sz&TestDocString.test_docstring_no_fieldscCs$tGdd�d��}|�|jd�dS)Nc@seZdZUeed<dS)z1TestDocString.test_docstring_one_field.<locals>.Cr(Nr)rrrrr�s
rzC(x:int)r3r`rrr�test_docstring_one_field�sz&TestDocString.test_docstring_one_fieldcCs$tGdd�d��}|�|jd�dS)Nc@seZdZUeed<eed<dS)z2TestDocString.test_docstring_two_fields.<locals>.Cr(rBNr)rrrrr�s
rzC(x:int, y:int)r3r`rrr�test_docstring_two_fields�sz'TestDocString.test_docstring_two_fieldscCs$tGdd�d��}|�|jd�dS)Nc@s&eZdZUeed<eed<eed<dS)z4TestDocString.test_docstring_three_fields.<locals>.Cr(rBrcN�rrrr*r+rkrrrrr�s
rzC(x:int, y:int, z:str)r3r`rrr�test_docstring_three_fields�sz)TestDocString.test_docstring_three_fieldscCs$tGdd�d��}|�|jd�dS)Nc@seZdZUdZeed<dS)z>TestDocString.test_docstring_one_field_with_default.<locals>.CrDr(NrErrrrr�s
rz
C(x:int=3)r3r`rrr�%test_docstring_one_field_with_default�sz3TestDocString.test_docstring_one_field_with_defaultcCs$tGdd�d��}|�|jd�dS)Nc@s&eZdZUdZeeed�fed<dS)zCTestDocString.test_docstring_one_field_with_default_none.<locals>.CNr()rrrr(rr*r�r+rrrrr�s
rzC(x:Optional[int]=None)r3r`rrr�*test_docstring_one_field_with_default_none�sz8TestDocString.test_docstring_one_field_with_default_nonecCs$tGdd�d��}|�|jd�dS)Nc@seZdZUeeed<dS)z2TestDocString.test_docstring_list_field.<locals>.Cr(N)rrrrr*r+rrrrrs
rzC(x:List[int])r3r`rrr�test_docstring_list_field�sz'TestDocString.test_docstring_list_fieldcCs$tGdd�d��}|�|jd�dS)Nc@s$eZdZUeed�Zeeed<dS)zGTestDocString.test_docstring_list_field_with_default_factory.<locals>.Cr'r(N)	rrrr3r�r(rr*r+rrrrrs
rzC(x:List[int]=<factory>)r3r`rrr�.test_docstring_list_field_with_default_factorysz<TestDocString.test_docstring_list_field_with_default_factorycCs$tGdd�d��}|�|jd�dS)Nc@seZdZUeed<dS)z3TestDocString.test_docstring_deque_field.<locals>.Cr(N)rrrrr+rrrrrs
rzC(x:collections.deque)r3r`rrr�test_docstring_deque_field
sz(TestDocString.test_docstring_deque_fieldcCs$tGdd�d��}|�|jd�dS)Nc@s eZdZUeed�Zeed<dS)zHTestDocString.test_docstring_deque_field_with_default_factory.<locals>.Cr'r(N)rrrr3rr(r+rrrrrs
rz C(x:collections.deque=<factory>)r3r`rrr�/test_docstring_deque_field_with_default_factorysz=TestDocString.test_docstring_deque_field_with_default_factoryN)rrrr0r2r4r5r6r8r9r:r;r<r=r>rrrrr-�s	r-c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestInitcCs�Gdd�d�}tGdd�d|��}|d�}|�|jd�|�dt|��tdd�Gd	d�d|��}|�}|�|jd�|�|jd
�dS)Nc@seZdZdd�ZdS)z&TestInit.test_base_has_init.<locals>.BcSs
d|_dS)NrR�rcrOrrrrosz/TestInit.test_base_has_init.<locals>.B.__init__NrrrrrrGsrGc@seZdZUdZeed<dS)�&TestInit.test_base_has_init.<locals>.Crr(NrErrrrr's
rr^rcFr�c@seZdZUdZeed<dS)rAr^r(NrErrrrr0s
rR)rrr(r�r�rc)r#rGrrtrrr�test_base_has_inits	zTestInit.test_base_has_initcCsTtdd�Gdd�d�}|�|�jd�tdd�Gdd�d�}|�|�jd�dS)NFr�c@seZdZUdZeed<dS)� TestInit.test_no_init.<locals>.Crr&N)rrrr&r*r+rrrrr9s
rrc@s"eZdZUdZeed<dd�ZdS)rCr�r&cSs
d|_dS�NrD�r&rOrrrro@sz)TestInit.test_no_init.<locals>.C.__init__N)rrrr&r*r+rorrrrr>s
rD)rrr&r`rrr�test_no_init7s

zTestInit.test_no_initcCs|tGdd�d��}|�|d�jd�tdd�Gdd�d��}|�|d�jd	�td
d�Gdd�d��}|�|d�jd
�dS)Nc@seZdZUeed<dd�ZdS)�)TestInit.test_overwriting_init.<locals>.Cr(cSsd||_dSr6r?�r#r(rrrroKs�2TestInit.test_overwriting_init.<locals>.C.__init__N�rrrr*r+rorrrrrHs
rrDrTr�c@seZdZUeed<dd�ZdS)rGr(cSsd||_dSr6r?rHrrrroRsrINrJrrrrrOs
r��Fc@seZdZUeed<dd�ZdS)rGr(cSsd||_dSr6r?rHrrrroYsrINrJrrrrrVs
rfr^r-r`rrr�test_overwriting_initDszTestInit.test_overwriting_initcCs`Gdd�dt�}tGdd�d|��}|�|d�jd�tGdd�d|��}|�|d�jd�dS)	Nc@seZdZUeed<dS)z.TestInit.test_inherit_from_protocol.<locals>.Pr�Nr)rrrrras
rc@seZdZUeed<dS)z.TestInit.test_inherit_from_protocol.<locals>.Cr�Nr)rrrrrds
rrfc@seZdZdd�ZdS)z.TestInit.test_inherit_from_protocol.<locals>.DcSs|d|_dSr6r�)r#r�rrrrolsz7TestInit.test_inherit_from_protocol.<locals>.D.__init__Nrrrrrr�jsr�r^)r
rrr�)r#rrr�rrr�test_inherit_from_protocol]sz#TestInit.test_inherit_from_protocolN)rrrrBrFrLrMrrrrr?s
r?c@s$eZdZdd�Zdd�Zdd�ZdS)�TestReprcCs�tGdd�d��}tGdd�d|��}|d�}|�t|�d�tGdd�d|��}|�t|��d	�tGd
d�d��}|�t|�d��d�|�t|���d
�dS)Nc@seZdZUeed<dS)zTestRepr.test_repr.<locals>.Br(Nr)rrrrrGts
rGc@seZdZUdZeed<dS)�TestRepr.test_repr.<locals>.Cr^rBNr}rrrrrxs
rr�z(TestRepr.test_repr.<locals>.C(x=4, y=10)c@seZdZUdZeed<dS)zTestRepr.test_repr.<locals>.Dr�r(NrErrrrr�s
r�z)TestRepr.test_repr.<locals>.D(x=20, y=10)c@s0eZdZeGdd�d��ZeGdd�d��ZdS)rOc@seZdZUeed<dS)zTestRepr.test_repr.<locals>.C.Dr&Nr)rrrrr��s
r�c@seZdZdS)zTestRepr.test_repr.<locals>.C.ENrrrrrr��sr�N)rrrrr�r�rrrrr�srz$TestRepr.test_repr.<locals>.C.D(i=0)z!TestRepr.test_repr.<locals>.C.E())rrr9r�r�)r#rGrr$r�rrr�	test_reprsszTestRepr.test_reprcCsbtdd�Gdd�d��}|�t�d�t|d���tdd�Gdd�d��}|�t|d��d�dS)	NFr�c@seZdZUeed<dS)� TestRepr.test_no_repr.<locals>.Cr(Nr)rrrrr�s
rz+.TestRepr.test_no_repr.<locals>.C object atrDc@seZdZUeed<dd�ZdS)rQr(cSsdS)N�C-classrrOrrr�__repr__�sz)TestRepr.test_no_repr.<locals>.C.__repr__N�rrrr*r+rSrrrrr�s
rR)rr�rr9rr`rrr�test_no_repr�s
�zTestRepr.test_no_reprcCs�tGdd�d��}|�t|d��d�tdd�Gdd�d��}|�t|d��d�tdd�Gd	d�d��}|�t|d��d�dS)
Nc@seZdZUeed<dd�ZdS)�)TestRepr.test_overwriting_repr.<locals>.Cr(cSsdS�Nr(rrOrrrrS�s�2TestRepr.test_overwriting_repr.<locals>.C.__repr__NrTrrrrr�s
rrr(Tr�c@seZdZUeed<dd�ZdS)rVr(cSsdSrWrrOrrrrS�srXNrTrrrrr�s
Fc@seZdZUeed<dd�ZdS)rVr(cSsdSrWrrOrrrrS�srXNrTrrrrr�s
rgr`rrr�test_overwriting_repr�szTestRepr.test_overwriting_reprN)rrrrPrUrYrrrrrNrsrNc@seZdZdd�Zdd�ZdS)�TestEqcCsltdd�Gdd�d��}|�|d�|d��|d�}|�||�tdd�Gdd�d��}|�|d�d�dS)	NF�r�c@seZdZUeed<dS)�TestEq.test_no_eq.<locals>.Cr(Nr)rrrrr�s
rrrDc@seZdZUeed<dd�ZdS)r\r(cSs|dkSr5rrTrrrrV�sz#TestEq.test_no_eq.<locals>.C.__eq__NrXrrrrr�s
r^)rrsrrzrrr�
test_no_eq�szTestEq.test_no_eqcCs�tGdd�d��}|�|d�d�|�|d�d�tdd�Gdd�d��}|�|d�d�|�|d�d�td	d�Gd
d�d��}|�|d�d�|�|d�d�dS)Nc@seZdZUeed<dd�ZdS)�%TestEq.test_overwriting_eq.<locals>.Cr(cSs|dkSrDrrTrrrrV�s�,TestEq.test_overwriting_eq.<locals>.C.__eq__NrXrrrrr�s
rr/rDTr[c@seZdZUeed<dd�ZdS)r^r(cSs|dkSr+rrTrrrrV�sr_NrXrrrrr�s
r�Fc@seZdZUeed<dd�ZdS)r^r(cSs|dkSr,rrTrrrrV�sr_NrXrrrrr�s
rfr�r`rrr�test_overwriting_eq�szTestEq.test_overwriting_eqN)rrrr]r`rrrrrZ�srZc@s$eZdZdd�Zdd�Zdd�ZdS)�TestOrderingcCsZttGdd�d���}|�|d�d�|�|d�d�|�|d�d�|�|d�d�dS)Nc@seZdZUeed<dd�ZdS)z5TestOrdering.test_functools_total_ordering.<locals>.Cr(cSs
|j|kSr\r?rTrrrr��sz<TestOrdering.test_functools_total_ordering.<locals>.C.__lt__N�rrrr*r+r�rrrrr�s
rr���r/)rrr�r�r�r�r`rrr�test_functools_total_ordering�sz*TestOrdering.test_functools_total_orderingcCs�tdd�Gdd�d��}|�d|j�|�d|j�|�d|j�|�d|j�tdd�Gd	d�d��}|�d|j�|�d|j�|�d|j�dS)
NFr�c@seZdZUeed<dS)�%TestOrdering.test_no_order.<locals>.Cr(Nr)rrrrr�s
rr�r�r�r�c@seZdZUeed<dd�ZdS)rer(cSsdSrSrrTrrrr�	sz,TestOrdering.test_no_order.<locals>.C.__lt__Nrbrrrrr	s
rSr`rrr�
test_no_order�szTestOrdering.test_no_ordercCs|�td��(tdd�Gdd�d��}Wd�n1s:0Y|�td��(tdd�Gdd�d��}Wd�n1s~0Y|�td��(tdd�Gd	d�d��}Wd�n1s�0Y|�td
��(tdd�Gdd�d��}Wd�n1�s0YdS)NzACannot overwrite attribute __lt__.*using functools.total_orderingTr�c@seZdZUeed<dd�ZdS)�.TestOrdering.test_overwriting_order.<locals>.Cr(cSsdSr\rrOrrrr�	sz5TestOrdering.test_overwriting_order.<locals>.C.__lt__Nrbrrrrr	s
rzACannot overwrite attribute __le__.*using functools.total_orderingc@seZdZUeed<dd�ZdS)rgr(cSsdSr\rrOrrrr�	sz5TestOrdering.test_overwriting_order.<locals>.C.__le__N)rrrr*r+r�rrrrr	s
zACannot overwrite attribute __gt__.*using functools.total_orderingc@seZdZUeed<dd�ZdS)rgr(cSsdSr\rrOrrrr�(	sz5TestOrdering.test_overwriting_order.<locals>.C.__gt__N)rrrr*r+r�rrrrr%	s
zACannot overwrite attribute __ge__.*using functools.total_orderingc@seZdZUeed<dd�ZdS)rgr(cSsdSr\rrOrrrr�1	sz5TestOrdering.test_overwriting_order.<locals>.C.__ge__N)rrrr*r+r�rrrrr.	s
r�r`rrr�test_overwriting_order	s(�.�.�.�z#TestOrdering.test_overwriting_orderN)rrrrdrfrhrrrrra�srac@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestHashcCs6tdd�Gdd�d��}|�t|dd��td��dS)NTrZc@seZdZUeed<eed<dS)z$TestHash.test_unsafe_hash.<locals>.Cr(rBNr7rrrrr6	s
rr/rl)r/rl�rrr_r`rrr�test_unsafe_hash5	szTestHash.test_unsafe_hashc	s�dd�}�fdd�}tgd�d�D]r\}\}}}}}|||||d|�|||||d|�||||�||�||�d|�||||�||�||�d|�q"dS)	NcSs|durdS|rdSdS)N)rDrr)r�rrr�non_bool=	s
z*TestHash.test_hash_rules.<locals>.non_boolc	sB�j||||d���|dkr\|r@t|||d�Gdd�d��}nt|||d�Gdd�d��}|dkr���d|j���|jd�n�|d	kr�|s���d|j�n~|d
krȈ�d|j���|jd�nV|dk�r��td��,t|||d�Gdd�d��}Wd�n1�s0YnWd�n1�s40YdS)
N)�caser[r�rKr�)r[r�rKc@seZdZdd�ZdS)�1TestHash.test_hash_rules.<locals>.test.<locals>.CcSsdSr�rrOrrrrPL	s�:TestHash.test_hash_rules.<locals>.test.<locals>.C.__hash__Nr]rrrrrJ	src@seZdZdS)rnNrrrrrrO	sr�rPr/�nonerYc@seZdZdd�ZdS)rncSsdSr�rrOrrrrPj	sroNr]rrrrrh	s)	r�rr�r�ZassertIsNotNoner�r�r4rH)rmr[r�rKZ	with_hashr�rrOrrr�E	s.
�

2z&TestHash.test_hash_rules.<locals>.test))FFFr/r/)FFTr/r/)FTFrpr/)FTTr�r/)TFFr�r�)TFTr�r�)TTFr�r�)TTTr�r�r/FT)r�)	r#rlr�rmr[r�rKZres_no_defined_hashZres_defined_hashrrOr�test_hash_rules<	s1	�
zTestHash.test_hash_rulescCs�tGdd�d��}|�|d�|d��|�|d�|d��tdd�Gdd�d��}|�|d�|d��|�t|d��t|d���tddd	�Gd
d�d��}|�|d�|d��|�|d�|d��|�t|d��t|d���dS)Nc@seZdZUeed<dd�ZdS)� TestHash.test_eq_only.<locals>.Cr&cSs|j|jkSr\rErTrrrrV�	s�'TestHash.test_eq_only.<locals>.C.__eq__NrXrrrrr�	s
rr/r�TrZc@seZdZUeed<dd�ZdS)rrr&cSs|j|jkSr\rErTrrrrV�	srsNrXrrrrr�	s
r)r[r�c@seZdZUeed<dd�ZdS)rrr&cSs|jdko|j|jkSrDrErTrrrrV�	srsNrXrrrrr�	s
rD)rrrsr_r`rrr�test_eq_only�	s
zTestHash.test_eq_onlycCs`tdd�Gdd�d��}|�t|��td��tdd�Gdd�d��}|�t|��td��dS)NTrJc@seZdZdS�z%TestHash.test_0_field_hash.<locals>.CNrrrrrr�	srrrZc@seZdZdSrurrrrrr�	srjr`rrr�test_0_field_hash�	szTestHash.test_0_field_hashcCs�tdd�Gdd�d��}|�t|d��td��|�t|d��td��tdd	�Gd
d�d��}|�t|d��td��|�t|d��td��dS)NTrJc@seZdZUeed<dS�z%TestHash.test_1_field_hash.<locals>.Cr(Nr)rrrrr�	s
rr�)r�r,�r,rZc@seZdZUeed<dSrwr)rrrrr�	s
rjr`rrr�test_1_field_hash�	szTestHash.test_1_field_hashcCsLGdd�d�}ddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dffD�]~\}}}}|j||||d	���L|du�r|du�rtGd
d�d|��}nh|du�r:t|d�Gd
d�d|��}nB|du�r`t|d�Gdd�d|��}nt||d�Gdd�d|��}|dk�r�|d�}|�td��t|�Wd�n1�s�0Yn`|dk�r�|�t|d��d�n@|dk�r|�|jtj�n$|dk�r&|�t|d��td��nWd�q�1�s<0Yq�dS)Nc@seZdZdd�ZdS)z(TestHash.test_hash_no_args.<locals>.BasecSsdSrMrrOrrrrP�	sz1TestHash.test_hash_no_args.<locals>.Base.__hash__Nr]rrrrrb�	srbZ
unhashableFrx�baseTr�)rKr�rzr�c@seZdZUeed<dS�z%TestHash.test_hash_no_args.<locals>.Cr&Nr)rrrrr�	s
rr[c@seZdZUeed<dSr{r)rrrrr�	s
rJc@seZdZUeed<dSr{r)rrrrr�	s
)rKr�c@seZdZUeed<dSr{r)rrrrr�	s
r^�unhashable typerNr,rx)	rxr�rr4rHr_rr�rP)r#rbrKr�rzr�rrtrrr�test_hash_no_args�	sV

















�



*


zTestHash.test_hash_no_argsN)	rrrrkrqrtrvryr}rrrrri4	sN#
ric@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�
TestFrozencCsptdd�Gdd�d��}|d�}|�|jd�|�t��d|_Wd�n1sT0Y|�|jd�dS)NTrJc@seZdZUeed<dS)z!TestFrozen.test_frozen.<locals>.Cr&Nr)rrrrr
s
rr^rf)rrr&r�r8rzrrr�test_frozen
s$zTestFrozen.test_frozencCs�tdd�Gdd�d��}tdd�Gdd�d|��}|dd�}|�t��d	|_Wd�n1sb0Y|�t��d
|_Wd�n1s�0Y|�|jd�|�|jd�dS)NTrJc@seZdZUeed<dS)z"TestFrozen.test_inherit.<locals>.Cr&Nr)rrrrr
s
rc@seZdZUeed<dS)z"TestFrozen.test_inherit.<locals>.DrNr)rrrrr�!
s
r�rr^rfr)rr�r8r&rr�r#rr�r�rrr�test_inherit
s
$$zTestFrozen.test_inheritcCs\tdd�Gdd�d��}|�td��$tGdd�d|��}Wd�n1sN0YdS)NTrJc@seZdZdS)z>TestFrozen.test_inherit_nonfrozen_from_empty_frozen.<locals>.CNrrrrrr.
sr�5cannot inherit non-frozen dataclass from a frozen onec@seZdZUeed<dS)z>TestFrozen.test_inherit_nonfrozen_from_empty_frozen.<locals>.DrNr)rrrrr�4
s
r�r*r%rrr�(test_inherit_nonfrozen_from_empty_frozen-
s�z3TestFrozen.test_inherit_nonfrozen_from_empty_frozencCsLtGdd�d��}tGdd�d|��}|d�}|�|jd�|�||�dS)Nc@seZdZdS)z7TestFrozen.test_inherit_nonfrozen_from_empty.<locals>.CNrrrrrr9
src@seZdZUeed<dS)z7TestFrozen.test_inherit_nonfrozen_from_empty.<locals>.DrNr)rrrrr�=
s
r�rD)rrrr�r�rrr�!test_inherit_nonfrozen_from_empty8
sz,TestFrozen.test_inherit_nonfrozen_from_emptyc
Cs�dD]�}|j|d���tdd�Gdd�d��}|rDGdd�d|�}n|}|�td	��$tGd
d�d|��}Wd�n1s~0YWd�q1s�0YqdS)N�TF��intermediate_classTrJc@seZdZUeed<dS)z8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.Cr&Nr)rrrrrJ
s
rc@seZdZdS)z8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.INrrrrr�IO
rr�r�c@seZdZdS)z8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.DNrrrrrr�U
sr��r�rr4rH�r#r�rr�r�rrr�"test_inherit_nonfrozen_from_frozenG
s�z-TestFrozen.test_inherit_nonfrozen_from_frozenc
Cs�dD]�}|j|d���tGdd�d��}|r>Gdd�d|�}n|}|�td��*tdd	�Gd
d�d|��}Wd�n1s~0YWd�q1s�0YqdS)Nr�r�c@seZdZUeed<dS)z8TestFrozen.test_inherit_frozen_from_nonfrozen.<locals>.Cr&Nr)rrrrr\
s
rc@seZdZdS)z8TestFrozen.test_inherit_frozen_from_nonfrozen.<locals>.INrrrrrr�a
rr�z5cannot inherit frozen dataclass from a non-frozen oneTrJc@seZdZdS)z8TestFrozen.test_inherit_frozen_from_nonfrozen.<locals>.DNrrrrrr�g
sr�r�r�rrr�"test_inherit_frozen_from_nonfrozenY
s�z-TestFrozen.test_inherit_frozen_from_nonfrozenc	Cs�dD]�}|j|d��RGdd�d�}|r:Gdd�d|�}n|}tdd�Gd	d
�d
|��}Wd�n1sl0Y|d�}|�t��d|_Wd�q1s�0YqdS)
Nr�r�c@seZdZdS)z4TestFrozen.test_inherit_from_normal_class.<locals>.CNrrrrrrn
src@seZdZdS)z4TestFrozen.test_inherit_from_normal_class.<locals>.INrrrrrr�r
rr�TrJc@seZdZUeed<dS)z4TestFrozen.test_inherit_from_normal_class.<locals>.Dr&Nr)rrrrr�v
s
r�r^rf)r�rr�r8r&)r#r�rr�r�r�rrr�test_inherit_from_normal_classk
s0z)TestFrozen.test_inherit_from_normal_classcCs�tdd�Gdd�d��}Gdd�d|�}|d�}|�|jd�|�|jd�d|_|�t��d	|_Wd�n1sx0Y|�t��d	|_Wd�n1s�0Y|�|jd�|�|jd�|�|jd�dS)
NTrJc@s"eZdZUeed<dZeed<dS)z4TestFrozen.test_non_frozen_normal_derived.<locals>.Dr(r^rBNrCrrrrr��
s
r�c@seZdZdS)z4TestFrozen.test_non_frozen_normal_derived.<locals>.SNrrrrrr�
srrDr^rf)rrr(rB�cachedr�r8)r#r�rrOrrr�test_non_frozen_normal_derived~
s$$z)TestFrozen.test_non_frozen_normal_derivedcCs�|�td��(tdd�Gdd�d��}Wd�n1s:0Y|�td��(tdd�Gdd�d��}Wd�n1s~0Ytdd�Gd	d�d��}|�|d
�jd�dS)Nz&Cannot overwrite attribute __setattr__TrJc@seZdZUeed<dd�ZdS)�-TestFrozen.test_overwriting_frozen.<locals>.Cr(cSsdSr\rrOrrrr��
s�9TestFrozen.test_overwriting_frozen.<locals>.C.__setattr__N�rrrr*r+r�rrrrr�
s
rz&Cannot overwrite attribute __delattr__c@seZdZUeed<dd�ZdS)r�r(cSsdSr\rrOrrr�__delattr__�
sz9TestFrozen.test_overwriting_frozen.<locals>.C.__delattr__N)rrrr*r+r�rrrrr�
s
Fc@seZdZUeed<dd�ZdS)r�r(cSs|d|jd<dS)Nr�r()r�r�rrrr��
sr�Nr�rrrrr�
s
r^r�)r4rHrrr(r`rrr�test_overwriting_frozen�
s�.�.z"TestFrozen.test_overwriting_frozencCs`tdd�Gdd�d��}t|d��|�td��t|i��Wd�n1sR0YdS)NTrJc@seZdZUeed<dS)z&TestFrozen.test_frozen_hash.<locals>.Cr(N)rrrrr+rrrrr�
s
rrDr|)rr_r4rHr`rrr�test_frozen_hash�
s
zTestFrozen.test_frozen_hashN)
rrrrr�r�r�r�r�r�r�r�r�rrrrr~
sr~c@seZdZdd�Zdd�ZdS)�	TestSlotscCs�tGdd�d��}|�td��|�Wd�n1s:0Y|d�}|�|jd�d|_|�|jd�|�td��d|_Wd�n1s�0YdS)Nc@seZdZUdZeed<dS)z TestSlots.test_simple.<locals>.Cr?r(N�rrr�	__slots__rr+rrrrr�
s
rr�r^rfz'C' object has no attribute 'y')rr4rHrr(r�rBrzrrr�test_simple�
s�$zTestSlots.test_simplecCsNtGdd�d��}tGdd�d|��}|dd�}|�|j|jfd�d|_dS)	Nc@seZdZUdZeed<dS)z0TestSlots.test_derived_added_field.<locals>.Baser?r(Nr�rrrrrb�
s
rbc@seZdZUeed<eed<dS)z3TestSlots.test_derived_added_field.<locals>.Derivedr(rBNr)rrrr�Derived�
s
r�r/r�r
r^)rrr(rBrc)r#rbr�r�rrr�test_derived_added_field�
s
z"TestSlots.test_derived_added_fieldN)rrrr�r�rrrrr��
sr�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestDescriptorscsnGdd�d��tG�fdd�d��}|�|jjd�tG�fdd�d��}|�|jjd�|�|�jd�dS)Nc@seZdZdd�Zdd�ZdS)z(TestDescriptors.test_set_name.<locals>.DcSs|d|_dSrW�r;�r#�ownerr;rrr�__set_name__�
sz5TestDescriptors.test_set_name.<locals>.D.__set_name__cSs|durdS|S�Nr/r)r#�instancer�rrr�__get__�
sz0TestDescriptors.test_set_name.<locals>.D.__get__N)rrrr�r�rrrrr��
sr�cseZdZU��Zeed<dS)�(TestDescriptors.test_set_name.<locals>.CrtN)rrrrtr*r+r�r�rrr�
s
r�cxcs$eZdZUe��dd�Zeed<dS)r�FrrtN�rrrr3rtr*r+rr�rrr�
s
r/�rrrtr;r`rr�r�
test_set_name�
s
zTestDescriptors.test_set_namecs8Gdd�d��tG�fdd�d��}|�|jjd�dS)Nc@seZdZdd�ZdS)z.TestDescriptors.test_non_descriptor.<locals>.DcSs|d|_dSrWr�r�rrrr�
sz;TestDescriptors.test_non_descriptor.<locals>.D.__set_name__N)rrrr�rrrrr�	sr�cs$eZdZUe��dd�Zeed<dS)z.TestDescriptors.test_non_descriptor.<locals>.CFrrtNr�rr�rrr
s
rr�r�r`rr�r�test_non_descriptorsz#TestDescriptors.test_non_descriptorcsFGdd�d�}|��t��_tG�fdd�d��}|��jjd�dS)Nc@seZdZdS)z2TestDescriptors.test_lookup_on_instance.<locals>.DNrrrrrr�sr�cs"eZdZUe�dd�Zeed<dS)z2TestDescriptors.test_lookup_on_instance.<locals>.CFrr&Nr�rr�rrrs
rr�rr�rrry)r#r�rrr�r�test_lookup_on_instancesz'TestDescriptors.test_lookup_on_instancecs@Gdd�d��t��_tG�fdd�d��}|��jjd�dS)Nc@seZdZdS)z/TestDescriptors.test_lookup_on_class.<locals>.DNrrrrrr�$sr�cs$eZdZUe��dd�Zeed<dS)z/TestDescriptors.test_lookup_on_class.<locals>.CFrr&Nr�rr�rrr)s
rr/r�r`rr�r�test_lookup_on_class"s
z$TestDescriptors.test_lookup_on_classN)rrrr�r�r�r�rrrrr��
s
r�c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestStringAnnotationsc	sddD]Z�|j�d��:tG�fdd�d��}|�|�d|j�Wd�q1sT0YqdS)N)
z
ClassVar[int]zClassVar [int] ClassVar [int]rz
 ClassVar ztyping.ClassVar[int]ztyping.ClassVar[str]z typing.ClassVar[str]ztyping .ClassVar[str]ztyping. ClassVar[str]ztyping.ClassVar [str]ztyping.ClassVar [ str]ztyping.ClassVar.[int]ztyping.ClassVar+�ZtypestrcseZdZU�ed<dS)z.TestStringAnnotations.test_classvar.<locals>.Cr(Nrrr�rrrJs
rr()r�rr�r�r`rr�r�
test_classvar1sz#TestStringAnnotations.test_classvarc	sbdD]X�|j�d��8tG�fdd�d��}|�|d�jd�Wd�q1sR0YqdS)N)
�CVz
t.ClassVarzt.ClassVar[int]ztyping..ClassVar[int]ZClassvarz
Classvar[int]ztyping.ClassVarx[int]ztypong.ClassVar[int]zdataclasses.ClassVar[int]ztypingxClassVar[str]r�cseZdZU�ed<dS)z3TestStringAnnotations.test_isnt_classvar.<locals>.Cr(Nrrr�rrrbs
rr^�r�rrr(r`rr�r�test_isnt_classvarUs
z(TestStringAnnotations.test_isnt_classvarc
s�dD]|�|j�d��\tG�fdd�d��}|�td��|d�jWd�n1sX0YWd�q1sv0YqdS)N)
zInitVar[int]zInitVar [int] InitVar [int]r\z	 InitVar rczdataclasses.InitVar[str]z dataclasses.InitVar[str]zdataclasses .InitVar[str]zdataclasses. InitVar[str]zdataclasses.InitVar [str]zdataclasses.InitVar [ str]zdataclasses.InitVar.[int]zdataclasses.InitVar+r�cseZdZU�ed<dS)z-TestStringAnnotations.test_initvar.<locals>.Cr(Nrrr�rrrs
rzobject has no attribute 'x'r/)r�rr4r�r(r`rr�r�test_initvaris�z"TestStringAnnotations.test_initvarc	sbdD]X�|j�d��8tG�fdd�d��}|�|d�jd�Wd�q1sR0YqdS)N)�IVz
dc.InitVarzxdataclasses.xInitVarztyping.xInitVar[int]r�cseZdZU�ed<dS)z2TestStringAnnotations.test_isnt_initvar.<locals>.Cr(Nrrr�rrr�s
rr^r�r`rr�r�test_isnt_initvar�s
z'TestStringAnnotations.test_isnt_initvarcCsXddlm}ddlm}ddlm}ddlm}||||fD�]}|j|d���|jrb|�d�}n|��}|�|j	d�|�
dd	d
dd�}d
D]n}|j|d��N|�td|�d���t
||�Wd�n1s�0YWd�q�1s�0Yq�|j�r$|�d|j�|�|jd�n|�d|j�Wd�q<1�sH0Yq<dS)Nr)�dataclass_module_1)�dataclass_module_1_str)�dataclass_module_2)�dataclass_module_2_str)�mr^r�r/r�rDr�)Ziv0Ziv1Ziv2Ziv3)�
field_namezobject has no attribute 'r��not_iv4)r�r�r�r�r�r�Z
USING_STRINGSr�rZcv0r�r4r�r�r�r�r�r�)r#r�r�r�r�r�rtr�rrr�!test_classvar_module_level_import�s*�
Hz7TestStringAnnotations.test_classvar_module_level_importcCsHddlm}|�t|j�d|ji�|�t|jj�|jtd�d��dS)Nr)�dataclass_textannorl)rlr*)r�r�rrr~r|ror�)r#r�rrr�test_text_annotations�s�
��z+TestStringAnnotations.test_text_annotationsN)	rrrr�r�r�r�r�r�rrrrr�0s$)r�c@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�TestMakeDataclasscCsZtddtfdttdd�fgddd�id	�}|d
�}|�|j|jfd�|�|��d�dS)
Nrr(rBrfr��add_onecSs
|jdSr�r?rOrrrr��rz/TestMakeDataclass.test_simple.<locals>.<lambda>�rr^)r^rfri)r�r*r3rr(rBr�rzrrrr��s�
�zTestMakeDataclass.test_simplecCs6i}tddtfdttdd�fg|d�}|�|i�dS)Nrr(rBrfr�r�)r�r*r3r)r#�nsrrrr�test_no_mutate_namespace�s��z*TestMakeDataclass.test_no_mutate_namespacecCsdGdd�d�}Gdd�d�}tddtfg||fd�}|d�}|�||�|�||�|�||�dS)	Nc@seZdZdS)z*TestMakeDataclass.test_base.<locals>.Base1Nrrrrr�Base1�sr�c@seZdZdS)z*TestMakeDataclass.test_base.<locals>.Base2Nrrrrr�Base2�sr�rr(�rr�)r�r*r��r#r�r�rrtrrr�	test_base�s�zTestMakeDataclass.test_basecCs�tGdd�d��}Gdd�d�}tddtfg||fd�}|�td��|d	�}Wd�n1sb0Y|d
d	�}|�||�|�||�|�||�|�|j|jfd�dS)Nc@seZdZUeed<dS)z4TestMakeDataclass.test_base_dataclass.<locals>.Base1r(Nr)rrrrr��s
r�c@seZdZdS)z4TestMakeDataclass.test_base_dataclass.<locals>.Base2Nrrrrrr��sr�rrBr�zrequired positionalr�r/r
)	rr�r*r4rHr�rr(rBr�rrr�test_base_dataclass�s�&
z%TestMakeDataclass.test_base_dataclasscCs`dd�}tddtfdttfgd|id�}|dd	�}|�t|�dd
i�|�tt|��d�dS)NcSs|j|9_dSr\r?�r#rBrrr�	post_init�sz2TestMakeDataclass.test_init_var.<locals>.post_initrr(rBr2r�r�rDrr/)r�r*r\rr�r r!)r#r�rrtrrrrb�s
��
zTestMakeDataclass.test_init_varc	Cs~tddtfdttdfdtttdd�fg�}|d�}|�t|�ddi�|�tt|��d�|�|jd�|�|j	d�dS)	Nrr(rBr^rcr�r�r/)
r�r*rr3rr�r r!rBrcrzrrrrRs��z TestMakeDataclass.test_class_varc	Cs�tddtfdttdfdtttdd�fgdd	�}|�d
t|��|�dt|��|�td��tdgdd
�}Wd�n1s�0YdS)Nrr(rBr^rcr�r�Fr�rorSzunexpected keyword argument)Zxxinit)	r�r*rr3r�r�r�r4rHr`rrr�test_other_paramss���z#TestMakeDataclass.test_other_paramscCs�tdgd��}|ddd�}|�t|�dddd��|�|jdddd��tdddtfd	g�}|ddd�}|�t|�dddd��|�|jdtdd��dS)
Nr��r(rBrcr/r�rDz
typing.Anyr(rBrc)r�rr�r+r*rzrrr�
test_no_types)s
�
�zTestMakeDataclass.test_no_typesc
Cs�dD]j}|j|d��J|�td��tdd|g�Wd�n1sF0YWd�q1sd0Yqtdd�fD]j}|j|d��J|�td��tdd|g�Wd�n1s�0YWd�q|1s�0Yq|dS)	N)r)r/r�rDr�)�	bad_fieldzInvalid field: rr�cSs|Sr\rr?rrrr�BrzCTestMakeDataclass.test_invalid_type_specification.<locals>.<lambda>zhas no len\(\))r�r4rHr�r)r#r�rrr�test_invalid_type_specification8sL�z1TestMakeDataclass.test_invalid_type_specificationc
CsvdD]l}|j|d��L|�td�� td|d|g�Wd�n1sH0YWd�q1sf0YqdS)N)r��ab�r3zField name duplicatedrr��r�r4rHr��r#r3rrr�test_duplicate_field_namesHsz,TestMakeDataclass.test_duplicate_field_namesc
Cs�dD]�}|j|d���|�td��tdd|g�Wd�n1sF0Y|�td��td|g�Wd�n1s~0Y|�td��td|dg�Wd�n1s�0YWd�q1s�0YqdS)N)�for�async�await�asr�zmust not be keywordsrr�r�r�rrr�test_keyword_field_namesNs,*z*TestMakeDataclass.test_keyword_field_namesc
Cs�dD]�}|j|d���|�td��tdd|g�Wd�n1sF0Y|�td��td|g�Wd�n1s~0Y|�td��td|dg�Wd�n1s�0YWd�q1s�0YqdS)N)�()�x,yr�2@3r/zlittle johnny tablesr�zmust be valid identifiersrr�r�r�rrr�test_non_identifier_field_namesXs,*z1TestMakeDataclass.test_non_identifier_field_namescCstdgd��dS)Nr)�_Z_aZa_aZa_)r�rOrrr�test_underscore_field_namesbsz-TestMakeDataclass.test_underscore_field_namesc	CsVdD]L}|j|d��,t|ddg�}|�|j|�Wd�q1sF0YqdS)N)r�r�rr�r/)�	classnamer�r�)r�r�rr)r#r�rrrr�test_funny_class_names_namesgsz.TestMakeDataclass.test_funny_class_names_namesN)rrrr�r�r�r�rbrRr�r�r�r�r�r�r�r�rrrrr��s
	


r�c@steZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestReplacecCsNtdd�Gdd�d��}|dd�}t|dd�}|�|jd�|�|jd�dS)	NTrJc@seZdZUeed<eed<dS)zTestReplace.test.<locals>.Cr(rBNr)rrrrrqs
rr/r�rDr?)rr�rr(rB�r#rrtrtrrrr�ps
zTestReplace.testcCs^tdd�Gdd�d��}|dd�}t|dd�}|�|j|j|j|jfd	�|�|j|j|j|jfd
�|�td�� t|ddd
d�Wd�n1s�0Y|�td��,t|dd�t|ddd
d�Wd�n1s�0Y|�t	d��d|_Wd�n1�s0Y|�t
d��t|ddd�}Wd�n1�sP0YdS)NTrJc@sFeZdZUeed<eed<eddd�Zeed<eddd�Zeed<d	S)
z"TestReplace.test_frozen.<locals>.Cr(rBFr^r�rcrRr�N)rrrr*r+r3rcr�rrrrr|s
rr/r�rDr?)r/r�r^rR)rDr�r^rR�
init=Falser�rj)r(rcr�r@zcannot assign to field 'x'z3__init__\(\) got an unexpected keyword argument 'a'rf)r(r�)rr�rr(rBrcr�r4r5r8rHr�rrrr{s
..&zTestReplace.test_frozencCs^tdd�Gdd�d��}|dd�}|�td��t|dd	�}Wd�n1sP0YdS)
NTrJc@seZdZUeed<eed<dS)z.TestReplace.test_invalid_field_name.<locals>.Cr(rBNr)rrrrr�s
rr/r�z3__init__\(\) got an unexpected keyword argument 'z'rDr@�rr4rHr�r�rrr�test_invalid_field_name�s

z#TestReplace.test_invalid_field_namecCs�tdd�Gdd�d��}|�td��t|dd�Wd�n1sF0Y|�td��tddd�Wd�n1s~0YdS)	NTrJc@seZdZUeed<eed<dS)z*TestReplace.test_invalid_object.<locals>.Cr(rBNr)rrrrr�s
rr�rDr?rr�r`rrr�test_invalid_object�s*zTestReplace.test_invalid_objectcCs�tGdd�d��}|d�}d|_t|dd�}|�|j|jfd�|�td��t|d	d
d�Wd�n1sp0Y|�td��t|d
d�Wd�n1s�0YdS)
Nc@s*eZdZUeed<eddd�Zeed<dS)z#TestReplace.test_no_init.<locals>.Cr(Fr^r�rBNrrrrrr�s
rr/r�rfr?)rfr^r�r��rgr)rrBr�rr(r4r5r�rrrrF�s,zTestReplace.test_no_initcCs�tGdd�d��}|d�}|d�}|�|j|j�|�|jd�|�td��t|dd�Wd�n1sn0Yt|d	d
�dS)Nc@s&eZdZUeed<dZeeed<dS)z$TestReplace.test_classvar.<locals>.Cr(rJrBN)rrrr*r+rBrrrrrr�s
rr/r�rJz3__init__\(\) got an unexpected keyword argument 'y'r�rrfr?)rr�rBrr4rHr�r�rrrr��s*zTestReplace.test_classvarcCs�tGdd�d��}|dd�}|�|jd�|�td��t|dd�Wd�n1sX0Yt|ddd	�}|�|jd
�dS)Nc@s*eZdZUeed<eeed<dd�ZdS)z0TestReplace.test_initvar_is_specified.<locals>.Cr(rBcSs|j|9_dSr\r?r�rrrr2�sz>TestReplace.test_initvar_is_specified.<locals>.C.__post_init__Nrhrrrrr�s
rr/r^z,InitVar 'y' must be specified with replace()rDr?rfrgrd)rrr(r4r5r�rzrrr�test_initvar_is_specified�s
*z%TestReplace.test_initvar_is_specifiedcCsxtGdd�d��}|dddd�}|�t|�|dd��|�t|dd	�|ddd
d��|�t|ddd�|dddd��dS)Nc@s>eZdZUeed<dZeeed<dZeeed<dd�ZdS)z6TestReplace.test_initvar_with_default_value.<locals>.Cr(NrBr,rccSs0|dur|j|7_|dur,|j|7_dSr\r?)r#rBrcrrrr2�szDTestReplace.test_initvar_with_default_value.<locals>.C.__post_init__)	rrrr*r+rBr\rcr2rrrrr�s
rr/r^r�r�r?r�rr,)rBrc)rrr�rzrrr�test_initvar_with_default_value�sz+TestReplace.test_initvar_with_default_valuecCs4tGdd�d��}|d�}||_|�t|�d�dS)Nc@seZdZUded<dS)z*TestReplace.test_recursive_repr.<locals>.Crr�Nrrrrrr�s
rz1TestReplace.test_recursive_repr.<locals>.C(f=...)�rr�rr9rzrrr�test_recursive_repr�s
zTestReplace.test_recursive_reprcCs<tGdd�d��}|dd�}||_||_|�t|�d�dS)Nc@seZdZUded<ded<dS)z4TestReplace.test_recursive_repr_two_attrs.<locals>.Crr��gNrrrrrr
s
rzBTestReplace.test_recursive_repr_two_attrs.<locals>.C(f=..., g=...))rr�r�rr9rzrrr�test_recursive_repr_two_attrs
s
z)TestReplace.test_recursive_repr_two_attrscCsTtGdd�d��}tGdd�d��}|d�}|d�}||_||_|�t|�d�dS)Nc@seZdZUded<dS)z6TestReplace.test_recursive_repr_indirection.<locals>.Cr�r�Nrrrrrr
s
rc@seZdZUded<dS)z6TestReplace.test_recursive_repr_indirection.<locals>.Drr�Nrrrrrr�
s
r�zwTestReplace.test_recursive_repr_indirection.<locals>.C(f=TestReplace.test_recursive_repr_indirection.<locals>.D(f=...))r�)r#rr�rtr�rrr�test_recursive_repr_indirection
sz+TestReplace.test_recursive_repr_indirectioncCsttGdd�d��}tGdd�d��}tGdd�d��}|d�}|d�}|d�}||_||_||_|�t|�d�dS)Nc@seZdZUded<dS)z:TestReplace.test_recursive_repr_indirection_two.<locals>.Cr�r�Nrrrrrr#
s
rc@seZdZUded<dS)z:TestReplace.test_recursive_repr_indirection_two.<locals>.Dr�r�Nrrrrrr�'
s
r�c@seZdZUded<dS)z:TestReplace.test_recursive_repr_indirection_two.<locals>.Err�Nrrrrrr�+
s
r�z�TestReplace.test_recursive_repr_indirection_two.<locals>.C(f=TestReplace.test_recursive_repr_indirection_two.<locals>.D(f=TestReplace.test_recursive_repr_indirection_two.<locals>.E(f=...)))r�)r#rr�r�rtr�r�rrr�#test_recursive_repr_indirection_two"
sz/TestReplace.test_recursive_repr_indirection_twocCs6tGdd�d��}|dd�}||_|�t|�d�dS)Nc@seZdZUded<eed<dS)z5TestReplace.test_recursive_repr_misc_attrs.<locals>.Crr�r�Nr�rrrrr;
s
rr/zATestReplace.test_recursive_repr_misc_attrs.<locals>.C(f=..., g=1)r�rzrrr�test_recursive_repr_misc_attrs:
s

z*TestReplace.test_recursive_repr_misc_attrsN)rrrr�rr�r�rFr�r�r�r�r�r�r�r�rrrrr�os 	r��__main__),Zdataclassesr rmr�r�ZunittestZ
unittest.mockr�typingrrrrrr	r
rrr
r�collectionsrrr�	functoolsr�	Exceptionrrr&r-r?rNrZrarir~r�r�r�r�r�r�mainrrrr�<module>sb0#YVG/L]/*H%f


Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists