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.opt-2.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>�False�None�Truec3�&�|]}|�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�nO|dkr�|�d	|j�|�d
|j�|�d|j�|�d|j�|�d
|j�n'|dkr�|�d	|j�|�d
|j�|�d|j�|�d|j�|�d
|j�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�)r�r<r=r!�assertNotInr�rI)r&r�r��resultrrrr�
test_eq_order�s@
��
����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]L\��}|j��d��8tdd�G��fdd�d��}|dkr/|�t|d��td	��n|d
kr?|�t|d��td��Wd�n1sIwYqdS)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�rr)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.rrVFrr�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!rr )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�rr/z7mutable default .*Subclass'> for field z is not allowedcseZdZU��Z�ed<dS)r+r�N)rrrr�r1r�r/r)rrr-�rMcs eZdZU��Ze�ed<dS)�4TestCase.test_disallowed_mutable_defaults.<locals>.Cr�N)rrrr�rr1rr(rrr�r�rcs eZdZU��Ze�ed<dS)r1r.N)rrrr.rr1rr0rrr�r�)�list�dict�setr�r<r=r!�r&r-rr)r/r,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.r8�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�r5rrr�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��
rGc@rF)z/TestCase.test_not_other_dataclass.<locals>.Date�year�month�dayNr/rrrr�Date�rHrLi��rYr6r�)r6r�rY�unpackr�r�c@s2eZdZUdZeed<dZeed<dZeed<dS)z4TestCase.test_not_other_dataclass.<locals>.Point3Dv1rr.rVr�N)rrrr.r0r1rVr�rrrr�	Point3Dv1rrOr)r!r�r<rb)r&rGrLr.rVr�rOrrr�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�FrKrQcs���|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�kr8r�r&)r"r1r0r��float�complexr�r�r�r�Zreturn_annotationr�r��valuesr�rC�
annotationr8Z	Parameterr,�kindZPOSITIONAL_OR_KEYWORDr��
StopIteration)r�r��paramsZparam)rQr&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*rRrSNr�r8y@@F�r8r@r��rrrr0r1r�rSr:r8rTr�rUr�rQrrrr?�
rT)rerxcr\r]r_rr`rrrJra)r!)r&r[rr)rQrr&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_defaultcCrc)Nc@rd)z0TestCase.test_missing_default_factory.<locals>.C�r9r.Nrerrrrrmr�rrfr.c@s"eZdZUeeed�Zeed<dS)z0TestCase.test_missing_default_factory.<locals>.Dr7r.NrerrrrrLvr;rLrgrOrrr�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�Nr�rrkrrrr��rmz;TestCase.test_dont_include_other_annotations.<locals>.C.foocSrh�Nr�rrkrrr�bar��z;TestCase.test_dont_include_other_annotations.<locals>.C.barN)rrrr0r1r��propertyrprrrrr�s

rr*r~r�r�)r!r"r2r1r�rpr*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�rrrrwrrrrr�r}rc@�"eZdZUdZeed<dd�ZdS)rtr~r*cSs|jdkrt��dS�Nr~)r*rrkrrrrw�s
�ryN)rrrr*r0r1rwrrrrr�r[r�Frc@ry)rtcSrur{rvrkrrrrw�rxryNrzrrrrr�r}c@r{)rtrr.cS�|jd9_dS�Nr�rRrkrrrrw��ryN�rrrr.r0r1rwrrrrr�r[rr�r�Trdc@r{)rtrr.cSr}r~rRrkrrrrw�rryNr�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>.BcSrur{rvrkrrrrw�rxz6TestCase.test_post_init_super.<locals>.B.__post_init__Nrzrrrrr^�r<r^c@ry)�(TestCase.test_post_init_super.<locals>.CcS�
d|_dSrorRrkrrrrw�r9�6TestCase.test_post_init_super.<locals>.C.__post_init__Nrzrrrrr�r}rr�cseZdZ�fdd�Z�ZS)r�cst���dSr{)�superrwrk��	__class__rrrw��r�)rrrrw�
__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��flagrrrw�sz=TestCase.test_post_init_staticmethod.<locals>.C.__post_init__N)rrrr0r1�staticmethodrwrr�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�rrrrw�s
z<TestCase.test_post_init_classmethod.<locals>.C.__post_init__N)rrrr�r0r1�classmethodrwrrrrr�s
rrYr�r�)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�rMr�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>.Crir.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>.Crir.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|_dSdSr~rR)r&r�rrrrwxs
�z/TestCase.test_init_var.<locals>.C.__post_init__)	rrrr.r0r1r�r�rwrrrrrss
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�r0rHrArr2r�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�rrrrw�sz;TestCase.test_init_var_inheritance.<locals>.C.__post_init__N�rrrr0r1r�rwrrrrr��
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.rirVN)rrrr0r1r:r2rVrrrrr��
rrYr�r6cs0eZdZUeed<e�fdd�d�Zeed<dS)r�r.cs�Sr{rrr7rrr���z1TestCase.test_default_factory.<locals>.C.<lambda>rirVN)rrrr0r1r:rVr2rr7rrr�s
c@�"eZdZUeedd�Zeed<dS)r�F)r9rAr.N�rrrr:r2r.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�c1rr7r�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.r2r1r��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>.Crir.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>.Foorir.N)rrrr:r3r.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�rLr�r�)r�r�)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>.Crir.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�r2r0rH)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)rrrr0r1rTrrrrrxrarrgr%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�rHr3r�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.rirVN�	rrrr0r1r:r2rVrrrrrr��
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�rXrc�&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&rr"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�r2r2cr=)zETestCase.test_helper_asdict_builtin_object_containers.<locals>.Parent�childNr>r�r2rr�Parent�r2r5r6r3r#r�r+�r&r5rr4r�,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�r8rV)rr!r�r"rr�rHr9rr=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)rrrr3r1rrrrr+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{rCrkrrr�my_a6rxz>TestCase.test_helper_asdict_namedtuple_derived.<locals>.T.my_aN)rrrrFrrrrr;5r<r;ZTbaser�cr=)z9TestCase.test_helper_asdict_namedtuple_derived.<locals>.CrNr>rr=rrr9r2rrMrrC)rr!r�r"r�rF)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.rirVNr	rrrrrar
rr6)r!r�r"r�rrV)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�rXrcr )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)rLrM�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#Nr1rrrrr2�r2r2cr=)zFTestCase.test_helper_astuple_builtin_object_containers.<locals>.Parentr3Nr>rr4rrr5�r2r5r6r�rNr6rr4r�-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)rA�rQrr�nt��z0TestCase.test_helper_astuple_factory.<locals>.ntr6r��Z
tuple_factoryr3)r!rr�r"r�r.r�rH)r&rrSr�r	rrRr�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�r@rAr�)r?)r�r@rArU)rr!r�r"r2)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�rXrrr�'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�rir#r�r^r�rN)rrrr0r1r:r�r2r�r#r�rrrrrr�s
rcs��||f�dSr{)r�r&rC�value�Zcallsrr�setattr�rz,TestCase.test_init_in_order.<locals>.setattrrr6)r�r)r�r6r�r�r#rY)r�r�)rr�r�)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�rir�r�r^r#rr�N)rrrr0r1r:r2r�r�r#r�rrrrr�s
rrr�r�r�r#r�r�)
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�rcrrrrrs
rrbr�)r!r"rcr.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�rgr*N�rrrr:r*r0r1rrrrr5r�rcr��rirjr*Nrkr�r#rrr;r�rr6r�rerYrfr~Z42Zthree)rfrprYcr�rlrkrrmrrrJr�rpr�Zbaz)
r�rbr!rr$rgr"r#r<�KeyErrorr�rrmr�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__rkrrrrwgr9zLTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__len__N)rrrr�rvrwrrrr�SimpleNameSpace^srxcs&eZdZUe�dd�d�Zeed<dS)z6TestCase.test_field_metadata_custom_mapping.<locals>.Cr~rCrjr*Nrkr�rxrrrj�
rrr6r�r~r�rsrt)r!r"r#r$rgr�r�r�rryr�"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)rrrr1r~r�rr=rr�
LabeledBoxxrXrr3r})rr!r
r"r|r~rr0)r&rZbox�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>.NonDataDerivedcSrEr{�rVrkrrr�
new_method�rxzBTestCase.test_generic_extending.<locals>.NonDataDerived.new_methodN)rrrr�rrrr�NonDataDerived�r<r�r~��?)	rr!r
r0r�r"r�rTr�)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=rrr5�r2r5r2rVr�rrr3)�bases�	namespacer6r�rY)
rr!r
r�rr0r�r�r"rrr.�__mro__r�)r&r5r2r�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.rirVNr	rrrrr��r
r�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�rrrrr&r'r6rBrCrErPrbrhrjrkrsr�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�rrrr
rr0r7r:rBrDrGrHrIrJrKrOrPrVrWrYrZr`rardrhror{r�r�r�r�r�rrrrrs�

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

+rc@rp)�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@seZdZU	eed<dS)z?TestDocString.test_existing_docstring_not_overridden.<locals>.Cr.Nr/rrrrr
s
rzLorem ipsum)r!r"�__doc__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+rHrzC(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;rzrzC(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>.Crir.N)	rrrr:r2r.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>.Crir.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�Frc@r\)r�r~r.NrZrrrrrrr_ro)r!r"r.r�r
r�)r&r^rr�rrr�test_base_has_init_s	zTestInit.test_base_has_initcCsTtdd�Gdd�d��}|�|�jd�tdd�Gdd�d��}|�|�jd�dS)NFrc@r\)� TestInit.test_no_init.<locals>.Crr*N)rrrr*r0r1rrrrrzr_rrc@r{)r�r�r*cSr��NrY�r*rkrrrr��r9z)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||_dSr~rR�r&r.rrrr��r��2TestInit.test_overwriting_init.<locals>.C.__init__N�rrrr0r1r�rrrrr�rarrYrMTrc@rf)r�r.cSr�r~rRr�rrrr��r�r�Nr�rrrrr�rar��Fc@rf)r�r.cSr�r~rRr�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|_dSr~rC)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@rp)�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_rr�z(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		rTz#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	rT�,TestEq.test_overwriting_eq.<locals>.C.__eq__Nrurrrrr	rarr6rYTr�c@rf)r�r.cSr�rnrrqrrrrs	rTr�Nrurrrrr	rar�Fc@rf)r�r.cSr�rorrqrrrrs$	rTr�Nrurrrrr!	rar�rr�rrr�test_overwriting_eq
	szTestEq.test_overwriting_eqN)rrrr�r�rrrrr��sr�c@rp)�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	sz�j||||d���|dkr-|rt|||d�Gdd�d��}nt|||d�Gdd�d��}|dkrA��d|j���|jd�nJ|d	krO|sN��d|j�nD|d
krc��d|j���|jd�n@|dkr���td��t|||d�Gdd�d��}Wd�n(1s�wYWd�dSWd�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})	r�r!rIr�ZassertIsNotNoner�rr<rb)r�rxr�reZ	with_hashr�rrkrrrf�	sB
�������!"�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�rfr�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�	rarr6r�Trwc@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@rr�rrrrrr�	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�)r�r3�r3rwc@r-rr/rrrrr
r2r�r�rrr�test_1_field_hash�	szTestHash.test_1_field_hashcCs6Gdd�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�wYn-|dkr�|�t|d��d�n|dkr�|�|jtj�n|dk�r|�t|d��td��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 typerjr3r)	r�r�r!r<rbrr"r�rl)r&r�rer�rr�rr�rrr�test_hash_no_args
s`

















�

��
����zTestHash.test_hash_no_argsN)	rrrr�r�r�r�rrrrrrr�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>.DrRNr/rrrrrLc
r2rLrr~r�rM)r!r�r�r*rRr"�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>.DrRNr/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>.DrRNr/rrrrrL
r2rLrY)r!r"rRr
r
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�
rrrc@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_�
rrNrrrrrr�
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	rr
rrrrrrrrrrrrR
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__rr1rrrrr�
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�rDr~)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�rDrYr�r�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�rpNrrrrr�FrozenSlotsClass_rar/rdc@r�)z!TestSlots.FrozenWithoutSlotsClassr�rpNrrrrr�FrozenWithoutSlotsClassdrar0c	Cs�|�|jjd�ttjd�D]P}|j|d��@|�dd�}t�tj||d��}|�	||�|�||�|�
dd�}t�tj||d��}|�	||�|�||�Wd�n1sZwYqdS)N)r�rpr6)r�r�)�protocol)r"r/r!r�r�r�r�r�r�r�r0)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_initcCr4)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�Nr5rrrrr��s
r�r�r�r6r7rrr�'test_slots_with_default_factory_no_init�r9z1TestSlots.test_slots_with_default_factory_no_initN)rrrr#r%r(r)r,r.r!r/r0r3r8r:rrrrrs
rc@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&�instancer?rrr�__get__�sz0TestDescriptors.test_set_name.<locals>.D.__get__N)rrrr@rDrrrrrL�srLcseZdZU��Zeed<dS)�(TestDescriptors.test_set_name.<locals>.Cr�N)rrrr�r0r1r�rLrrr�rMr�cxc�$eZdZUe��dd�Zeed<dS)rEFr^r�N�rrrr:r�r0r1rrFrrr�rr6�r!r"r�rCr�rrFr�
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>rrrr@�r�z;TestDescriptors.test_non_descriptor.<locals>.D.__set_name__N)rrrr@rrrrrL�r<rLcrH)z.TestDescriptors.test_non_descriptor.<locals>.CFr^r�NrIrrFrrr�rrrGrJr�rrFr�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*Nrkrrmrrr�r;rr�rr@r!r"r�)r&rLrrrmr�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�rKrLcrH)z/TestDescriptors.test_lookup_on_class.<locals>.CFr^r*NrkrrFrrr�rrr6rMr�rrFr�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*r1rrFrrr�rMrr�r6)r�__set__r!�
reset_mockr"r�r�rrFr�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�rKrLcrP)z7TestDescriptors.test_getting_field_calls_get.<locals>.Cr*NrQrrFrrr�rMrr�r6)rrRrDr!rSr*r"r�)r&rr�r\rrFr�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�rKrLcrP)z7TestDescriptors.test_setting_field_calls_set.<locals>.Cr*NrQrrFrrr�rMrr�r~r6)rrRr!rSr*r"r�r�rrFr�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>rrFrrrr2rr�r)rrRr!rSr"r�r*r�rrFr�+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>.DrCr?rmcSs|durdS|jSr���_xrBrrrrDsz5TestDescriptors.test_default_value.<locals>.D.__get__r\NcS�
||_dSr{rY�r&rCr\rrrrR%r9z5TestDescriptors.test_default_value.<locals>.D.__set__�rrrrr�r0rDrRrrrrrL�rLcrP)z-TestDescriptors.test_default_value.<locals>.Cr*NrQrrFrrr(rMrror�r�r�rrFr�test_default_values
z"TestDescriptors.test_default_valuecs\Gdd�d��tG�fdd�d��}|�td��|�}Wd�dS1s'wYdS)Nc@rX)
z0TestDescriptors.test_no_default_value.<locals>.DrCr?rmcSs|durt��|jSr{)r�rZrBrrrrD4sz8TestDescriptors.test_no_default_value.<locals>.D.__get__r\NcSr[r{rYr\rrrrR:r9z8TestDescriptors.test_no_default_value.<locals>.D.__set__r]rrrrrL3r^rLcrP)z0TestDescriptors.test_no_default_value.<locals>.Cr*NrQrrFrrr=rMrz&missing 1 required positional argumentr�r�rrFr�test_no_default_value2s
"�z%TestDescriptors.test_no_default_valueN)
rrrrKrLrNrOrTrUrVrWr_r`rrrrr;�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>rrbrrr^r2rr.)r�r!r�r�r�rrbr�
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]rbcr=)z3TestStringAnnotations.test_isnt_classvar.<locals>.Cr.Nr>rrbrrrvr2rr~�r�r!r"r.r�rrbr�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+rbcr=)z-TestStringAnnotations.test_initvar.<locals>.Cr.Nr>rrbrrr�r2rzobject has no attribute 'x'r6)r�r!r<r�r.r�rrbr�test_initvar}s������z"TestStringAnnotations.test_initvarc	rd)N)�IVz
dc.InitVarzxdataclasses.xInitVarztyping.xInitVar[int]rbcr=)z2TestStringAnnotations.test_isnt_initvar.<locals>.Cr.Nr>rrbrrr�r2rr~rfr�rrbr�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)rfrkrlrmrnr�Z
USING_STRINGSrer"Zcv0rir<r�r�rIr�rqr�)r&rkrlrmrnror�rprrr�!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�rm)rfrsr"rr�r�r�rH)r&rsrrr�test_text_annotations�s�
��z+TestStringAnnotations.test_text_annotationsN)	rrrrcrgrhrjrrrtrrrrraDs$)rac@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
|jdSrArRrkrrrr��s
z/TestMakeDataclass.test_simple.<locals>.<lambda>�r�r~)r~r�r�)r�r0r:r"r.rVrvr�rrrr#�s�
�zTestMakeDataclass.test_simplecCs6i}tddtfdttdd�fg|d�}|�|i�dS)Nrr.rVr�r�rw)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�rKrzc@r)z*TestMakeDataclass.test_base.<locals>.Base2Nrrrrr�Base2�rKr{rr.�r�r�)r�r0r
�r&rzr{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/rrrrrz
r2rzc@r)z4TestMakeDataclass.test_base_dataclass.<locals>.Base2Nrrrrrr{
rKr{rrVr|zrequired positionalr�r6rD)	r!r�r0r<rbr
r"r.rVr}rrr�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
rz2TestMakeDataclass.test_init_var.<locals>.post_initrr.rVrwrwr�rYrMr6)r�r0r�r"r
r#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"r
r#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�Frr�r�zunexpected keyword argument)Zxxinit)	r�r0rr:r�r
rIr<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"r
r1r0r�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�rT)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#ryr~rr�r�r�r�r�r�r�r�r�r�rrrrru�s
	


ruc@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�rrrrf�
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�r9rrrrc�
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�rrrrw�
rz>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�rrrrws
�zDTestReplace.test_initvar_with_default_value.<locals>.C.__post_init__)	rrrr0r1rVr�r�rwrrrrr�
s

rr6r~r�r@rRr�r�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)rrrrfr	r�r�r�rcr�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�jrqz<TestAbstract.test_abc_implementation.<locals>.Ordered.__lt__cSrzr{rrqrrrr�nrqz<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>.DaterI�MonthrJr0rKNr/rrrrrLrrHrLi�r@�r��)r��ABCr!rr��
isabstractr�)r&r�rLrrr�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�}rqz-TestAbstract.test_maintain_abc.<locals>.A.fooN)rrrr�r�r�rrrrr�|sr�c@r�)z,TestAbstract.test_maintain_abc.<locals>.DaterIr�rJr0rKNr/rrrrrL�rHrLz#class Date with abstract method foo)r�r�r!r�r�r�r<rb)r&r�rLr>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�r2rr3rC�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@rF)z'TestMatchArgs.test_bpo_43764.<locals>.Xr�r�r�Nr/rrrr�X�rHr��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�rw)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/rrrrrr2rr3rCrc@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�r�r�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^�rHr�)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=rv�r&r�r#rrrrw�rlz7TestKeywordArgs.test_post_init.<locals>.A.__post_init__N�rrrr0r1r�r�rwrrrrr���
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�rrrrw�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�r�rY)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�rrr;rarur�r�r�r�r�mainrrrr�<module>sz0V#YVG/L]/6%e%A
�