HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/test/__pycache__/test_dataclasses.cpython-310.pyc
o

�i��@sddlTddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZm
Z
mZmZmZmZmZmZmZmZddlmZddlmZmZmZddlmZddlZddlZGdd	�d	e�ZGd
d�dej�ZGdd
�d
ej�Z Gdd�dej�Z!Gdd�dej�Z"Gdd�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,Gd&d'�d'ej�Z-Gd(d)�d)ej�Z.Gd*d+�d+ej�Z/e0d,k�re�1�dSdS)-�)�*N)�Mock)
�ClassVar�Any�List�Union�Tuple�Dict�Generic�TypeVar�Optional�Protocol)�get_type_hints)�deque�OrderedDict�
namedtuple)�total_orderingc@�eZdZdS)�CustomErrorN��__name__�
__module__�__qualname__�rr�2/usr/local/lib/python3.10/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�d��Zad�d��Zbd�d„Zcd�dĄZdd�dƄZed�S)��TestCasecC�0tGdd�d��}|�}|�tt|��d�dS)Nc@r)z"TestCase.test_no_fields.<locals>.CNrrrrr�C�rr��	dataclass�assertEqual�len�fields��selfr�orrr�test_no_fields�zTestCase.test_no_fieldscCr)Nc@seZdZdZdS)z6TestCase.test_no_fields_but_member_variable.<locals>.CrN)rrr�irrrrr%srrr r%rrr�"test_no_fields_but_member_variable$r)z+TestCase.test_no_fields_but_member_variablecC�,tGdd�d��}|d�}|�|jd�dS)Nc@�eZdZUeed<dS)z-TestCase.test_one_field_no_default.<locals>.C�xN�rrr�int�__annotations__rrrrr-�
r�*�r!r"r.r%rrr�test_one_field_no_default,sz"TestCase.test_one_field_no_defaultcCsHd}|�t|��tGdd�d��}Wd�dS1swYdS)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�fieldr0r.r1rrrrr7�
r)�assertRaisesRegex�
ValueErrorr!)r&�msgrrrr�(test_field_default_default_factory_error4s
"�z1TestCase.test_field_default_default_factory_errorcCs>tdddd�}d|_t|�}dt�dt�d�}|�||�dS)	Nr6TF)r8�init�repr�idz4Field(name='id',type=None,default=1,default_factory=zO,init=True,repr=False,hash=None,compare=True,metadata=mappingproxy({}),kw_only=z,_field_type=None))r:�namerA�MISSINGr")r&Z	int_field�repr_outputZexpected_outputrrr�test_field_repr;s��zTestCase.test_field_reprcCs*t�}||_d|_t|�}|�d|�dS)NrB�
,type=...,)r:�typerCrA�assertIn)r&Z	rec_fieldrErrr�test_field_recursive_reprHs
z"TestCase.test_field_recursive_reprcCs:Gdd�d�}tGdd�d��}|�dt|jd��dS)Nc@r)z-TestCase.test_recursive_annotation.<locals>.CNrrrrrrQ�rc@seZdZUe�Zeed<dS)z-TestCase.test_recursive_annotation.<locals>.DrN)rrrr:rr1rrrr�DT�
rLrG)r!rIrA�__dataclass_fields__�r&rrLrrr�test_recursive_annotationPsz"TestCase.test_recursive_annotationcCs.tGdd�d��}|dd�}|�|jd�dS)Nc@r-)z*TestCase.test_named_init_params.<locals>.Cr.Nr/rrrrr[r2r� �r.r4r%rrr�test_named_init_paramsZs
zTestCase.test_named_init_paramscCstGdd�d��}|d�}|�|j|jfd�|�td��tGdd�d��}Wd�n1s1wY|�td��tGdd�d��}tGd	d�d|��}Wd�n1sZwY|�td��tGd
d�d��}tGdd�d|��}Wd�dS1s�wYdS)Nc@�"eZdZUeed<dZeed<dS)�/TestCase.test_two_fields_one_default.<locals>.Cr.r�yN�rrrr0r1rVrrrrrc�
r�)rYrz1non-default argument 'y' follows default argumentc@s"eZdZUdZeed<eed<dS)rUrr.rVN�rrrr.r0r1rrrrro�
c@�eZdZUdZeed<dS)�/TestCase.test_two_fields_one_default.<locals>.Brr.NrZrrrr�Bx�
r^c@r-)rUrVNr/rrrrr|r2c@�eZdZUeed<eed<dS)r]r.rVNr/rrrrr^��
c@r\)rUrr.NrZrrrrr�r_)r!r"r.rVr<�	TypeError)r&rr'r^rrr�test_two_fields_one_defaultbs4��	��
�"�z$TestCase.test_two_fields_one_defaultcCstdd�Gdd�d��}|�t|d��d�tdd�Gdd�d��}|�t|d��td��|�td	��tdd
�Gdd�d��}Wd�n1sKwYtdd
�Gdd�d��}|�t|d
��td��|�td	��tdd
�Gdd�d��}Wd�dS1s�wYdS)NT��frozenc@�eZdZUeed<dd�ZdS)�'TestCase.test_overwrite_hash.<locals>.Cr.cS�dS�N�-r�r&rrr�__hash__���0TestCase.test_overwrite_hash.<locals>.C.__hash__N)rrrr0r1rlrrrrr�rar�drjc@rf)rgr.cSrh�NFr�r&�otherrrr�__eq__�rm�.TestCase.test_overwrite_hash.<locals>.C.__eq__N�rrrr0r1rsrrrrr�ra)ro�#Cannot overwrite attribute __hash__��unsafe_hashc@�eZdZdd�ZdS)rgcS�dS�Nrrkrrrrl�rmrnN�rrrrlrrrrr��c@rf)rgr.cSrzr{rrkrrrrs�rmrtNrurrrrr�ra�
)r~c@s&eZdZUeed<dd�Zdd�ZdS)rgr.cSrzr{rrkrrrrs�rmrtcSrzr{rrkrrrrl�rmrnN)rrrr0r1rsrlrrrrr�s
)r!r"�hashr<rb�r&rrrr�test_overwrite_hash�s*���"�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.rrVN)rrrr.rr1rVr0rrrr�Base��
r�c@�&eZdZUdZeed<dZeed<dS)z;TestCase.test_overwrite_fields_in_derived_class.<locals>.C1r~�z�r.N)rrrr�r0r1r.rrrr�C1�r�r�zJTestCase.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)�rRzKTestCase.test_overwrite_fields_in_derived_class.<locals>.C1(x=5, y=0, z=10)�r!r"rA)r&r�r�r'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@r-)�)TestCase.test_field_named_self.<locals>.Cr&N�rrr�strr1rrrrr�r2r�foor&c@r-)r�ZselfxNr�rrrrr�r2)
r!r"r&�inspect�	signature�__init__�next�iter�
parameters�assertNotEqual)r&r�c�sig�firstrrr�test_field_named_self�szTestCase.test_field_named_selfcCr,)Nc@r-)z+TestCase.test_field_named_object.<locals>.C�objectNr�rrrrr�r2rr��r!r"r��r&rr�rrr�test_field_named_object�sz TestCase.test_field_named_objectcC�2tdd�Gdd�d��}|d�}|�|jd�dS)NTrdc@r-)z2TestCase.test_field_named_object_frozen.<locals>.Cr�Nr�rrrrr�r2rr�r�r�rrr�test_field_named_object_frozen�sz'TestCase.test_field_named_object_frozencCr�)NTrdc@r-)z4TestCase.test_field_named_BUILTINS_frozen.<locals>.C�BUILTINSNr/rrrrr�r2rr�)r!r"r�r�rrr� test_field_named_BUILTINS_frozen�sz)TestCase.test_field_named_BUILTINS_frozencsnhd��t�fdd�tj��D��}dd�|D�}td|�}|dd�|D��}|D]}|�t||�|�q)dS)N>�True�None�Falsec3�&�|]}|�d�s|�vr|VqdS��__N��
startswith��.0�b�Z
exclusionsrr�	<genexpr>
�����z9TestCase.test_field_named_like_builtin.<locals>.<genexpr>cS�g|]}|tf�qSr�r��r�rCrrr�
<listcomp>�z:TestCase.test_field_named_like_builtin.<locals>.<listcomp>rcS�g|]}|�qSrrr�rrrr����sorted�builtins�__dict__�keys�make_dataclassr"�getattr�r&Zbuiltins_namesZ
attributesrr�rCrr�r�test_field_named_like_builtins�
�z&TestCase.test_field_named_like_builtincsrhd��t�fdd�tj��D��}dd�|D�}td|dd�}|d	d�|D��}|D]}|�t||�|�q+dS)
N>r�r�r�c3r�r�r�r�r�rrr�r�z@TestCase.test_field_named_like_builtin_frozen.<locals>.<genexpr>cSr�rr�r�rrrr� r�zATestCase.test_field_named_like_builtin_frozen.<locals>.<listcomp>rTrdcSr�rrr�rrrr�#r�r�r�rr�r�$test_field_named_like_builtin_frozens��z-TestCase.test_field_named_like_builtin_frozencCsRtGdd�d��}tdd�Gdd�d��}||fD]q}|j|d��a|�|�|��tdd	�d
d	�dd	�dd	�g�D]@\}}|j|d
��.|�td|j�d|j�d���||�|��Wd�n1sfwYWd�n1suwYq:Wd�n1s�wYqtdd�Gdd�d��}|�|�|��|�|�|��dS)Nc@r)z)TestCase.test_0_field_compare.<locals>.C0Nrrrrr�C0*rr�F��orderc@r)z)TestCase.test_0_field_compare.<locals>.C1Nrrrrrr�.rr���clscS�||kSr{r��ar�rrr�<lambda>5�z/TestCase.test_0_field_compare.<locals>.<lambda>cS�||kSr{rr�rrrr�6r�cS�||kSr{rr�rrrr�7r�cS�||kSr{rr�rrrr�8r���idx�$not supported between instances of '�' and '�'Tc@r)z(TestCase.test_0_field_compare.<locals>.CNrrrrrr>rr)	r!�subTestr"�	enumerater<rbr�assertLessEqual�assertGreaterEqual�r&r�r�r�r��fnrrrr�test_0_field_compare(s8���������zTestCase.test_0_field_comparecCs�tGdd�d��}tdd�Gdd�d��}||fD]}|j|d��o|�|d�|d��|�|d	�|d��td
d�dd�d
d�dd�g�D]B\}}|j|d��0|�td|j�d|j�d���||d	�|d	��Wd�n1stwYWd�n1s�wYqFWd�n1s�wYqtdd�Gdd�d��}|�|d	�|d��|�	|d	�|d��|�	|d�|d��|�
|d�|d	��|�|d�|d	��|�|d�|d��dS)Nc@r-)z)TestCase.test_1_field_compare.<locals>.C0r.Nr/rrrrr�Fr2r�Fr�c@r-)z)TestCase.test_1_field_compare.<locals>.C1r.Nr/rrrrr�Jr2r�r�r6rcSr�r{rr�rrrr�Rr�z/TestCase.test_1_field_compare.<locals>.<lambda>cSr�r{rr�rrrr�Sr�cSr�r{rr�rrrr�Tr�cSr�r{rr�rrrr�Ur�r�r�r�r�Tc@r-)z(TestCase.test_1_field_compare.<locals>.Cr.Nr/rrrrr[r2r)r!r�r"r�r�r<rbr�
assertLessr��
assertGreaterr�r�rrr�test_1_field_compareDsB���������zTestCase.test_1_field_comparecCsFtGdd�d��}tdd�Gdd�d��}||fD]�}|j|d���|�|dd�|dd��|�|d	d
�|d	d
��|�|d	d�|dd��|�|d	d�|d	d	��tdd�d
d�dd�dd�g�D]D\}}|j|d��2|�td|j�d|j�d���||dd�|dd��Wd�n1s�wYWd�n1s�wYqbWd�n1s�wYqtdd�Gdd�d��}tdd�dd�dd�g�D](\}}|j|d��|�||dd�|dd���Wd�n1s�wYq�tdd�dd�dd�g�D]F\}}|j|d��2|�||dd�|dd	���|�||dd	�|d	d���|�||d	d�|d	d	���Wd�n	1�sFwY�qtdd�dd�dd�g�D]F\}}|j|d��2|�||dd	�|dd���|�||d	d�|dd	���|�||d	d	�|d	d���Wd�n	1�s�wY�qZdS) Nc@r`)z(TestCase.test_simple_compare.<locals>.C0r.rVNr/rrrrr�grar�Fr�c@r`)z(TestCase.test_simple_compare.<locals>.C1r.rVNr/rrrrr�lrar�r�rr6�cSr�r{rr�rrrr�wr�z.TestCase.test_simple_compare.<locals>.<lambda>cSr�r{rr�rrrr�xr�cSr�r{rr�rrrr�yr�cSr�r{rr�rrrr�zr�r�r�r�r�Tc@r`)z'TestCase.test_simple_compare.<locals>.Cr.rVNr/rrrrr�rarcS�||kSr{rr�rrrr��r�cSr�r{rr�rrrr��r�cSr�r{rr�rrrr��r�cSr�r{rr�rrrr��r�cSr�r{rr�rrrr��r�cS�||kSr{rr�rrrr��r�cSr�r{rr�rrrr��r�cSr�r{rr�rrrr��r�cSr�r{rr�rrrr��r�)	r!r�r"r�r�r<rbr�
assertTruer�rrr�test_simple_compareest�������������������zTestCase.test_simple_comparec
Cs.tGdd�d��}tGdd�d|��}tdd�dfdd�d	fg�D])\}\}}|j|d
��|�||d�|d��|�Wd�n1sEwYq!tdd�d
d�dd�dd�g�D]9\}}|j|d
��'|�td��||d�|d��Wd�n1s�wYWd�n1s�wYq[dS)Nc@r-)z+TestCase.test_compare_subclasses.<locals>.Br*Nr/rrrrr^�r2r^c@r)z+TestCase.test_compare_subclasses.<locals>.CNrrrrrr�rrcSr�r{rr�rrrr��r�z2TestCase.test_compare_subclasses.<locals>.<lambda>FcSr�r{rr�rrrr��r�Tr�rcSr�r{rr�rrrr��r�cSr�r{rr�rrrr��r�cSr�r{rr�rrrr��r�cSr�r{rr�rrrr��r�z.not supported between instances of 'B' and 'C')r!r�r�r"r<rb)r&r^rr�r��expectedrrr�test_compare_subclasses�s4
����������z TestCase.test_compare_subclassesc
Cs�dD]�\}}}|j||d���|dkr7|�td��t||d�Gdd�d��}Wd�n1s1wYn�t||d�Gdd�d��}|dkrl|�d	|j�|�d
|j�|�d|j�|�d|j�|�d
|j�nW|dkr�|�d	|j�|�d
|j�|�d|j�|�d|j�|�d
|j�n/|dkr�|�d	|j�|�d
|j�|�d|j�|�d|j�|�d
|j�nJd|����Wd�n1s�wYqdS)N))FF�neither)FT�	exception)TF�eq_only)TT�both)�eqr�r�z eq must be true if order is truec@r�z!TestCase.test_eq_order.<locals>.CNrrrrrr�rrc@rr�rrrrrr�rr�rs�__lt__�__le__�__gt__�__ge__r�r�F�unknown result )r�r<r=r!�assertNotInr�rI)r&r�r��resultrrrr�
test_eq_order�sB
��
����zTestCase.test_eq_ordercCs\tGdd�d��}|�|d�jd�|�td��|�Wd�dS1s'wYdS)Nc@seZdZUe�Zeed<dS)z)TestCase.test_field_no_default.<locals>.Cr.N�rrrr:r.r0r1rrrrr�rMrr��8__init__\(\) missing 1 required positional argument: 'x')r!r"r.r<rbr�rrr�test_field_no_default�s�"�zTestCase.test_field_no_defaultcsft��tG�fdd�d��}|�|j��|d�}|�|jd�|`|�|j��|�|�j��dS)Nc� eZdZUe�d�Zeed<dS)z&TestCase.test_field_default.<locals>.C�r8r.N)rrrr:r.r�r1rr�rrr��
rr~)r�r!�assertIsr.r"r�rr�r�test_field_default�szTestCase.test_field_defaultcCs�tGdd�d��}|�t��|�Wd�n1swY|d�}|�t|�d�tGdd�d��}|dd�}|�t|�d�dS)Nc@� eZdZUedd�Zeed<dS)�$TestCase.test_not_in_repr.<locals>.CF�rAr.Nr�rrrrr�r�rr~z&TestCase.test_not_in_repr.<locals>.C()c@s(eZdZUedd�Zeed<eed<dS)r�Fr�r.rVNr�rrrrrs
�z*TestCase.test_not_in_repr.<locals>.C(y=20))r!�assertRaisesrbr"rAr�rrr�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�)�comparer8rVN)rrrr.r0r1r:rVrrrrr
s
rrr�r6r~rYr�r!r"r�r�rrr�test_not_in_compare	szTestCase.test_not_in_comparec	s�dD]T\��}|j��d��@tdd�G��fdd�d��}|dkr/|�t|d��td	��n|d
kr@|�t|d��td��nJd
|����Wd�n1sQwYqdS)N))TFr:)TTr:)FF�absent)FTr)NFr)NTr:)rrTrwcs$eZdZUe��dd�Zeed<dS)z)TestCase.test_hash_field_rules.<locals>.Cr�)rrr8r.Nr�r�rZhash_rrr!�
rr:r�)r�rrFr�)r�r!r"r)r&r�rrrr�test_hash_field_ruless����zTestCase.test_hash_field_rulescCsftGdd�d��}|�d|�j�tGdd�d��}|�d|d�j�|�t|d��dddd	��dS)
Nc@r�)�.TestCase.test_init_false_no_default.<locals>.CF�r@r.Nr�rrrrr1r�rr.c@s@eZdZUeed<dZeed<edd�Zeed<dZeed<d	S)
rr.rrVFr	r�r~�tN)	rrrr0r1rVr:r�r
rrrrr7s

r�rr�r~)r
r.rV)r!r�r�r"�varsr�rrr�test_init_false_no_default.s z#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�r@r8rVr�r�)	rrrr0r1r:rVr�r�rrrrrBs
rrYrr.r6rVr�r�)r!r$�assertIsInstance�tupler�rHZFieldrIrCr1r"r#r0�assertFalse�hasattrr�r@rAr��assertIsNoner�)r&rZ
the_fields�frrr�test_class_markerAs.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:cr�N)rrrr�r�r1r�r�rrrrr^c�
r^c@r\)z$TestCase.test_field_order.<locals>.C�C:br�N)rrrr�r�r1rrrrrir_rcS�g|]}|j|jf�qSr�rCr8�r�rrrrr�m�z-TestCase.test_field_order.<locals>.<listcomp>)�r�r)r�r)r�rc@r\)z$TestCase.test_field_order.<locals>.D�D:cr�N)rrrr�r�r1rrrrrLrr_rLcSrrrrrrrr�vr)r�r�r�r�rc@r�)z$TestCase.test_field_order.<locals>.E�E:ar��E:d�dN)rrrr�r�r1r$rrrr�E{r�r%cSrrrrrrrr��r))r�r"r r!)r$r#�r!r"r$)r&r^rrLr%rrr�test_field_orderbs"���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�rVr�ror�r
N)
rrrr0r1r:rVr�r�r
rr�rrr�s

rr.rVro)r�r!rrr�r�r"r
r�rr�r�test_class_attrs�szTestCase.test_class_attrsc
s�tgdgftiddiftt�tdg�ffD]�\���|j�d���|�td��d���tG��fdd�d��}Wd�n1sBwY|�td��d���tG��fd	d�d��}Wd�n1shwYGd
d�d���|�td��tG��fd
d�d��}Wd�n1s�wYtG�fdd�d��}tG��fdd�d��}Wd�n1s�wYqdS)Nr6r��typzmutable default z for field x is not allowedc�eZdZU�Z�ed<dS)�8TestCase.test_disallowed_mutable_defaults.<locals>.Pointr.N)rrrr.r1r)�emptyr*rr�Point�r_r.z for field y is not allowedcr+)r,rVN)rrrrVr1r)�	non_emptyr*rrr.�r_c@r)z;TestCase.test_disallowed_mutable_defaults.<locals>.SubclassNrrrrr�Subclass�rr0z7mutable default .*Subclass'> for field z is not allowedcseZdZU��Z�ed<dS)r,r�N)rrrr�r1r�r0r*rrr.�rMcs eZdZU��Ze�ed<dS)�4TestCase.test_disallowed_mutable_defaults.<locals>.Cr�N)rrrr�rr1rr)rrr�r�rcs eZdZU��Ze�ed<dS)r2r.N)rrrr.rr1rr1rrr�r�)�list�dict�setr�r<r=r!�r&r.rr)r0r-r/r*r� test_disallowed_mutable_defaults�s>
�
��	
����	���z)TestCase.test_disallowed_mutable_defaultscs�Gdd�d��tG�fdd�d��}��}||�}||�}|�||�|jj�ddg�|�||�|�|jjddg�|�|j|j�dS)Nc@ry)z<TestCase.test_deliberately_mutable_defaults.<locals>.MutablecSs
g|_dSr{��lrkrrrr���
zETestCase.test_deliberately_mutable_defaults.<locals>.Mutable.__init__N�rrrr�rrrr�Mutable��r<c�eZdZU�ed<dS)z6TestCase.test_deliberately_mutable_defaults.<locals>.Cr.N�rrrr1r�r<rrr�r2rr6r�)r!r"r.r9�extendr�)r&r�lstZo1Zo2rr@r�"test_deliberately_mutable_defaults�sz+TestCase.test_deliberately_mutable_defaultscCs*t�Gdd�d��}|�|d�jd�dS)Nc@r-)z#TestCase.test_no_options.<locals>.Cr.Nr/rrrrr�r2rr3r4r�rrr�test_no_options�szTestCase.test_no_optionscCsRtGdd�d��}|�|dd�d�tGdd�d��}|�|dd�|dd��dS)	Nc@r`)z&TestCase.test_not_tuple.<locals>.Pointr.rVNr/rrrrr.�rar.r6r��r6r�c@r`)z"TestCase.test_not_tuple.<locals>.Cr.rVNr/rrrrr�rarrY)r!r�r6rrr�test_not_tuple�szTestCase.test_not_tuplecCs�tGdd�d��}tGdd�d��}|�|ddd�|ddd��|�|dd	d�d
�|�td��|dd
d�\}}}Wd�n1sDwYtGdd�d��}|�|ddd�|��dS)Nc@�&eZdZUeed<eed<eed<dS)z2TestCase.test_not_other_dataclass.<locals>.Point3Dr.rVr�Nr/rrrr�Point3D��
rHc@rG)z/TestCase.test_not_other_dataclass.<locals>.Date�year�month�dayNr/rrrr�Date�rIrMi��rYr6r�)r6r�rY�unpackrr�c@s2eZdZUdZeed<dZeed<dZeed<dS)z4TestCase.test_not_other_dataclass.<locals>.Point3Dv1rr.rVr�N)rrrr.r0r1rVr�rrrr�	Point3Dv1rrPr)r!r�r<rb)r&rHrMr.rVr�rPrrr�test_not_other_dataclass�s�z!TestCase.test_not_other_dataclasscsnGdd�d�������fdd�}tG��fdd�d��}||�tddd�G��fd	d�d��}||�dS)
Nc@r)z-TestCase.test_function_annotations.<locals>.FNrrrrr�FrKrRcs���|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�kr9r�r&)r"r1r0r��float�complexr�r�r�r�Zreturn_annotationr�r��valuesr�rC�
annotationr8Z	Parameterr-�kindZPOSITIONAL_OR_KEYWORDr��
StopIteration)r�r��paramsZparam)rRr&rr�validate_classs:z:TestCase.test_function_annotations.<locals>.validate_classc�PeZdZUeed<eed<�Z�ed<edd�Ze	ed<eddd	�Z
eed
<dS�z-TestCase.test_function_annotations.<locals>.Cr*rSrTNr�r9y@@F�r8r@r��rrrr0r1r�rTr:r9rUr�rVr�rRrrrr?�
rT)rerxcr]r^r`rrarrrJrb)r!)r&r\rr)rRrr&r�test_function_annotationss+
z"TestCase.test_function_annotationscC�tGdd�d��}|�td��|�Wd�n1swY|�d|j�tGdd�d��}|�td��|�Wd�n1sFwY|�d|j�dS)Nc@� eZdZUeed�Zeed<dS)z(TestCase.test_missing_default.<locals>.Cr�r.N�rrrr:rDr.r0r1rrrrrWr�r�3__init__\(\) missing 1 required positional argumentr.c@r-)z(TestCase.test_missing_default.<locals>.Dr.Nr/rrrrrL`r2rL�r!r<rbr�r�rOrrr�test_missing_defaultTs ����zTestCase.test_missing_defaultcCrd)Nc@re)z0TestCase.test_missing_default_factory.<locals>.C�r9r.Nrfrrrrrmr�rrgr.c@s"eZdZUeeed�Zeed<dS)z0TestCase.test_missing_default_factory.<locals>.Dr7r.NrfrrrrrLvr;rLrhrOrrr�test_missing_default_factoryis ����z%TestCase.test_missing_default_factorycCs|�dtt��dS)NzMISSING_TYPE object)rIrArDrkrrr�test_missing_repr�zTestCase.test_missing_reprcCsbtGdd�d��}|�t|j�dg�|�|d���d�|�|d�jd�|�|d�jd�dS)Nc@s6eZdZUeed<defdd�Zedefdd��ZdS)z7TestCase.test_dont_include_other_annotations.<locals>.Cr*�returncSrh�Nrrrkrrrr��rmz;TestCase.test_dont_include_other_annotations.<locals>.C.foocSrh�Nr�rrkrrr�bar��z;TestCase.test_dont_include_other_annotations.<locals>.C.barN)rrrr0r1r��propertyrqrrrrr�s

rr*r~rr�)r!r"r3r1r�rqr*r�rrr�#test_dont_include_other_annotations�sz,TestCase.test_dont_include_other_annotationscCs,tGdd�d��}|�t��|�Wd�n1swYtGdd�d��}|�t��|�Wd�n1s=wY|d�tdd�Gdd�d��}|�tGdd�d��}|�|�jd	�|�|d
�jd�tdd
�Gdd�d��}|�t��|�Wd�dS1s�wYdS)Nc@ry)�"TestCase.test_post_init.<locals>.CcS�t��r{�rrkrrr�
__post_init__���0TestCase.test_post_init.<locals>.C.__post_init__N�rrrrxrrrrr�r}rc@�"eZdZUdZeed<dd�ZdS)rur~r*cSs|jdkrt��dS�Nr~)r*rrkrrrrx�s
�rzN)rrrr*r0r1rxrrrrr�r[r�Fr	c@ry)rucSrvr{rwrkrrrrx�ryrzNr{rrrrr�r}c@r|)rurr.cS�|jd9_dS�Nr�rRrkrrrrx��rzN�rrrr.r0r1rxrrrrr�r[rr�rTrdc@r|)rurr.cSr~rrRrkrrrrx�r�rzNr�rrrrr�r[)r!r�rr"r.�FrozenInstanceErrorr�rrr�test_post_init�s.��"�zTestCase.test_post_initcCs�Gdd�d�}tGdd�d|��}|�|�jd�tGdd�d|��}|�t��|�Wd�n1s6wYtGdd�d|��}|�t��|�Wd�dS1sYwYdS)Nc@ry)z(TestCase.test_post_init_super.<locals>.BcSrvr{rwrkrrrrx�ryz6TestCase.test_post_init_super.<locals>.B.__post_init__Nr{rrrrr^�r=r^c@ry)�(TestCase.test_post_init_super.<locals>.CcS�
d|_dSrprRrkrrrrx�r:�6TestCase.test_post_init_super.<locals>.C.__post_init__Nr{rrrrr�r}rr�cseZdZ�fdd�Z�ZS)r�cst���dSr{)�superrxrk��	__class__rrrx��r�)rrrrx�
__classcell__rrr�rr�sc@r)r�Nrrrrrr�r)r!r"r.r�r�r&r^rrrr�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.rVcsd�dS�NTrr��flagrrrx�sz=TestCase.test_post_init_staticmethod.<locals>.C.__post_init__N)rrrr0r1�staticmethodrxrr�rrr�s

rrYr�rYr)r!rr"r.rVr�r�rr�r�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.rVcSr�r�r�r�rrrrx�s
z<TestCase.test_post_init_classmethod.<locals>.C.__post_init__N)rrrr�r0r1�classmethodrxrrrrr�s
rrYrr�)r!rr�r"r.rVr�r�rrr�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~rV��r����w�r
��sN)rrrr0r1rVr�rr�r
r�rrrrr�s
rr�z-TestCase.test_class_var.<locals>.C(x=5, y=10)r�rNr�r�r�r�r6��r��r�r~)r!r"rAr#r$r1r�r�r
r�r.rVr�rrr�test_class_var�s$zTestCase.test_class_varcC�$tGdd�d��}|�d|j�dS)Nc@�eZdZUeeed<dS)z-TestCase.test_class_var_no_default.<locals>.Cr.N)rrrrr0r1rrrrrr_rr.�r!r�r�r�rrr�test_class_var_no_default�z"TestCase.test_class_var_no_defaultcC�R|�td��tGdd�d��}|�d|j�Wd�dS1s"wYdS)N�cannot have a default factoryc@�$eZdZUeed�Zeeed<dS)z2TestCase.test_class_var_default_factory.<locals>.Crjr.N�rrrr:r0r.rr1rrrrr&rrr.�r<rbr!r�r�r�rrr�test_class_var_default_factory!��"�z'TestCase.test_class_var_default_factorycC�DtGdd�d��}|�|jd�tGdd�d��}|�|jd�dS)Nc@�eZdZUdZeeed<dS)�/TestCase.test_class_var_with_default.<locals>.Cr~r.N)rrrr.rr0r1rrrrr.�
rr~c@�$eZdZUedd�Zeeed<dS)r�r~r�r.N)rrrr:r.rr0r1rrrrr3rr4r�rrr�test_class_var_with_default,�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)NTrdc@sReZdZUeed<dZeed<dZeeed<dZeeed<dZ	eeed	<d
S)z)TestCase.test_class_var_frozen.<locals>.Cr.r~rVr�r�r�r�r�r
N)
rrrr0r1rVr�rr�r
rrrrr:s
rr�z4TestCase.test_class_var_frozen.<locals>.C(x=5, y=10)r�r�r�r�r6r�r�r�)r!r"rAr#r$r1r�r�r
r.rVr�rrr�test_class_var_frozen8s zTestCase.test_class_var_frozencCr�)Nc@r�)z,TestCase.test_init_var_no_default.<locals>.Cr.N)rrr�InitVarr0r1rrrrrUr_rr.r�r�rrr�test_init_var_no_defaultSr�z!TestCase.test_init_var_no_defaultcCr�)Nr�c@r�)z1TestCase.test_init_var_default_factory.<locals>.Crjr.N)rrrr:r0r.r�r1rrrrr`rrr.r�r�rrr�test_init_var_default_factory[r�z&TestCase.test_init_var_default_factorycCr�)Nc@r�)�.TestCase.test_init_var_with_default.<locals>.Cr~r.N)rrrr.r�r0r1rrrrrhr�rr~c@r�)r�r~r�r.N)rrrr:r.r�r0r1rrrrrmrr4r�rrr�test_init_var_with_defaultfr�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|_dSdSrrR)r&r�rrrrxxs
�z/TestCase.test_init_var.<locals>.C.__post_init__)	rrrr.r0r1r�r�rxrrrrrss
rr~)r�r�r4r�rrr�
test_init_varrs
zTestCase.test_init_varcCsr|�ttjt�|�ttt�d�|�tttt�d�|�tttt�d�|�ttttB�d�dS)N�dataclasses.InitVar[int]z%dataclasses.InitVar[typing.List[int]]zdataclasses.InitVar[list[int]]zdataclasses.InitVar[int | str])r"r�r0rHrArr3r�rkrrr�test_init_var_preserve_types���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)rrrr0r1r�rrrrr��rXr�rr~r.c@�*eZdZUeed<eeed<dd�ZdS)z-TestCase.test_init_var_inheritance.<locals>.CrV�init_derivedcSs|j||_|j||_dSr{�r.rV)r&r�r�rrrrx�sz;TestCase.test_init_var_inheritance.<locals>.C.__post_init__N�rrrr0r1r�rxrrrrr��
r��2�3��er�)r!r"r)r&r�r�rr�rrr�test_init_var_inheritance�s
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.rjrVN)rrrr0r1r:r3rVrrrrr��
rrYr�r6cs0eZdZUeed<e�fdd�d�Zeed<dS)r�r.cs�Sr{rrr8rrr���z1TestCase.test_default_factory.<locals>.C.<lambda>rjrVN)rrrr0r1r:rVr3rr8rrr�s
c@�"eZdZUeedd�Zeed<dS)r�F)r9rAr.N�rrrr:r3r.r1rrrrr�r;z*TestCase.test_default_factory.<locals>.C()Trwc@r�)r�F)r9rr.Nr�rrrrr�r;rc@r�)r�F�r9r@r.Nr�rrrrr�r;c@r�)r�F)r9rr.Nr�rrrrr�r;)	r!r"r.rV�assertIsNot�astupler�rAr)r&rZc0�c1rr8r�test_default_factory�sBzTestCase.test_default_factorycsLt��tG�fdd�d��}|�j|��jd�|�j|��jd�dS)Nc�"eZdZUe�dd�Zeed<dS)z5TestCase.test_default_factory_with_no_init.<locals>.CFr�r.N)rrrr:r.r3r1r��factoryrrr�r;rr6r��rr!r.r"�
call_countr�rr�r�!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)Ncr�)zBTestCase.test_default_factory_not_called_if_value_given.<locals>.Crjr.Nr�rr�rrr�r�rr6r~r�r�r�rr�r�.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@� eZdZUeed�Zeed<dS)z2TestCase.test_default_factory_derived.<locals>.Foorjr.N)rrrr:r4r.r1rrrr�Foo�r�r�c@r\)z2TestCase.test_default_factory_derived.<locals>.Barr6rVN�rrrrVr0r1rrrr�Barr_r�r6c@r)z2TestCase.test_default_factory_derived.<locals>.BazNrrrrr�Bazrr�)r!r"r.rV)r&r�r�r�rrr�test_default_factory_derived�sz%TestCase.test_default_factory_derivedcCs�tGdd�d��}Gdd�d|�}tGdd�d|��}|dd�}|�|j|jfd	�|�td
��|jWd�n1s>wYGdd�d|�}|d
d�}|�|j|jfd�dS)Nc@r-)z3TestCase.test_intermediate_non_dataclass.<locals>.Ar.Nr/rrrr�Ar2r�c@r-)z3TestCase.test_intermediate_non_dataclass.<locals>.BrVNr/rrrrr^�
r^c@r-)z3TestCase.test_intermediate_non_dataclass.<locals>.Cr�Nr/rrrrrr2rr6rY)r6rYzobject has no attributec@r-)z3TestCase.test_intermediate_non_dataclass.<locals>.Dr
Nr/rrrrrL(r�rLrr�)rr�)r!r"r.r�r<�AttributeErrorrV)r&r�r^rr�rLr$rrr�test_intermediate_non_dataclasss
��
z(TestCase.test_intermediate_non_dataclasscC�D|�td��tGdd�d��}Wd�dS1swYdS)Nr�c@r�)z1TestCase.test_classvar_default_factory.<locals>.Crjr.Nr�rrrrr1rr�r<rbr!r�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@r)z0TestCase.test_is_dataclass.<locals>.NotDataClassNrrrrr�NotDataClass6rKr�rc@r-)z%TestCase.test_is_dataclass.<locals>.Cr.Nr/rrrrr>r2rcseZdZU�ed<eed<dS)z%TestCase.test_is_dataclass.<locals>.Dr$�eN�rrrr1r0r�rrrrLBrarLr~r)r�is_dataclassr0r!r�r.r$r�)r&r�rLr�r$rr�r�test_is_dataclass5s 
zTestCase.test_is_dataclassc
Cs(Gdd�d�}|�t|��|�}Gdd�d�}|�}g|_||fD]o}|j|d��_|�t|��|�td��t|�Wd�n1sGwY|�td��t|�Wd�n1sawY|�td��t|dd�Wd�n1s}wYWd�n1s�wYq"dS)	Nc@ry)zATestCase.test_is_dataclass_when_getattr_always_returns.<locals>.AcSrh�Nrr)r&�keyrrr�__getattr__SrmzMTestCase.test_is_dataclass_when_getattr_always_returns.<locals>.A.__getattr__N)rrrr�rrrrr�Rr=r�c@r)zATestCase.test_is_dataclass_when_getattr_always_returns.<locals>.BNrrrrrr^YrKr^)�objz'should be called on dataclass instancesrrR)	rr�rNr�r<rb�asdictr��replace)r&r�r�r^r�r�rrr�-test_is_dataclass_when_getattr_always_returnsPs,
�
������z6TestCase.test_is_dataclass_when_getattr_always_returnscCsRtGdd�dtj��}|�t|��|tt�}|�tt|���|�t|��dS)Nc@r`)z2TestCase.test_is_dataclass_genericalias.<locals>.A�origin�argsN)rrrrHr1rrrrr�krar�)r!�types�GenericAliasr�r�r3r0rH)r&r�r�rrr�test_is_dataclass_genericaliasjs
z'TestCase.test_is_dataclass_genericaliascCs0tGdd�d��}|�t|�t|dd���dS)Nc@�eZdZUeed<eed<dS)z:TestCase.test_helper_fields_with_class_instance.<locals>.Cr.rVN)rrrr0r1rUrrrrrxrarrgr&r�rrr�&test_helper_fields_with_class_instanceusz/TestCase.test_helper_fields_with_class_instancecCs�|�td��td�Wd�n1swYGdd�d�}|�td��t|�Wd�n1s6wY|�td��t|��Wd�dS1sRwYdS)Nzdataclass type or instancerc@r)z0TestCase.test_helper_fields_exception.<locals>.CNrrrrrr�rr)r<rbr$r�rrr�test_helper_fields_exceptions
�
�"�z%TestCase.test_helper_fields_exceptionc
Cslt��}ztt�Wnty#}z
tj||d�WYd}~nd}~ww|��}|�d|�|�d|�dS)N)�filer�rN)	�io�StringIOr$r�rb�	traceback�print_exception�getvaluer�)r&�stdout�excZprinted_tracebackrrr�*test_clean_traceback_from_fields_exception�s��z3TestCase.test_clean_traceback_from_fields_exceptioncCs�tGdd�d��}|dd�}|�t|�ddd��|�t|�t|��|�t|�t|��d|_|�t|�ddd��|�tt|��t�dS)Nc@r`)z&TestCase.test_helper_asdict.<locals>.Cr.rVNr/rrrrr�rarr6r�r�r3)r!r"r�r�r.r�rHr4r�rrr�test_helper_asdict�s
zTestCase.test_helper_asdictcC�tGdd�d��}|�td��t|�Wd�n1swY|�td��
tt�Wd�dS1s9wYdS)Nc@r`)z8TestCase.test_helper_asdict_raises_on_classes.<locals>.Cr.rVNr/rrrrr�rar�dataclass instance)r!r<rbr�r0r�rrr�$test_helper_asdict_raises_on_classes��
�
"�z-TestCase.test_helper_asdict_raises_on_classescCsxtGdd�d��}g}|d|�}t|�}|�|d|�|�|d|�|d�}t|�}|d�d�|�|jg�dS)Nc@�,eZdZUeed<eed�Zeeed<dS)z2TestCase.test_helper_asdict_copy_values.<locals>.Cr.rjrVN�	rrrr0r1r:r3rVrrrrrr��
rr6rV)r!r�r"r��appendrV)r&r�initialr�r$rrr�test_helper_asdict_copy_values��
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@r`)z2TestCase.test_helper_asdict_nested.<locals>.UserId�token�groupNr/rrrr�UserId�rarc�eZdZUeed<�ed<dS)z0TestCase.test_helper_asdict_nested.<locals>.UserrCrBNr�r�rrr�User�rar�Joe�{r6)rr�rCrBr�)r!r�r"r�rBr)r&r�ur$rrr�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@r�)z<TestCase.test_helper_asdict_builtin_containers.<locals>.UserrCrBN�rrrr�r1r0rrrrr�rarc�"eZdZUeed<e�ed<dS)zATestCase.test_helper_asdict_builtin_containers.<locals>.GroupListrB�usersN�rrrr0r1rr�rrr�	GroupList�rXr c�&eZdZUeed<e�dfed<dS)zBTestCase.test_helper_asdict_builtin_containers.<locals>.GroupTuplerB.rN�rrrr0r1rrrrr�
GroupTuple��
r#c�&eZdZUeed<ee�fed<dS)zATestCase.test_helper_asdict_builtin_containers.<locals>.GroupDictrBrN�rrrr0r1r	r�rrrr�	GroupDict�r$r'�Alicer6�Bobr�r�r��secondr)rBr�r!r"r��	r&r r#r'r�r��gl�gt�gdrrr�%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@r-)zDTestCase.test_helper_asdict_builtin_object_containers.<locals>.Childr$N�rrrr�r1rrrr�Child�r2r3cr>)zETestCase.test_helper_asdict_builtin_object_containers.<locals>.Parent�childNr?r�r3rr�Parent�r2r6r6r4r$r�r,�r&r6rr5r�,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@r`)z.TestCase.test_helper_asdict_factory.<locals>.Cr.rVNr/rrrrr�rarr6r��Zdict_factory)r.r6)rVr�r3)r.r3)r!r�rr"r�r.r�rH�r&rr�r$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 ccr)z1TestCase.test_helper_asdict_namedtuple.<locals>.Cr.rVNr�r�r<rrrrar�outerr6�innerr���
r�r�r9rV)rr!r�r"rr�rHr:rr>r�test_helper_asdict_namedtuples0
 
���
���	z&TestCase.test_helper_asdict_namedtuplecCsNtGdd�d��}tdd�}||d�di�}|�t|�d|dd�dii�dS)	Nc@r-)z5TestCase.test_helper_asdict_namedtuple_key.<locals>.CrN)rrrr4r1rrrrr+r2rr<r�zan arr�r�)r!rr"r�)r&rr<r�rrr�!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@ry)z9TestCase.test_helper_asdict_namedtuple_derived.<locals>.TcS�|jSr{rDrkrrr�my_a6ryz>TestCase.test_helper_asdict_namedtuple_derived.<locals>.T.my_aN)rrrrGrrrrr<5r=r<ZTbaser�cr>)z9TestCase.test_helper_asdict_namedtuple_derived.<locals>.CrNr?rr>rrr9r2rrNrrD)rr!r�r"r�rG)r&rr
r�r$rr>r�%test_helper_asdict_namedtuple_derived4sz.TestCase.test_helper_asdict_namedtuple_derivedcCs�tGdd�d��}|d�}|�t|�d�|�t|�t|��|�t|�t|��d|_|�t|�d�|�tt|��t�dS)Nc@rT)z'TestCase.test_helper_astuple.<locals>.Cr.rrVNrWrrrrrHrXrr6)r6rr3)r6r3)r!r"r�r�rVr�rHrr�rrr�test_helper_astupleFszTestCase.test_helper_astuplecCr)Nc@r`)z9TestCase.test_helper_astuple_raises_on_classes.<locals>.Cr.rVNr/rrrrrWrarr)r!r<rbr�r0r�rrr�%test_helper_astuple_raises_on_classesUrz.TestCase.test_helper_astuple_raises_on_classescCsxtGdd�d��}g}|d|�}t|�}|�|d|�|�|d|�|d�}t|�}|d�d�|�|jg�dS)Nc@r	)z3TestCase.test_helper_astuple_copy_values.<locals>.Cr.rjrVNr
rrrrrarrr6)r!r�r"r�rrV)r&rr
r�r
rrr�test_helper_astuple_copy_values`rz(TestCase.test_helper_astuple_copy_valuescs|tGdd�d���tG�fdd�d��}|d�dd��}t|�}|�|d�|�t|�t|��d	|j_|�t|�d
�dS)Nc@r`)z3TestCase.test_helper_astuple_nested.<locals>.UserIdrrNr/rrrrrprarcr)z1TestCase.test_helper_astuple_nested.<locals>.UserrCrBNr�rrrrrtrarrrr6)r)rr6r�)r)rr�)r!r�r"r�rBr)r&rrr
rrr�test_helper_astuple_nestedos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@r�)z=TestCase.test_helper_astuple_builtin_containers.<locals>.UserrCrBNrrrrrr�rarcr)zBTestCase.test_helper_astuple_builtin_containers.<locals>.GroupListrBrNrrrrrr �rXr cr!)zCTestCase.test_helper_astuple_builtin_containers.<locals>.GroupTuplerB.rNr"rrrrr#�r$r#cr%)zBTestCase.test_helper_astuple_builtin_containers.<locals>.GroupDictrBrNr&rrrrr'�r$r'r(r6r)r�rr*�r(r6�r)r�)r)rMrN�r!r"r�r-rrr�&test_helper_astuple_builtin_containerss 

z/TestCase.test_helper_astuple_builtin_containerscsptGdd�d���tG�fdd�d��}|�t|�dg���dgff�|�t|�ddi���ddiff�dS)Nc@r-)zETestCase.test_helper_astuple_builtin_object_containers.<locals>.Childr$Nr2rrrrr3�r2r3cr>)zFTestCase.test_helper_astuple_builtin_object_containers.<locals>.Parentr4Nr?rr5rrr6�r2r6r6r�rOr7rr5r�-test_helper_astuple_builtin_object_containers�s (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@r`)z/TestCase.test_helper_astuple_factory.<locals>.Cr.rVNr/rrrrr�rar�NTzx ycs�|�Sr{r)rB�rRrr�nt��z0TestCase.test_helper_astuple_factory.<locals>.ntr6r��Z
tuple_factoryr3)r!rr�r"r�r.r�rH)r&rrTr�r
rrSr�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=cr)z2TestCase.test_helper_astuple_namedtuple.<locals>.Cr.rVNr�rr>rrr�rarr?r6r@r�rArBr�)r@)r�rArBrV)rr!r�r"r3)r&rr�r
rr>r�test_helper_astuple_namedtuple�s
 (z'TestCase.test_helper_astuple_namedtuplecCsNdttd�i}tdd|�}t|�}|�||�|�t|dd��ddd��dS)Nr1r�rrr6r�)r0rHr!r"r��r&Zcls_dictr�Zcls1rrr�test_dynamic_class_creation�s
 z$TestCase.test_dynamic_class_creationcCsTttd�tdd�d�}tdd|�}t|�}|�||�|�t|d��ddd��dS)Nr�r�r�)r1rVrrr6)r0r:rHr!r"r�rYrrr�'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�Fr�r�rjr$rr_r�rN)rrrr0r1r:r�r3r�r$r�rrrrrr�s
rcs��||f�dSr{)r�r&rC�value�Zcallsrr�setattr�r�z,TestCase.test_init_in_order.<locals>.setattrrr6)r�r)r�r6r�r�r$rY)r�r)rrr)r!�__setattr__r"r�)r&rr_r�rr^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�Fr�r�rjr�rr_r$rr�N)rrrr0r1r:r3r�r�r$r�rrrrr�s
rrr�r�r�r$rr�)
r!r�r�rIr"r$r�r�r�r�r�rrr�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_fileszDTestCase.test_alternate_classmethod_constructor.<locals>.C.from_fileN)rrrr0r1r�rdrrrrrs
rrcr�)r!r"rdr.r�rrr�&test_alternate_classmethod_constructors	z/TestCase.test_alternate_classmethod_constructorcCs�tGdd�d��}|�t|�dj�|�tt|�dj�d�|�td��dt|�djd<Wd�dS1s;wYdS)Nc@r-)z/TestCase.test_field_metadata_default.<locals>.Cr*Nr/rrrrr'r2rr� does not support item assignmentrY�test)r!rr$�metadatar"r#r<rbr�rrr�test_field_metadata_default$s�"�z$TestCase.test_field_metadata_defaultcsF|�t��tGdd�d��}Wd�n1swYi�tG�fdd�d��}|�t|�dj�|�tt|�dj�d�d�d<|�tt|�dj�d�|�t|�djdd�|�td��dt|�djd	<Wd�n1szwYd
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�n1s�wY|�td��dt|�djd	<Wd�dS1�swYdS)Nc@r�)�/TestCase.test_field_metadata_mapping.<locals>.Cr�rhr*N�rrrr:r*r0r1rrrrr5r�rcr��rjrkr*Nrlr�r$rrr;r�rr6r�rfrYrgr~Z42Zthree)rgrqrYcr�rmrlrrnrrrJr�rqrZbaz)
r�rbr!rr$rhr"r#r<�KeyErrorr�rrnr�test_field_metadata_mapping1sF�����$�z$TestCase.test_field_metadata_mappingcs�Gdd�d��tG�fdd�d��}|�tt|�dj�d�|�t|�djdd�|�t��t|�djd	Wd�n1sEwY|�t|�djd
d�dS)Nc@�$eZdZdd�Zdd�Zdd�ZdS)zDTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpacec[s|j�|�dSr{)r��update)r&�kwrrrr�_szMTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__init__cSs|dkrdSt||�S)N�xyzzy�plugh)r�)r&�itemrrr�__getitem__bs
zPTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__getitem__cSs
|j��Sr{)r��__len__rkrrrrxgr:zLTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__len__N)rrrr�rwrxrrrr�SimpleNameSpace^srycs&eZdZUe�dd�d�Zeed<dS)z6TestCase.test_field_metadata_custom_mapping.<locals>.Cr~rDrkr*Nrlr�ryrrrj�
rrr6r�r~r�rtru)r!r"r#r$rhr�r�r�rrzr�"test_field_metadata_custom_mapping\s�z+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)rrrr1rr�rr>rr�
LabeledBoxxrXr�r3r~)rr!r
r"r}rrr0)r&r�Zbox�Aliasrr>r�test_generic_dataclassesusz!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.rVNr?r�r�r<rrr��rar�c@r-)z4TestCase.test_generic_extending.<locals>.DataDerivedZ	new_fieldNr�rrrr�DataDerived�r2r�r�test1�test2)rr�r�c@ry)z7TestCase.test_generic_extending.<locals>.NonDataDerivedcSrFr{�rVrkrrr�
new_method�ryzBTestCase.test_generic_extending.<locals>.NonDataDerived.new_methodN)rrrr�rrrr�NonDataDerived�r=r�r~��?)	rr!r
r0r�r"r�rUr�)r&r�r�r�r�r�rr�r�test_generic_extending�s 
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<cr>)z-TestCase.test_generic_dynamic.<locals>.Parentr.Nr?rr>rrr6�r2r6r3rVr�rrr3)�bases�	namespacer6r�rY)
rr!r
r�rr0r�r�r"rrr.�__mro__r�)r&r6r3r�rr>r�test_generic_dynamic�s�zTestCase.test_generic_dynamicc
Cs6tGdd�d��atGdd�d��atGdd�d��atd�}d|_td�tdd�td�|td�tdgd	��g}|D]^}ttjd�D]T}|j||d
��Ct�	t�
||��}|�|j|j�|�|j|j�|�
||�d|_t�	t�
||��}|�|j|j�|�|j|j�Wd�n1s�wYqCq:dS)Nc@rT)�Pr.rrVNrWrrrrr��rXr�c@�*eZdZUeed<eddd�Zeed<dS)�Qr.rFr_rVN�rrrr0r1r:rVrrrrr���
r�c@r	)�Rr.rjrVNr
rrrrr��rr�r6r�)r�rYr)�sample�protor3)r!r�r�r�rV�range�pickle�HIGHEST_PROTOCOLr��loads�dumpsr"r.r�)r&�qZsamplesr�r�Z
new_sampleZanother_new_samplerrr�test_dataclasses_pickleable�s0,����z$TestCase.test_dataclasses_pickleablecCs�tdddd�Gdd�d��}|�|jjd�dD]}|�t||�jd|���q|�td��|�Wd�dS1s=wYdS)	NT)r�rxrec@r`)z.TestCase.test_dataclasses_qualnames.<locals>.Ar.rVNr/rrrrr��rar�r�)
rsr�r�r�r�rlr��__repr__r`�__delattr__z/TestCase.test_dataclasses_qualnames.<locals>.A.zA\.__init__\(\) missing)r!r"r�rr�rr<rb)r&r��functionrrr�test_dataclasses_qualnames�s"�z#TestCase.test_dataclasses_qualnamesN)frrrr(r+r5r?rFrJrPrSrcr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr'r(r7rCrDrFrQrcrirkrlrtr�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�rrrrrr1r8r;rCrErHrIrJrKrLrPrQrWrXrZr[rarbrerirpr|r�r�r�r�r�rrrrrs�

,5!6(!$-F/
9

!


+rc@rq)�TestFieldNoAnnotationcCr�)N�)'f' is a field but has no type annotationc@�eZdZe�ZdS)z>TestFieldNoAnnotation.test_field_without_annotation.<locals>.CN�rrrr:rrrrrr��
rr�r�rrr�test_field_without_annotation�s�"�z3TestFieldNoAnnotation.test_field_without_annotationcCsXtGdd�d��}|�td��tGdd�d|��}Wd�dS1s%wYdS)Nc@r-)zUTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base.<locals>.BrNr/rrrrr^�r2r^r�c@r�)zUTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base.<locals>.CNr�rrrrr�r�r�r!r<rbr�rrr�4test_field_without_annotation_but_annotation_in_base�s�"�zJTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_basecCsTGdd�d�}|�td��tGdd�d|��}Wd�dS1s#wYdS)Nc@r-)zcTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclass.<locals>.BrNr/rrrrr^�r�r^r�c@r�)zcTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclass.<locals>.CNr�rrrrrr�rr�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� �)r"r�)r&r�r�rrr�assertDocStrEquals zTestDocString.assertDocStrEqualcC�$tGdd�d��}|�|jd�dS)Nc@r\)z?TestDocString.test_existing_docstring_not_overridden.<locals>.C�Lorem ipsumr.N)rrr�__doc__r0r1rrrrr
�
rr�)r!r"r�r�rrr�&test_existing_docstring_not_overridden�z4TestDocString.test_existing_docstring_not_overriddencCr�)Nc@r)z1TestDocString.test_docstring_no_fields.<locals>.CNrrrrrrrrzC()�r!r�r�r�rrr�test_docstring_no_fields�z&TestDocString.test_docstring_no_fieldscCr�)Nc@r-)z1TestDocString.test_docstring_one_field.<locals>.Cr.Nr/rrrrrr2rzC(x:int)r�r�rrr�test_docstring_one_fieldr�z&TestDocString.test_docstring_one_fieldcCr�)Nc@r`)z2TestDocString.test_docstring_two_fields.<locals>.Cr.rVNr/rrrrr#rarzC(x:int, y:int)r�r�rrr�test_docstring_two_fields"r�z'TestDocString.test_docstring_two_fieldscCr�)Nc@s&eZdZUeed<eed<eed<dS)z4TestDocString.test_docstring_three_fields.<locals>.Cr.rVr�N�rrrr0r1r�rrrrr+rIrzC(x:int, y:int, z:str)r�r�rrr�test_docstring_three_fields*sz)TestDocString.test_docstring_three_fieldscCr�)Nc@r\)z>TestDocString.test_docstring_one_field_with_default.<locals>.CrYr.NrZrrrrr4r_rz
C(x:int=3)r�r�rrr�%test_docstring_one_field_with_default3r�z3TestDocString.test_docstring_one_field_with_defaultcCr�)Nc@s&eZdZUdZeeed�fed<dS)zCTestDocString.test_docstring_one_field_with_default_none.<locals>.CNr.)rrrr.rr0rHr1rrrrr;r{rzC(x:Optional[int]=None)r�r�rrr�*test_docstring_one_field_with_default_none:r�z8TestDocString.test_docstring_one_field_with_default_nonecCr�)Nc@r�)z2TestDocString.test_docstring_list_field.<locals>.Cr.N)rrrrr0r1rrrrrBr_rzC(x:List[int])r�r�rrr�test_docstring_list_fieldAr�z'TestDocString.test_docstring_list_fieldcCr�)Nc@s$eZdZUeed�Zeeed<dS)zGTestDocString.test_docstring_list_field_with_default_factory.<locals>.Crjr.N)	rrrr:r3r.rr0r1rrrrrIrrzC(x:List[int]=<factory>)r�r�rrr�.test_docstring_list_field_with_default_factoryHr�z<TestDocString.test_docstring_list_field_with_default_factorycCr�)Nc@r-)z3TestDocString.test_docstring_deque_field.<locals>.Cr.N)rrrrr1rrrrrPr2rzC(x:collections.deque)r�r�rrr�test_docstring_deque_fieldOr�z(TestDocString.test_docstring_deque_fieldcCr�)Nc@r�)zHTestDocString.test_docstring_deque_field_with_default_factory.<locals>.Crjr.N)rrrr:rr.r1rrrrrWr�rz C(x:collections.deque=<factory>)r�r�rrr�/test_docstring_deque_field_with_default_factoryVr�z=TestDocString.test_docstring_deque_field_with_default_factoryN)rrrr�r�r�r�r�r�r�r�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@ry)z&TestInit.test_base_has_init.<locals>.BcSr��Nro�r�rkrrrr�asz/TestInit.test_base_has_init.<locals>.B.__init__Nr;rrrrr^`r=r^c@r\)�&TestInit.test_base_has_init.<locals>.Crr.NrZrrrrrir_rr~r�Fr	c@r\)r�r~r.NrZrrrrrrr_ro)r!r"r.r�rr�)r&r^rr�rrr�test_base_has_init_s	zTestInit.test_base_has_initcCsTtdd�Gdd�d��}|�|�jd�tdd�Gdd�d��}|�|�jd�dS)NFr	c@r\)� TestInit.test_no_init.<locals>.Crr*N)rrrr*r0r1rrrrrzr_rrc@r|)r�r�r*cSr��NrY�r*rkrrrr��r:z)TestInit.test_no_init.<locals>.C.__init__N)rrrr*r0r1r�rrrrrr[rY�r!r"r*r�rrr�test_no_inityszTestInit.test_no_initcCs|tGdd�d��}|�|d�jd�tdd�Gdd�d��}|�|d�jd	�td
d�Gdd�d��}|�|d�jd
�dS)Nc@rf)�)TestInit.test_overwriting_init.<locals>.Cr.cS�d||_dSrrR�r&r.rrrr��r��2TestInit.test_overwriting_init.<locals>.C.__init__N�rrrr0r1r�rrrrr�rarrYrNTr	c@rf)r�r.cSr�rrRr�rrrr��r�r�Nr�rrrrr�rar�Fc@rf)r�r.cSr�rrRr�rrrr��r�r�Nr�rrrrr�rar�r~r4r�rrr�test_overwriting_init�szTestInit.test_overwriting_initcCs`Gdd�dt�}tGdd�d|��}|�|d�jd�tGdd�d|��}|�|d�jd�dS)	Nc@r-)z.TestInit.test_inherit_from_protocol.<locals>.Pr�Nr/rrrrr��r�r�c@r-)z.TestInit.test_inherit_from_protocol.<locals>.Cr�Nr/rrrrr�r2rr�c@ry)z.TestInit.test_inherit_from_protocol.<locals>.DcSs|d|_dSrrD)r&r�rrrr��r�z7TestInit.test_inherit_from_protocol.<locals>.D.__init__Nr;rrrrrL�r}rLr~)r
r!r"r�)r&r�rrLrrr�test_inherit_from_protocol�sz#TestInit.test_inherit_from_protocolN)rrrr�r�r�r�rrrrr�^s

r�c@rq)�TestReprcCs�tGdd�d��}tGdd�d|��}|d�}|�t|�d�tGdd�d|��}|�t|��d	�tGd
d�d��}|�t|�d��d�|�t|���d
�dS)Nc@r-)zTestRepr.test_repr.<locals>.Br.Nr/rrrrr^�r2r^c@r\)�TestRepr.test_repr.<locals>.Cr~rVNr�rrrrr�r_rrz(TestRepr.test_repr.<locals>.C(x=4, y=10)c@r\)zTestRepr.test_repr.<locals>.Dr�r.NrZrrrrrL�r_rLz)TestRepr.test_repr.<locals>.D(x=20, y=10)c@s0eZdZeGdd�d��ZeGdd�d��ZdS)r�c@r-)zTestRepr.test_repr.<locals>.C.Dr*Nr/rrrrrL�r2rLc@r)zTestRepr.test_repr.<locals>.C.ENrrrrrr%�rr%N)rrrr!rLr%rrrrr�s
rz$TestRepr.test_repr.<locals>.C.D(i=0)z!TestRepr.test_repr.<locals>.C.E())r!r"rArLr%)r&r^rr'rLrrr�	test_repr�szTestRepr.test_reprcCsbtdd�Gdd�d��}|�t�d�t|d���tdd�Gdd�d��}|�t|d��d�dS)	NFr�c@r-)� TestRepr.test_no_repr.<locals>.Cr.Nr/rrrrr�r2rz+.TestRepr.test_no_repr.<locals>.C object atrYc@rf)r�r.cSrh)N�C-classrrkrrrr��rmz)TestRepr.test_no_repr.<locals>.C.__repr__N�rrrr0r1r�rrrrr�rar�)r!rIrrAr"r�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@rf)�)TestRepr.test_overwriting_repr.<locals>.Cr.cSrh�Nr.rrkrrrr��rm�2TestRepr.test_overwriting_repr.<locals>.C.__repr__Nr�rrrrr�rarrr.Tr�c@rf)r�r.cSrhr�rrkrrrr��rmr�Nr�rrrrr�raFc@rf)r�r.cSrhr�rrkrrrr��rmr�Nr�rrrrr�rar�r�rrr�test_overwriting_repr�szTestRepr.test_overwriting_reprN)rrrr�r�r�rrrrr��sr�c@�eZdZdd�Zdd�ZdS)�TestEqcCsltdd�Gdd�d��}|�|d�|d��|d�}|�||�tdd�Gdd�d��}|�|d�d�dS)	NF�r�c@r-)�TestEq.test_no_eq.<locals>.Cr.Nr/rrrrr�r2rrrYc@rf)r�r.cS�|dkSr}rrqrrrrs		rUz#TestEq.test_no_eq.<locals>.C.__eq__Nrurrrrr	rar~)r!r�r"r�rrr�
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@rf)�%TestEq.test_overwriting_eq.<locals>.Cr.cSr�r�rrqrrrrs	rU�,TestEq.test_overwriting_eq.<locals>.C.__eq__Nrurrrrr	rarr6rYTr�c@rf)r�r.cSr�rorrqrrrrs	rUr�Nrurrrrr	rarFc@rf)r�r.cSr�rprrqrrrrs$	rUr�Nrurrrrr!	rar�rr�rrr�test_overwriting_eq
	szTestEq.test_overwriting_eqN)rrrr�r�rrrrr��sr�c@rq)�TestOrderingcCsZttGdd�d���}|�|d�d�|�|d�d�|�|d�d�|�|d�d�dS)Nc@rf)z5TestOrdering.test_functools_total_ordering.<locals>.Cr.cSs
|j|kSr{rRrqrrrr�1	s
z<TestOrdering.test_functools_total_ordering.<locals>.C.__lt__N�rrrr0r1r�rrrrr-	s
rr���r6)rr!r�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@r-)�%TestOrdering.test_no_order.<locals>.Cr.Nr/rrrrr=	r2rr�r�r�r�c@rf)r�r.cSrhrprrqrrrr�J	rmz,TestOrdering.test_no_order.<locals>.C.__lt__Nr�rrrrrG	rar�r�rrr�
test_no_order;	szTestOrdering.test_no_ordercCs|�td��tdd�Gdd�d��}Wd�n1swY|�td��tdd�Gdd�d��}Wd�n1s?wY|�td��tdd�Gd	d�d��}Wd�n1sawY|�td
��tdd�Gdd�d��}Wd�dS1s�wYdS)NzACannot overwrite attribute __lt__.*using functools.total_orderingTr�c@rf)�.TestOrdering.test_overwriting_order.<locals>.Cr.cSrzr{rrkrrrr�X	rmz5TestOrdering.test_overwriting_order.<locals>.C.__lt__Nr�rrrrrU	rarzACannot overwrite attribute __le__.*using functools.total_orderingc@rf)r�r.cSrzr{rrkrrrr�a	rmz5TestOrdering.test_overwriting_order.<locals>.C.__le__N)rrrr0r1r�rrrrr^	razACannot overwrite attribute __gt__.*using functools.total_orderingc@rf)r�r.cSrzr{rrkrrrr�j	rmz5TestOrdering.test_overwriting_order.<locals>.C.__gt__N)rrrr0r1r�rrrrrg	razACannot overwrite attribute __ge__.*using functools.total_orderingc@rf)r�r.cSrzr{rrkrrrr�s	rmz5TestOrdering.test_overwriting_order.<locals>.C.__ge__N)rrrr0r1r�rrrrrp	rar�r�rrr�test_overwriting_orderQ	s0��	��	��	�"�z#TestOrdering.test_overwriting_orderN)rrrr�r�r�rrrrr�*	sr�c@�<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestHashcCs6tdd�Gdd�d��}|�t|dd��td��dS)NTrwc@r�)z$TestHash.test_unsafe_hash.<locals>.Cr.rVNr�rrrrrx	rarr6r�)r6r��r!r"rr�rrr�test_unsafe_hashw	szTestHash.test_unsafe_hashc	s�dd�}�fdd�}tgd�d�D]9\}\}}}}}|||||d|�|||||d|�||||�||�||�d|�||||�||�||�d|�qdS)	NcSs|durdS|r
dSdS)N)rYrr)r]rrr�non_bool	s
z*TestHash.test_hash_rules.<locals>.non_boolc	s��j||||d���|dkr-|rt|||d�Gdd�d��}nt|||d�Gdd�d��}|dkrA��d|j���|jd�nV|d	krO|sN��d|j�nP|d
krc��d|j���|jd�nD|dkr�|skJ���td��t|||d�Gdd�d��}Wd�n1s�wYnJd|����Wd�dSWd�dSWd�dSWd�dS1s�wYdS)N)�caserxr�rer�)rxr�rec@ry)�1TestHash.test_hash_rules.<locals>.test.<locals>.CcSrhr�rrkrrrrl�	rm�:TestHash.test_hash_rules.<locals>.test.<locals>.C.__hash__Nr|rrrrr�	r}rc@r)r�Nrrrrrr�	rr�rlr��nonervc@ry)r�cSrhr�rrkrrrrl�	rmr�Nr|rrrrr�	r}Fr�)	r�r!rIr�ZassertIsNotNoner�rr<rb)r�rxr�reZ	with_hashr�rrkrrrg�	sF
���������"z&TestHash.test_hash_rules.<locals>.test))FFFr�r�)FFTr�r�)FTFr�r�)FTTr�r�)TFFr�r�)TFTr�r�)TTFr�r�)TTTr�r�r6FT)r�)	r&r�rgr�rxr�reZres_no_defined_hashZres_defined_hashrrkr�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@rf)� TestHash.test_eq_only.<locals>.Cr*cS�|j|jkSr{r�rqrrrrs�	��'TestHash.test_eq_only.<locals>.C.__eq__Nrurrrrr�	rarr6rTrwc@rf)r�r*cSr�r{r�rqrrrrs�	r�r�Nrurrrrr�	rar�)rxr�c@rf)r�r*cSs|jdko
|j|jkSr�r�rqrrrrs�	sr�Nrurrrrr�	rarY)r!r"r�rr�rrr�test_eq_only�	s
 zTestHash.test_eq_onlycCs`tdd�Gdd�d��}|�t|��td��tdd�Gdd�d��}|�t|��td��dS)NTrdc@r�z%TestHash.test_0_field_hash.<locals>.CNrrrrrr�	rrrrwc@rrrrrrrr�	rr�r�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)NTrdc@r-�z%TestHash.test_1_field_hash.<locals>.Cr.Nr/rrrrr�	r2rr)rr3�r3rwc@r-rr/rrrrr
r2r�r�rrr�test_1_field_hash�	szTestHash.test_1_field_hashcCsFGdd�d�}ddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dffD]�\}}}}|j||||d	���|dur�|dur�tGd
d�d|��}n2|dur�t|d�Gd
d�d|��}n |dur�t|d�Gdd�d|��}nt||d�Gdd�d|��}|dkr�|d�}|�td��t|�Wd�n1s�wYn5|dkr�|�t|d��d�n&|dkr�|�|jtj�n|dk�r	|�t|d��td��nJd|����Wd�n	1�swYqcdS)Nc@ry)z(TestHash.test_hash_no_args.<locals>.BasecSrhrirrkrrrrl
rmz1TestHash.test_hash_no_args.<locals>.Base.__hash__Nr|rrrrr�
r=r�Z
unhashableFr��baseTr)rer�rr�c@r-�z%TestHash.test_hash_no_args.<locals>.Cr*Nr/rrrrr+
r2rr�c@r-rr/rrrrr/
r2rdc@r-rr/rrrrr3
r2)rer�c@r-rr/rrrrr7
r2r~�unhashable typerjr3rzunknown value for expected=)	r�r�r!r<rbrr"r�rl)r&r�rer�rr�rr�rrr�test_hash_no_args
sb

















�

��
����zTestHash.test_hash_no_argsN)	rrrr�r�rrrr	rrrrr�v	sN#
r�c@�\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�
TestFrozencCsptdd�Gdd�d��}|d�}|�|jd�|�t��d|_Wd�n1s*wY|�|jd�dS)NTrdc@r-)z!TestFrozen.test_frozen.<locals>.Cr*Nr/rrrrrT
r2rr~r�)r!r"r*r�r�r�rrr�test_frozenS
s�zTestFrozen.test_frozencCs�tdd�Gdd�d��}tdd�Gdd�d|��}|dd�}|�t��d	|_Wd�n1s1wY|�t��d
|_Wd�n1sIwY|�|jd�|�|jd�dS)NTrdc@r-)z"TestFrozen.test_inherit.<locals>.Cr*Nr/rrrrr_
r2rc@r-)z"TestFrozen.test_inherit.<locals>.DrSNr/rrrrrLc
r2rLrr~r�rN)r!r�r�r*rSr"�r&rrLr$rrr�test_inherit^
s
��zTestFrozen.test_inheritcCs^tdd�Gdd�d��}|�td��tGdd�d|��}Wd�dS1s(wYdS)NTrdc@r)z>TestFrozen.test_inherit_nonfrozen_from_empty_frozen.<locals>.CNrrrrrrp
rr�5cannot inherit non-frozen dataclass from a frozen onec@r-)z>TestFrozen.test_inherit_nonfrozen_from_empty_frozen.<locals>.DrSNr/rrrrrLv
r2rLr�rOrrr�(test_inherit_nonfrozen_from_empty_frozeno
s�"�z3TestFrozen.test_inherit_nonfrozen_from_empty_frozencCsLtGdd�d��}tGdd�d|��}|d�}|�|jd�|�||�dS)Nc@r)z7TestFrozen.test_inherit_nonfrozen_from_empty.<locals>.CNrrrrrr{
rrc@r-)z7TestFrozen.test_inherit_nonfrozen_from_empty.<locals>.DrSNr/rrrrrL
r2rLrY)r!r"rSrr
rrr�!test_inherit_nonfrozen_from_emptyz
sz,TestFrozen.test_inherit_nonfrozen_from_emptyc
Cs�dD]Q}|j|d��Atdd�Gdd�d��}|r"Gdd�d|�}n|}|�td	��tGd
d�d|��}Wd�n1s?wYWd�n1sNwYqdS)N�TF��intermediate_classTrdc@r-)z8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.Cr*Nr/rrrrr�
r2rc@r)z8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.INrrrrr�I�
rrrc@r)z8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.DNrrrrrrL�
rrL�r�r!r<rb�r&rrrrLrrr�"test_inherit_nonfrozen_from_frozen�
s"������z-TestFrozen.test_inherit_nonfrozen_from_frozenc
Cs�dD]Q}|j|d��AtGdd�d��}|rGdd�d|�}n|}|�td��tdd	�Gd
d�d|��}Wd�n1s?wYWd�n1sNwYqdS)Nrrc@r-)z8TestFrozen.test_inherit_frozen_from_nonfrozen.<locals>.Cr*Nr/rrrrr�
r2rc@r)z8TestFrozen.test_inherit_frozen_from_nonfrozen.<locals>.INrrrrrr�
rrz5cannot inherit frozen dataclass from a non-frozen oneTrdc@r)z8TestFrozen.test_inherit_frozen_from_nonfrozen.<locals>.DNrrrrrrL�
rrLrrrrr�"test_inherit_frozen_from_nonfrozen�
s"������z-TestFrozen.test_inherit_frozen_from_nonfrozenc	Cs�dD]U}|j|d��)Gdd�d�}|rGdd�d|�}n|}tdd�Gd	d
�d
|��}Wd�n1s6wY|d�}|�t��d|_Wd�n1sRwYqdS)
Nrrc@r)z4TestFrozen.test_inherit_from_normal_class.<locals>.CNrrrrrr�
rKrc@r)z4TestFrozen.test_inherit_from_normal_class.<locals>.INrrrrrr�
rrTrdc@r-)z4TestFrozen.test_inherit_from_normal_class.<locals>.Dr*Nr/rrrrrL�
r2rLr~r�)r�r!r�r�r*)r&rrrrLr$rrr�test_inherit_from_normal_class�
s�
���z)TestFrozen.test_inherit_from_normal_classcCs�tdd�Gdd�d��}Gdd�d|�}|d�}|�|jd�|�|jd�d|_|�t��d	|_Wd�n1s<wY|�t��d	|_Wd�n1sTwY|�|jd�|�|jd�|�|jd�dS)
NTrdc@rT)z4TestFrozen.test_non_frozen_normal_derived.<locals>.Dr.r~rVNrWrrrrrL�
rXrLc@r)z4TestFrozen.test_non_frozen_normal_derived.<locals>.SNrrrrrr��
rKr�rYr~r�)r!r"r.rV�cachedr�r�)r&rLr�r�rrr�test_non_frozen_normal_derived�
s ��z)TestFrozen.test_non_frozen_normal_derivedcCs�|�td��tdd�Gdd�d��}Wd�n1swY|�td��tdd�Gdd�d��}Wd�n1s?wYtdd�Gd	d�d��}|�|d
�jd�dS)Nz&Cannot overwrite attribute __setattr__Trdc@rf)�-TestFrozen.test_overwriting_frozen.<locals>.Cr.cSrzr{rrkrrrr`�
rm�9TestFrozen.test_overwriting_frozen.<locals>.C.__setattr__N�rrrr0r1r`rrrrr�
rarz&Cannot overwrite attribute __delattr__c@rf)rr.cSrzr{rrkrrrr��
rmz9TestFrozen.test_overwriting_frozen.<locals>.C.__delattr__N)rrrr0r1r�rrrrr�
raFc@rf)rr.cSs|d|jd<dS)Nr�r.)r�r\rrrr`�
r�rNrrrrrr�
rar~r�)r<rbr!r"r.r�rrr�test_overwriting_frozen�
s����z"TestFrozen.test_overwriting_frozencCsbtdd�Gdd�d��}t|d��|�td��t|i��Wd�dS1s*wYdS)NTrdc@r-)z&TestFrozen.test_frozen_hash.<locals>.Cr.N)rrrrr1rrrrr�
r2rrYr)r!rr<rbr�rrr�test_frozen_hash�
s"�zTestFrozen.test_frozen_hashN)
rrrrrrrrrrrr r!rrrrrR
src@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	d
d
d�Gdd�d��Z
e	d
d�Gdd�d��Zdd�Zdd�Z
dd�ZdS)�	TestSlotscCs�tGdd�d��}|�td��|�Wd�n1swY|d�}|�|jd�d|_|�|jd�|�td��d|_Wd�dS1sLwYdS)Nc@r\)z TestSlots.test_simple.<locals>.CrRr.N�rrr�	__slots__rr1rrrrrr�rr�r~r�z'C' object has no attribute 'y')r!r<rbr"r.r�rVr�rrr�test_simples��"�zTestSlots.test_simplecCsNtGdd�d��}tGdd�d|��}|dd�}|�|j|jfd�d|_dS)	Nc@r\)z0TestSlots.test_derived_added_field.<locals>.BaserRr.Nr#rrrrr�r�r�c@r`)z3TestSlots.test_derived_added_field.<locals>.Derivedr.rVNr/rrrr�Derivedrar&r6r�rEr~)r!r"r.rVr�)r&r�r&r$rrr�test_derived_added_fields

z"TestSlots.test_derived_added_fieldcCs�tdd�Gdd�d��}|dd�}|�|j|jfd�d|_d	|_|�|j|jfd
�|�td��d|_Wd�dS1s@wYdS)
NT��slotsc@r`)z)TestSlots.test_generated_slots.<locals>.Cr.rVNr/rrrrr+rarr6r�rErYrr�z'C' object has no attribute 'z'r�)r!r"r.rVr<r�r�r�rrr�test_generated_slots*s
"�zTestSlots.test_generated_slotscCsJ|�td��tdd�Gdd�d��}Wd�dS1swYdS)Nz^C already specifies __slots__$Tr(c@r\)z5TestSlots.test_add_slots_when_slots_exists.<locals>.CrRr.N)rrrr$r0r1rrrrr<r�rr�r�rrr� test_add_slots_when_slots_exists:s"�z*TestSlots.test_add_slots_when_slots_existscCsvtdd�Gdd�d��}|�|jd�tdd�Gdd�d|��}|�|jd�tGd	d
�d
|��}|�d|jv�dS)NTr(c@r-)z2TestSlots.test_generated_slots_value.<locals>.Baser.Nr/rrrrr�Br2r�rRc@r-)z7TestSlots.test_generated_slots_value.<locals>.DeliveredrVNr/rrrr�	DeliveredHr2r,r�c@r-)z>TestSlots.test_generated_slots_value.<locals>.AnotherDeliveredr�Nr/rrrr�AnotherDeliveredNr2r-r$)r!r"r$r�r�)r&r�r,r-rrr�test_generated_slots_valueAsz$TestSlots.test_generated_slots_valuecCsJGdd�d�}t|dd�}|�||�|�t|d��|�t|d��dS)Nc@r-)z+TestSlots.test_returns_new_class.<locals>.Ar.Nr/rrrrr�Ur�r�Tr(r$)r!r�rrr��r&r�r^rrr�test_returns_new_classTs
z TestSlots.test_returns_new_classT)rer)c@r�)zTestSlots.FrozenSlotsClassr�rqNrrrrr�FrozenSlotsClass_rar1rdc@r�)z!TestSlots.FrozenWithoutSlotsClassr�rqNrrrrr�FrozenWithoutSlotsClassdrar2c	Cs�|�|jjd�ttjd�D]P}|j|d��@|�dd�}t�tj||d��}|�	||�|�||�|�
dd�}t�tj||d��}|�	||�|�||�Wd�n1sZwYqdS)N)r�rqr6)r�r�)�protocol)r"r1r$r�r�r�r�r�r�r�r2)r&r�r��prrr�test_frozen_pickleis���zTestSlots.test_frozen_picklecC�@tdd�Gdd�d��}|d�}|�|jd�|�|jd�dS)NTr(c@s*eZdZUeed<eddd�Zeed<dS)z4TestSlots.test_slots_with_default_no_init.<locals>.Ar�r�Fr_N�rrrr�r1r:r�rrrrr�{r�r�r�r��r!r"r�r��r&r�r�rrr�test_slots_with_default_no_inity�
z)TestSlots.test_slots_with_default_no_initcCr6)NTr(c@s.eZdZUeed<edd�dd�Zeed<dS)z<TestSlots.test_slots_with_default_factory_no_init.<locals>.Ar�cSrh)Nr�rrrrrr��r�zETestSlots.test_slots_with_default_factory_no_init.<locals>.A.<lambda>Fr�r�Nr7rrrrr��s
r�r�r�r8r9rrr�'test_slots_with_default_factory_no_init�r;z1TestSlots.test_slots_with_default_factory_no_initN)rrrr%r'r*r+r.r0r!r1r2r5r:r<rrrrr"s
r"c@r
)�TestDescriptorscsnGdd�d��tG�fdd�d��}|�|jjd�tG�fdd�d��}|�|jjd�|�|�jd�dS)Nc@r�)z(TestDescriptors.test_set_name.<locals>.DcS�|d|_dSr��rC�r&�ownerrCrrr�__set_name__�r�z5TestDescriptors.test_set_name.<locals>.D.__set_name__cSs|durdS|S�Nr6r�r&�instancerArrr�__get__�sz0TestDescriptors.test_set_name.<locals>.D.__get__N)rrrrBrFrrrrrL�srLcseZdZU��Zeed<dS)�(TestDescriptors.test_set_name.<locals>.Cr�N)rrrr�r0r1r�rLrrr�rMr�cxc�$eZdZUe��dd�Zeed<dS)rGFr_r�N�rrrr:r�r0r1rrHrrr�rr6�r!r"r�rCr�rrHr�
test_set_name�s
zTestDescriptors.test_set_namecs8Gdd�d��tG�fdd�d��}|�|jjd�dS)Nc@ry)z.TestDescriptors.test_non_descriptor.<locals>.DcSr>r�r?r@rrrrB�r�z;TestDescriptors.test_non_descriptor.<locals>.D.__set_name__N)rrrrBrrrrrL�r=rLcrJ)z.TestDescriptors.test_non_descriptor.<locals>.CFr_r�NrKrrHrrr�rrrIrLr�rrHr�test_non_descriptor�sz#TestDescriptors.test_non_descriptorcsFGdd�d�}|��t��_tG�fdd�d��}|��jjd�dS)Nc@r)z2TestDescriptors.test_lookup_on_instance.<locals>.DNrrrrrrL�rKrLcr�)z2TestDescriptors.test_lookup_on_instance.<locals>.CFr_r*Nrlrrnrrr�r;rr�rrBr!r"r�)r&rLrrrnr�test_lookup_on_instance�sz'TestDescriptors.test_lookup_on_instancecs@Gdd�d��t��_tG�fdd�d��}|��jjd�dS)Nc@r)z/TestDescriptors.test_lookup_on_class.<locals>.DNrrrrrrL�rKrLcrJ)z/TestDescriptors.test_lookup_on_class.<locals>.CFr_r*NrlrrHrrr�rrr6rOr�rrHr�test_lookup_on_class�s
z$TestDescriptors.test_lookup_on_classcsRGdd�d��t��_tG�fdd�d��}�j��|d�}|��jjd�dS)Nc@r)z.TestDescriptors.test_init_calls_set.<locals>.DNrrrrrrL�rKrLc�eZdZU��Z�ed<dS)z.TestDescriptors.test_init_calls_set.<locals>.Cr*N�rrrr*r1rrHrrr�rMrr�r6)r�__set__r!�
reset_mockr"r�r�rrHr�test_init_calls_set�s
z#TestDescriptors.test_init_calls_setcs`Gdd�d��t��_t��_tG�fdd�d��}|d�}�j��|j}|��jjd�dS)Nc@r)z7TestDescriptors.test_getting_field_calls_get.<locals>.DNrrrrrrL�rKrLcrR)z7TestDescriptors.test_getting_field_calls_get.<locals>.Cr*NrSrrHrrr�rMrr�r6)rrTrFr!rUr*r"r�)r&rr�r]rrHr�test_getting_field_calls_get�s
z,TestDescriptors.test_getting_field_calls_getcsXGdd�d��t��_tG�fdd�d��}|d�}�j��d|_|��jjd�dS)Nc@r)z7TestDescriptors.test_setting_field_calls_set.<locals>.DNrrrrrrL�rKrLcrR)z7TestDescriptors.test_setting_field_calls_set.<locals>.Cr*NrSrrHrrr�rMrr�r~r6)rrTr!rUr*r"r�r�rrHr�test_setting_field_calls_set�s
z,TestDescriptors.test_setting_field_calls_setcspGdd�d��t��_tG�fdd�d��}�j��|d�}|��jjd���|_d|_|��jjd�dS)Nc@r)zFTestDescriptors.test_setting_uninitialized_descriptor_field.<locals>.DNrrrrrrL	rKrLcr>)zFTestDescriptors.test_setting_uninitialized_descriptor_field.<locals>.Cr*Nr?rrHrrrr2rr�r)rrTr!rUr"r�r*r�rrHr�+test_setting_uninitialized_descriptor_fields
z;TestDescriptors.test_setting_uninitialized_descriptor_fieldcsRGdd�d��tG�fdd�d��}|�}|�|jd�|d�}|�|jd�dS)Nc@�8eZdZdededefdd�Zdededdfdd	�ZdS)
z-TestDescriptors.test_default_value.<locals>.DrErArncSs|durdS|jSr���_xrDrrrrFsz5TestDescriptors.test_default_value.<locals>.D.__get__r]NcS�
||_dSr{r[�r&rEr]rrrrT%r:z5TestDescriptors.test_default_value.<locals>.D.__set__�rrrrr�r0rFrTrrrrrL�rLcrR)z-TestDescriptors.test_default_value.<locals>.Cr*NrSrrHrrr(rMrror�r�r�rrHr�test_default_values
z"TestDescriptors.test_default_valuecs\Gdd�d��tG�fdd�d��}|�td��|�}Wd�dS1s'wYdS)Nc@rZ)
z0TestDescriptors.test_no_default_value.<locals>.DrErArncSs|durt��|jSr{)r�r\rDrrrrF4sz8TestDescriptors.test_no_default_value.<locals>.D.__get__r]NcSr]r{r[r^rrrrT:r:z8TestDescriptors.test_no_default_value.<locals>.D.__set__r_rrrrrL3r`rLcrR)z0TestDescriptors.test_no_default_value.<locals>.Cr*NrSrrHrrr=rMrz&missing 1 required positional argumentr�r�rrHr�test_no_default_value2s
"�z%TestDescriptors.test_no_default_valueN)
rrrrMrNrPrQrVrWrXrYrarbrrrrr=�s

r=c@r�)�TestStringAnnotationsc	sddD]-�|j�d��tG�fdd�d��}|�|�d|j�Wd�n1s*wYqdS)N)z
ClassVar[int]zClassVar [int]z 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+�Ztypestrcr>)z.TestStringAnnotations.test_classvar.<locals>.Cr.Nr?rrdrrr^r2rr.)r�r!r�r�r�rrdr�
test_classvarEs���z#TestStringAnnotations.test_classvarc	�bdD],�|j�d��tG�fdd�d��}|�|d�jd�Wd�n1s)wYqdS)N)
�CVz
t.ClassVarzt.ClassVar[int]ztyping..ClassVar[int]ZClassvarz
Classvar[int]ztyping.ClassVarx[int]ztypong.ClassVar[int]zdataclasses.ClassVar[int]ztypingxClassVar[str]rdcr>)z3TestStringAnnotations.test_isnt_classvar.<locals>.Cr.Nr?rrdrrrvr2rr~�r�r!r"r.r�rrdr�test_isnt_classvaris���z(TestStringAnnotations.test_isnt_classvarc
s�dD]>�|j�d��.tG�fdd�d��}|�td��
|d�jWd�n1s,wYWd�n1s;wYqdS)N)
zInitVar[int]zInitVar [int] InitVar [int]r�z	 InitVar r�zdataclasses.InitVar[str]z dataclasses.InitVar[str]zdataclasses .InitVar[str]zdataclasses. InitVar[str]zdataclasses.InitVar [str]zdataclasses.InitVar [ str]zdataclasses.InitVar.[int]zdataclasses.InitVar+rdcr>)z-TestStringAnnotations.test_initvar.<locals>.Cr.Nr?rrdrrr�r2rzobject has no attribute 'x'r6)r�r!r<r�r.r�rrdr�test_initvar}s������z"TestStringAnnotations.test_initvarc	rf)N)�IVz
dc.InitVarzxdataclasses.xInitVarztyping.xInitVar[int]rdcr>)z2TestStringAnnotations.test_isnt_initvar.<locals>.Cr.Nr?rrdrrr�r2rr~rhr�rrdr�test_isnt_initvar�s���z'TestStringAnnotations.test_isnt_initvarcCsRddlm}ddlm}ddlm}ddlm}||||fD]�}|j|d��x|jr0|�d�}n|��}|�|j	d�|�
dd	d
dd�}d
D]7}|j|d��'|�td|�d���
t
||�Wd�n1siwYWd�n1sxwYqF|jr�|�d|j�|�|jd�n|�d|j�Wd�n1s�wYqdS)Nr)�dataclass_module_1)�dataclass_module_1_str)�dataclass_module_2)�dataclass_module_2_str)�mr~r�r6r�rYr)Ziv0Ziv1Ziv2Ziv3)�
field_namezobject has no attribute 'r��not_iv4)rgrmrnrorpr�Z
USING_STRINGSrgr"Zcv0rkr<r�r�rIr�rsr�)r&rmrnrorprqr�rrrrr�!test_classvar_module_level_import�s:���������z7TestStringAnnotations.test_classvar_module_level_importcCsHddlm}|�t|j�d|ji�|�t|jj�|jtd�d��dS)Nr)�dataclass_textannor�)r�rn)rgrur"rr�r�r�rH)r&rurrr�test_text_annotations�s�
��z+TestStringAnnotations.test_text_annotationsN)	rrrrerirjrlrtrvrrrrrcDs$)rcc@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.rVr�r��add_onecSs
|jdSrCrRrkrrrr��s
z/TestMakeDataclass.test_simple.<locals>.<lambda>�r�r~)r~r�r�)r�r0r:r"r.rVrxr�rrrr%�s�
�zTestMakeDataclass.test_simplecCs6i}tddtfdttdd�fg|d�}|�|i�dS)Nrr.rVr�r�ry)r�r0r:r")r&�nsrrrr�test_no_mutate_namespace�s��z*TestMakeDataclass.test_no_mutate_namespacecCsdGdd�d�}Gdd�d�}tddtfg||fd�}|d�}|�||�|�||�|�||�dS)	Nc@r)z*TestMakeDataclass.test_base.<locals>.Base1Nrrrrr�Base1�rKr|c@r)z*TestMakeDataclass.test_base.<locals>.Base2Nrrrrr�Base2�rKr}rr.�r�r�)r�r0r�r&r|r}rr�rrr�	test_base�s�zTestMakeDataclass.test_basecCs�tGdd�d��}Gdd�d�}tddtfg||fd�}|�td��|d	�}Wd�n1s1wY|d
d	�}|�||�|�||�|�||�|�|j|jfd�dS)Nc@r-)z4TestMakeDataclass.test_base_dataclass.<locals>.Base1r.Nr/rrrrr|
r2r|c@r)z4TestMakeDataclass.test_base_dataclass.<locals>.Base2Nrrrrrr}
rKr}rrVr~zrequired positionalr�r6rE)	r!r�r0r<rbrr"r.rVrrrr�test_base_dataclass
s�
�
z%TestMakeDataclass.test_base_dataclasscCs`dd�}tddtfdttfgd|id�}|dd	�}|�t|�dd
i�|�tt|��d�dS)NcS�|j|9_dSr{rR�r&rVrrr�	post_init
r�z2TestMakeDataclass.test_init_var.<locals>.post_initrr.rVrxryr�rYrNr6)r�r0r�r"rr#r$)r&r�rr�rrrr�
s
��
zTestMakeDataclass.test_init_varc	Cs~tddtfdttdfdtttdd�fg�}|d�}|�t|�ddi�|�tt|��d�|�|jd�|�|j	d�dS)	Nrr.rVr~r�r�r�r6)
r�r0rr:r"rr#r$rVr�r�rrrr� 
s��z TestMakeDataclass.test_class_varc	Cs�tddtfdttdfdtttdd�fgdd	�}|�d
t|��|�dt|��|�td��tdgdd
�}Wd�dS1sBwYdS)Nrr.rVr~r�r�r�Fr	r�r�zunexpected keyword argument)Zxxinit)	r�r0rr:r�rrIr<rbr�rrr�test_other_params,
s���"�z#TestMakeDataclass.test_other_paramscCs�tdgd��}|ddd�}|�t|�dddd��|�|jdddd��tdddtfd	g�}|ddd�}|�t|�dddd��|�|jdtdd��dS)
Nr.�r.rVr�r6r�rYz
typing.Anyr.rVr�)r�r"rr1r0r�rrr�
test_no_types=
s
�
�zTestMakeDataclass.test_no_typesc
Cs�dD]5}|j|d��%|�td��tdd|g�Wd�n1s#wYWd�n1s2wYqtdd�fD]5}|j|d��%|�td��tdd|g�Wd�n1s_wYWd�n1snwYq>dS)	N)r)r6r�rYr)�	bad_fieldzInvalid field: rr�cSs|Sr{rrRrrrr�V
r�zCTestMakeDataclass.test_invalid_type_specification.<locals>.<lambda>zhas no len\(\))r�r<rbr�rU)r&r�rrr�test_invalid_type_specificationL
s&����������z1TestMakeDataclass.test_invalid_type_specificationc
CsvdD]6}|j|d��&|�td��td|d|g�Wd�n1s$wYWd�n1s3wYqdS)N)r��ab�r:zField name duplicatedrr��r�r<rbr��r&r:rrr�test_duplicate_field_names\
s�����z,TestMakeDataclass.test_duplicate_field_namesc
C��dD]n}|j|d��^|�td��tdd|g�Wd�n1s#wY|�td��td|g�Wd�n1s?wY|�td��td|dg�Wd�n1s\wYWd�n1skwYqdS)N)�for�async�await�asr�zmust not be keywordsrr�r�r�rrr�test_keyword_field_namesb
��������z*TestMakeDataclass.test_keyword_field_namesc
Cr�)N)�()�x,yr�2@3r�zlittle johnny tablesr�zmust be valid identifiersrr�r�r�rrr�test_non_identifier_field_namesl
r�z1TestMakeDataclass.test_non_identifier_field_namescCstdgd��dS)Nr)�_Z_aZa_aZa_)r�rkrrr�test_underscore_field_namesv
sz-TestMakeDataclass.test_underscore_field_namesc	CsVdD]&}|j|d��t|ddg�}|�|j|�Wd�n1s#wYqdS)N)r�r�rr�r�)�	classnamer�r�)r�r�r"r)r&r�rrrr�test_funny_class_names_names{
s���z.TestMakeDataclass.test_funny_class_names_namesN)rrrr%r{r�r�r�r�r�r�r�r�r�r�r�r�rrrrrw�s
	


rwc@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)	NTrdc@r`)zTestReplace.test.<locals>.Cr.rVNr/rrrrr�
rarr6r�rYrR)r!r�r"r.rV�r&rr�r�rrrrg�
s
zTestReplace.testcCs\tdd�Gdd�d��}|dd�}t|dd�}|�|j|j|j|jfd	�|�|j|j|j|jfd
�|�td��t|ddd
d�Wd�n1sLwY|�td��t|dd�t|ddd
d�Wd�n1spwY|�t	d��d|_Wd�n1s�wY|�t
d��t|ddd�}Wd�dS1s�wYdS)NTrdc@sFeZdZUeed<eed<eddd�Zeed<eddd�Zeed<d	S)
z"TestReplace.test_frozen.<locals>.Cr.rVFr~r
r�ror
N)rrrr0r1r:r�r
rrrrr�
s

rr6r�rYrR)r6r�r~ro)rYr�r~ro�
init=Falser�r�)r.r�r
r�zcannot assign to field 'x'z3__init__\(\) got an unexpected keyword argument 'a'r�)r.r�)r!r�r"r.rVr�r
r<r=r�rbr�rrrr�
s&
���"�zTestReplace.test_frozencCs`tdd�Gdd�d��}|dd�}|�td��t|dd	�}Wd�dS1s)wYdS)
NTrdc@r`)z.TestReplace.test_invalid_field_name.<locals>.Cr.rVNr/rrrrr�
rarr6r�z3__init__\(\) got an unexpected keyword argument 'z'rYr��r!r<rbr�r�rrr�test_invalid_field_name�
s
"�z#TestReplace.test_invalid_field_namecCs�tdd�Gdd�d��}|�td��t|dd�Wd�n1s#wY|�td��tddd�Wd�dS1s@wYdS)	NTrdc@r`)z*TestReplace.test_invalid_object.<locals>.Cr.rVNr/rrrrr�
rarrrYrRrr�r�rrr�test_invalid_object�
s�"�zTestReplace.test_invalid_objectcCs�tGdd�d��}|d�}d|_t|dd�}|�|j|jfd�|�td��t|d	d
d�Wd�n1s8wY|�td��t|d
d�Wd�dS1sUwYdS)
Nc@r�)z#TestReplace.test_no_init.<locals>.Cr.Fr~r
rVNr�rrrrr�
r�rr6r�r�rR)r�r~r�r��r�r�)r!rVr�r"r.r<r=r�rrrr��
s�"�zTestReplace.test_no_initcCs�tGdd�d��}|d�}|d�}|�|j|j�|�|jd�|�td��t|dd�Wd�n1s7wYt|d	d
�dS)Nc@s&eZdZUeed<dZeeed<dS)z$TestReplace.test_classvar.<locals>.Cr.r�rVN)rrrr0r1rVrrrrrr�
r$rr6r�r�z3__init__\(\) got an unexpected keyword argument 'y'r�r�r�rR)r!r�rVr"r<rbr�r:rrrre�
s�zTestReplace.test_classvarcCs�tGdd�d��}|dd�}|�|jd�|�td��t|dd�Wd�n1s,wYt|ddd	�}|�|jd
�dS)Nc@r�)z0TestReplace.test_initvar_is_specified.<locals>.Cr.rVcSr�r{rRr�rrrrx�
r�z>TestReplace.test_initvar_is_specified.<locals>.C.__post_init__Nr�rrrrr�
r�rr6r~z,InitVar 'y' must be specified with replace()rYrRr�r�r�)r!r"r.r<r=r�r�rrr�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.NrVr3r�cSs4|dur|j|7_|dur|j|7_dSdSr{rR)r&rVr�rrrrxs
�zDTestReplace.test_initvar_with_default_value.<locals>.C.__post_init__)	rrrr0r1rVr�r�rxrrrrr�
s

rr6r~r�rArRrr�r3)rVr�)r!r"r�r�rrr�test_initvar_with_default_value�
s$z+TestReplace.test_initvar_with_default_valuecCs4tGdd�d��}|d�}||_|�t|�d�dS)Nc@�eZdZUded<dS)z*TestReplace.test_recursive_repr.<locals>.CrrNr?rrrrrr2rz1TestReplace.test_recursive_repr.<locals>.C(f=...)�r!rr"rAr�rrr�test_recursive_reprs
zTestReplace.test_recursive_reprcCs<tGdd�d��}|dd�}||_||_|�t|�d�dS)Nc@seZdZUded<ded<dS)z4TestReplace.test_recursive_repr_two_attrs.<locals>.Crr�gNr?rrrrrrarzBTestReplace.test_recursive_repr_two_attrs.<locals>.C(f=..., g=...))r!rr�r"rAr�rrr�test_recursive_repr_two_attrss
z)TestReplace.test_recursive_repr_two_attrscCsTtGdd�d��}tGdd�d��}|d�}|d�}||_||_|�t|�d�dS)Nc@r�)z6TestReplace.test_recursive_repr_indirection.<locals>.CrLrNr?rrrrr&r2rc@r�)z6TestReplace.test_recursive_repr_indirection.<locals>.DrrNr?rrrrrL*r2rLzwTestReplace.test_recursive_repr_indirection.<locals>.C(f=TestReplace.test_recursive_repr_indirection.<locals>.D(f=...))r�)r&rrLr�r$rrr�test_recursive_repr_indirection%sz+TestReplace.test_recursive_repr_indirectioncCsttGdd�d��}tGdd�d��}tGdd�d��}|d�}|d�}|d�}||_||_||_|�t|�d�dS)Nc@r�)z:TestReplace.test_recursive_repr_indirection_two.<locals>.CrLrNr?rrrrr7r2rc@r�)z:TestReplace.test_recursive_repr_indirection_two.<locals>.Dr%rNr?rrrrrL;r2rLc@r�)z:TestReplace.test_recursive_repr_indirection_two.<locals>.ErrNr?rrrrr%?r2r%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&rrLr%r�r$r�rrr�#test_recursive_repr_indirection_two6sz/TestReplace.test_recursive_repr_indirection_twocCs6tGdd�d��}|dd�}||_|�t|�d�dS)Nc@seZdZUded<eed<dS)z5TestReplace.test_recursive_repr_misc_attrs.<locals>.Crrr�Nr�rrrrrOrarr6zATestReplace.test_recursive_repr_misc_attrs.<locals>.C(f=..., g=1)r�r�rrr�test_recursive_repr_misc_attrsNs

z*TestReplace.test_recursive_repr_misc_attrsN)rrrrgrr�r�r�rer�r�r�r�r�r�r�rrrrr��
s 	r�c@r�)�TestAbstractcCs\Gdd�dtj�}tdd�Gdd�d|��}|�t�|��|�|ddd	�|dd
d��dS)Nc@s(eZdZejdd��Zejdd��ZdS)z5TestAbstract.test_abc_implementation.<locals>.OrderedcSrzr{rrqrrrr�jrrz<TestAbstract.test_abc_implementation.<locals>.Ordered.__lt__cSrzr{rrqrrrr�nrrz<TestAbstract.test_abc_implementation.<locals>.Ordered.__le__N)rrr�abc�abstractmethodr�r�rrrr�Orderedis

r�Tr�c@�&eZdZUeed<ded<ded<dS)z2TestAbstract.test_abc_implementation.<locals>.DaterJ�MonthrKr0rLNr/rrrrrMrrIrMi�rA�r��)r��ABCr!rr��
isabstractr�)r&r�rMrrr�test_abc_implementationhs
	 z$TestAbstract.test_abc_implementationcCsLGdd�dtj�}tGdd�d|��}|�t�|��d}|�t||�dS)Nc@seZdZejdd��ZdS)z)TestAbstract.test_maintain_abc.<locals>.AcSrzr{rrkrrrr�}rrz-TestAbstract.test_maintain_abc.<locals>.A.fooN)rrrr�r�r�rrrrr�|sr�c@r�)z,TestAbstract.test_maintain_abc.<locals>.DaterJr�rKr0rLNr/rrrrrM�rIrMz#class Date with abstract method foo)r�r�r!r�r�r�r<rb)r&r�rMr>rrr�test_maintain_abc{szTestAbstract.test_maintain_abcN)rrrr�r�rrrrr�gsr�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�
TestMatchArgscCs(tGdd�d��}|�|d�jd�dS)Nc@r-)z(TestMatchArgs.test_match_args.<locals>.Cr�Nr/rrrrr�r2rr3rD�r!r"�__match_args__r�rrr�test_match_args�szTestMatchArgs.test_match_argscs0d�tG�fdd�d��}|�|d�j��dS)NrcseZdZUeed<�ZdS)z1TestMatchArgs.test_explicit_match_args.<locals>.Cr�N�rrrr0r1r�r�Zmarrr��
rr3)r!r�r�r�rr�r�test_explicit_match_args�sz&TestMatchArgs.test_explicit_match_argscCs.tdddd�Gdd�d��}|�|jd�dS)NF)rAr�r@c@rG)z'TestMatchArgs.test_bpo_43764.<locals>.Xr�r�r�Nr/rrrr�X�rIr��r�r�r�r�)r&r�rrr�test_bpo_43764�szTestMatchArgs.test_bpo_43764cCs�tdd�Gdd�d��}|�d|j�tdd�Gdd�d��}|�|jd�tdd�Gd	d
�d
|��}|�|jd�tGdd�d��}tdd�Gd
d�d|��}|�|jd�dS)NF�Z
match_argsc@r-)z1TestMatchArgs.test_match_args_argument.<locals>.Xr�Nr/rrrrr��r2r�r�c@seZdZUeed<dZdS)z1TestMatchArgs.test_match_args_argument.<locals>.Yr��r�Nr�rrrr�Y�r�r�r�c@r-)z1TestMatchArgs.test_match_args_argument.<locals>.Zr�Nr/rrrr�Z�r2r�c@r`)z1TestMatchArgs.test_match_args_argument.<locals>.Ar�r�Nr/rrrrr��rar�c@r-)z1TestMatchArgs.test_match_args_argument.<locals>.Br�Nr/rrrrr^�r2r^)r�r�)r!r�r�r"r�)r&r�r�r�r�r^rrr�test_match_args_argument�sz&TestMatchArgs.test_match_args_argumentcCs�tddtfdtfg�}|�|jd�tddtfdtfgdd�}|�|jd�tddtfdtfgdd�}|�d|j�tddtfdtfgd	d
id�}|�|jd
�dS)Nrr.rVr�Tr�FZ__match__args__r�r�ry)r�r0r"r�r�r�r�rrr�test_make_dataclasses�sz#TestMatchArgs.test_make_dataclassesN)rrrr�r�r�r�r�rrrrr��sr�c@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�TestKeywordArgscCs�d}|�t|��tGdd�d��}Wd�n1swY|�t|��tGdd�d��}Wd�n1s;wY|�t|��tdd�Gdd�d��}Wd�dS1s^wYdS)Nz+field a is a ClassVar but specifies kw_onlyc@r�)�1TestKeywordArgs.test_no_classvar_kwarg.<locals>.AT��kw_onlyr�N�rrrr:r�rr0r1rrrrr��rr�c@r��r�Fr�r�Nr�rrrrr��rTr�c@r�r�r�rrrrr��rr�)r&r>r�rrr�test_no_classvar_kwarg�s��"�z&TestKeywordArgs.test_no_classvar_kwargcCs~tdd�Gdd�d��}|�t|�dj�tdd�Gdd�d��}|�t|�dj�tdd�Gdd�d��}|�t|�dj�tdd�Gd	d�d��}|�t|�dj�tdd�Gd
d�d��}|�t|�dj�tdd�Gdd�d��}|�t|�dj�tGdd�d��}|�t|�dj�tGd
d�d��}|�t|�dj�tGdd�d��}|�t|�dj�dS)NTr�c@r-��6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.Ar�Nr/rrrrr��r2r�rc@r��r�Tr�r�N�rrrr:r�r0r1rrrrr��r�c@r��r�Fr�r�Nr�rrrrr��r�Fc@r-r�r/rrrrr��r2c@r�r�r�rrrrr��r�c@r�r�r�rrrrr��r�c@r-r�r/rrrrr�r2c@r�r�r�rrrrr�	r�c@r�r�r�rrrrr�r�)r!r�r$r�r)r&r�rrr�test_field_marked_as_kwonly�s6z+TestKeywordArgs.test_field_marked_as_kwonlycCsXtdd�Gdd�d��}|�|dd�jd�tGdd�d��}|�|dd	d
�jd�dS)NTr�c@r-)�*TestKeywordArgs.test_match_args.<locals>.Cr�Nr/rrrrrr2rr3rDrc@s(eZdZUeed<edd�Zeed<dS)r�r�Tr�r�N)rrrr0r1r:r�rrrrrr�r~r�r�r�rrrr�szTestKeywordArgs.test_match_argscCs�tGdd�d��}|dddd�d}|�t|��|ddd�Wd�n1s)wYtdd	�Gd
d�d��}|dddd�d
}|�t|��|ddd�Wd�n1sZwYtGdd�d��}|dddd�}|�|jd�|�|jd�|�|jd�|dddd�}|�|jd�|�|jd�|�|jd�|dddd�}|�|jd�|�|jd�|�|jd�|dddd�}|�|jd�|�|jd�|�|jd�dS)Nc@�.eZdZUeed<eed<eed<eed<dS)z'TestKeywordArgs.test_KW_ONLY.<locals>.Ar�r�r�r�N�rrrr0r1�KW_ONLYrrrrr�!�

r�rYr�r�r�r��-takes 2 positional arguments but 4 were givenTr�c@r�)z'TestKeywordArgs.test_KW_ONLY.<locals>.Br�r�r�r�Nr�rrrrr^-r�r^r�z,takes 1 positional argument but 4 were givenc@�8eZdZUeed<eed<eed<edd�Zeed<dS)z'TestKeywordArgs.test_KW_ONLY.<locals>.Cr�r�r�Fr�r�N�rrrr0r1r�r:r�rrrrr9�

rr6r�r�)r�r�)r�r�r�)r!r<rbr"r�r�r�)r&r�r>r^rr�rrr�test_KW_ONLY s@��zTestKeywordArgs.test_KW_ONLYcCsbtGdd�d��}|dddd�d}|�t|��|ddd�Wd�dS1s*wYdS)Nc@s.eZdZUeed<ded<eed<eed<dS)z1TestKeywordArgs.test_KW_ONLY_as_string.<locals>.Ar�zdataclasses.KW_ONLYr�r�r�Nr/rrrrr�Qr�r�rYr�rr�r�r�)r&r�r>rrr�test_KW_ONLY_as_stringPs"�z&TestKeywordArgs.test_KW_ONLY_as_stringcCsNd}|�t|��tGdd�d��}Wd�n1swY|�t|��tGdd�d��}Wd�n1s;wY|�t|��tGdd�d��}Wd�n1sZwYtGdd�d��}tGdd�d��}tGdd	�d	|��}|�t|��tGd
d�d��}tGdd	�d	|��}Wd�dS1s�wYdS)Nz6'Y' is KW_ONLY, but KW_ONLY has already been specifiedc@s6eZdZUeed<eed<eed<eed<eed<dS)�-TestKeywordArgs.test_KW_ONLY_twice.<locals>.Ar�r�r�r�r�Nr�rrrrr�`�
r�c@s6eZdZUeed<eed<eed<eed<eed<dS)r�r�r�r�r�r�Nr�rrrrr�ir�c@s6eZdZUeed<eed<eed<eed<eed<dS)r�r�r�r�r�r�Nr�rrrrr�rr�c@r�)r�r�r�r�Tr�r�Nr�rrrrr�{r�c@r��r�r�r�r�r�Nr�rrrrr��r�c@r�)�-TestKeywordArgs.test_KW_ONLY_twice.<locals>.Br�r$N�rrrr�r1r0rrrrr^�rar^c@r�r�r�rrrrr��r�c@s&eZdZUeed<eed<eed<dS)r�r�r$r�Nr�rrrrr^�rIr�)r&r>r�r^rrr�test_KW_ONLY_twice\s2�	�	�
"�z"TestKeywordArgs.test_KW_ONLY_twicecCs�tGdd�d��}|�td��|ddddd�Wd�n1s"wYtGd	d
�d
��}|ddddd�}|�t|�ddd��dS)Nc@�FeZdZUeed<eed<eeed<eed<eeed<dd�ZdS)	z)TestKeywordArgs.test_post_init.<locals>.Ar�r�r�r�r$cSstd|�d|����)Nzb=z d=rw�r&r�r$rrrrx�rmz7TestKeywordArgs.test_post_init.<locals>.A.__post_init__N�rrrr0r1r�r�rxrrrrr���
r�zb=3 d=4r6r�rYr)r�r�r$c@r�)	z)TestKeywordArgs.test_post_init.<locals>.Br�r�r�r�r$cSs||_||_dSr{�r�r�r�rrrrx�s
z7TestKeywordArgs.test_post_init.<locals>.B.__post_init__Nr�rrrrr^�r�r^r�)r!r<rr"r�)r&r�r^r�rrrr��s�	zTestKeywordArgs.test_post_initcCs�tGdd�d��}|ddd�}|�|jd�|�|jd�|�|jd�|�|jd�d}|�t|��tGd	d�d��}Wd�dS1sHwYdS)
Nc@s>eZdZUdZeed<eed<eed<dZeed<eed<dS)	�(TestKeywordArgs.test_defaults.<locals>.Arr�r�r�r6r�r$N�rrrr�r0r1r�r�rrrrr��s
r�rrY)r$r�rr6z1non-default argument 'z' follows default argumentc@sFeZdZUdZeed<eed<eed<eed<dZeed<eed<d	S)
r�rr�r�r�r�r6r�r$Nr�rrrrr��s
)r!r"r�r�r�r$r<rb)r&r�r�Z	err_regexrrr�
test_defaults�s"�zTestKeywordArgs.test_defaultscCsntddgdd�}|�t|�dj�tdddttdd�fgdd�}|�t|�dj�|�t|�d	j�dS)
Nr�r�Tr�rr^r�Fr6)r�r�r$r�r0r:rr/rrr�test_make_dataclass�s�z#TestKeywordArgs.test_make_dataclassN)rrrr�r�r�r�r�r�r�r�r�rrrrr��s4
0Ar��__main__)2Zdataclassesr�r�r�r�r�r�r�ZunittestZ
unittest.mockr�typingrrrrrr	r
rrr
r�collectionsrrr�	functoolsr�	Exceptionrrr�r�r�r�r�r�r�rr"r=rcrwr�r�r�r�r�mainrrrr�<module>sz0V#YVG/L]/6%e%A
�