Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_dataclasses.cpython-38.opt-1.pyc
U

>��g0��@s�ddlTddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
mZmZm
Z
mZmZmZddlmZddlmZmZmZddlmZddlZddlZGdd	�d	e�ZGd
d�dej�ZGdd
�d
ej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�Z Gdd�dej�Z!Gdd�dej�Z"Gdd�dej�Z#Gdd�dej�Z$Gd d!�d!ej�Z%Gd"d#�d#ej�Z&Gd$d%�d%ej�Z'e(d&k�r�e�)�dS)'�)�*N)�Mock)	�ClassVar�Any�List�Union�Tuple�Dict�Generic�TypeVar�Optional)�get_type_hints)�deque�OrderedDict�
namedtuple)�total_orderingc@seZdZdS)�CustomErrorN��__name__�
__module__�__qualname__�rr�4/opt/cppython/lib/python3.8/test/test_dataclasses.pyrsrc@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�S)��TestCasecCs0tGdd�d��}|�}|�tt|��d�dS)Nc@seZdZdS)z"TestCase.test_no_fields.<locals>.CNrrrrr�Csrr��	dataclass�assertEqual�len�fields��selfr�orrr�test_no_fieldsszTestCase.test_no_fieldscCs0tGdd�d��}|�}|�tt|��d�dS)Nc@seZdZdZdS)z6TestCase.test_no_fields_but_member_variable.<locals>.CrN)rrr�irrrrr!srrrr rrr�"test_no_fields_but_member_variable sz+TestCase.test_no_fields_but_member_variablecCs,tGdd�d��}|d�}|�|jd�dS)Nc@seZdZUeed<dS)z-TestCase.test_one_field_no_default.<locals>.C�xN�rrr�int�__annotations__rrrrr)s
r�*�rrr&r rrr�test_one_field_no_default(sz"TestCase.test_one_field_no_defaultc	Cs2d}|�t|��tGdd�d��}W5QRXdS)Nz/cannot specify both default and default_factoryc@s"eZdZUeded�Zeed<dS)z<TestCase.test_field_default_default_factory_error.<locals>.C���default�default_factoryr&N)rrr�fieldr(r&r)rrrrr3s
r)�assertRaisesRegex�
ValueErrorr)r!�msgrrrr�(test_field_default_default_factory_error0sz1TestCase.test_field_default_default_factory_errorcCs8tdddd�}d|_t|�}dt�d�}|�||�dS)Nr-TF)r/�init�repr�idz4Field(name='id',type=None,default=1,default_factory=zX,init=True,repr=False,hash=None,compare=True,metadata=mappingproxy({}),_field_type=None))r1�namer7�MISSINGr)r!Z	int_fieldZrepr_outputZexpected_outputrrr�test_field_repr7s
zTestCase.test_field_reprcCs.tGdd�d��}|dd�}|�|jd�dS)Nc@seZdZUeed<dS)z*TestCase.test_named_init_params.<locals>.Cr&Nr'rrrrrDs
r� �r&r+r rrr�test_named_init_paramsCs
zTestCase.test_named_init_paramsc	Cs�tGdd�d��}|d�}|�|j|jfd�|�td��tGdd�d��}W5QRX|�td��,tGdd�d��}tGd	d�d|��}W5QRX|�td��,tGd
d�d��}tGdd�d|��}W5QRXdS)Nc@s"eZdZUeed<dZeed<dS)�/TestCase.test_two_fields_one_default.<locals>.Cr&r�yN�rrrr(r)r@rrrrrLs
r�)rBrz1non-default argument 'y' follows default argumentc@s"eZdZUdZeed<eed<dS)r?rr&r@N�rrrr&r(r)rrrrrXs
c@seZdZUdZeed<dS)�/TestCase.test_two_fields_one_default.<locals>.Brr&NrCrrrr�Bas
rEc@seZdZUeed<dS)r?r@Nr'rrrrres
c@seZdZUeed<eed<dS)rDr&r@Nr'rrrrrEns
c@seZdZUdZeed<dS)r?rr&NrCrrrrrss
)rrr&r@r2�	TypeError)r!rr"rErrr�test_two_fields_one_defaultKs.���z$TestCase.test_two_fields_one_defaultc	Cs�tdd�Gdd�d��}|�t|d��d�tdd�Gdd�d��}|�t|d��td��|�td	��tdd
�Gdd�d��}W5QRXtdd
�Gdd�d��}|�t|d
��td��|�td	��tdd
�Gdd�d��}W5QRXdS)NT��frozenc@seZdZUeed<dd�ZdS)�'TestCase.test_overwrite_hash.<locals>.Cr&cSsdS�N�-r�r!rrr�__hash__}s�0TestCase.test_overwrite_hash.<locals>.C.__hash__N)rrrr(r)rNrrrrrzs
r�drLc@seZdZUeed<dd�ZdS)rJr&cSsdS�NFr�r!�otherrrr�__eq__�s�.TestCase.test_overwrite_hash.<locals>.C.__eq__N�rrrr(r)rTrrrrr�s
)rP�#Cannot overwrite attribute __hash__��unsafe_hashc@seZdZdd�ZdS)rJcSsdS�NrrMrrrrN�srON�rrrrNrrrrr�sc@seZdZUeed<dd�ZdS)rJr&cSsdSrZrrMrrrrT�srUNrVrrrrr�s
�
)r\c@s&eZdZUeed<dd�Zdd�ZdS)rJr&cSsdSrZrrMrrrrT�srUcSsdSrZrrMrrrrN�srON)rrrr(r)rTrNrrrrr�s
)rr�hashr2rF�r!rrrr�test_overwrite_hashws&��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&rr@N)rrrr&rr)r@r(rrrr�Base�s
r`c@s&eZdZUdZeed<dZeed<dS)z;TestCase.test_overwrite_fields_in_derived_class.<locals>.C1r\�z�r&N)rrrrar(r)r&rrrr�C1�s
rczJTestCase.test_overwrite_fields_in_derived_class.<locals>.Base(x=15.0, y=0)zLTestCase.test_overwrite_fields_in_derived_class.<locals>.C1(x=15, y=0, z=10)�r=zKTestCase.test_overwrite_fields_in_derived_class.<locals>.C1(x=5, y=0, z=10)�rrr7)r!r`rcr"rrr�&test_overwrite_fields_in_derived_class�s
z/TestCase.test_overwrite_fields_in_derived_classcCs�tGdd�d��}|d�}|�|jd�t�|j�}tt|j��}|�	d|�tGdd�d��}t�|j�}tt|j��}|�d|�dS)Nc@seZdZUeed<dS)�)TestCase.test_field_named_self.<locals>.Cr!N�rrr�strr)rrrrr�s
r�foor!c@seZdZUeed<dS)rgZselfxNrhrrrrr�s
)
rrr!�inspect�	signature�__init__�next�iter�
parameters�assertNotEqual)r!r�c�sig�firstrrr�test_field_named_self�szTestCase.test_field_named_selfcCs,tGdd�d��}|d�}|�|jd�dS)Nc@seZdZUeed<dS)z+TestCase.test_field_named_object.<locals>.C�objectNrhrrrrr�s
rrj�rrrv�r!rrrrrr�test_field_named_object�sz TestCase.test_field_named_objectcCs2tdd�Gdd�d��}|d�}|�|jd�dS)NTrHc@seZdZUeed<dS)z2TestCase.test_field_named_object_frozen.<locals>.CrvNrhrrrrr�s
rrjrwrxrrr�test_field_named_object_frozen�sz'TestCase.test_field_named_object_frozencspdddh�t�fdd�tj��D��}dd�|D�}td|�}|d	d�|D��}|D]}|�t||�|�qTdS)
N�None�True�Falsec3s$|]}|�d�s|�kr|VqdS��__N��
startswith��.0�b�Z
exclusionsrr�	<genexpr>�s
�z9TestCase.test_field_named_like_builtin.<locals>.<genexpr>cSsg|]}|tf�qSr�ri�r�r9rrr�
<listcomp>�sz:TestCase.test_field_named_like_builtin.<locals>.<listcomp>rcSsg|]}|�qSrrr�rrrr��s��sorted�builtins�__dict__�keys�make_dataclassr�getattr�r!Zbuiltins_namesZ
attributesrrrr9rr�r�test_field_named_like_builtin�s
�
z&TestCase.test_field_named_like_builtincstdddh�t�fdd�tj��D��}dd�|D�}td|d	d
�}|dd�|D��}|D]}|�t||�|�qXdS)Nr{r|r}c3s$|]}|�d�s|�kr|VqdSr~r�r�r�rrr��s
�z@TestCase.test_field_named_like_builtin_frozen.<locals>.<genexpr>cSsg|]}|tf�qSrr�r�rrrr�szATestCase.test_field_named_like_builtin_frozen.<locals>.<listcomp>rTrHcSsg|]}|�qSrrr�rrrr�sr�r�rr�r�$test_field_named_like_builtin_frozen�s
�z-TestCase.test_field_named_like_builtin_frozenc
CstGdd�d��}tdd�Gdd�d��}||fD]�}|j|d���|�|�|��tdd	�d
d	�dd	�dd	�g�D]X\}}|j|d
��>|�td|j�d|j�d���||�|��W5QRXW5QRXqtW5QRXq2tdd�Gdd�d��}|�|�|��|�|�|��dS)Nc@seZdZdS)z)TestCase.test_0_field_compare.<locals>.C0Nrrrrr�C0sr�F��orderc@seZdZdS)z)TestCase.test_0_field_compare.<locals>.C1Nrrrrrrcsrc��clscSs||kSrZr��ar�rrr�<lambda>�z/TestCase.test_0_field_compare.<locals>.<lambda>cSs||kSrZrr�rrrr�r�cSs||kSrZrr�rrrr�r�cSs||kSrZrr�rrrr�r���idx�$not supported between instances of '�' and '�'Tc@seZdZdS)z(TestCase.test_0_field_compare.<locals>.CNrrrrrrsr)	r�subTestr�	enumerater2rFr�assertLessEqual�assertGreaterEqual�r!r�rcr�r��fnrrrr�test_0_field_compare	s*��0zTestCase.test_0_field_comparec
Cs�tGdd�d��}tdd�Gdd�d��}||fD]�}|j|d���|�|d�|d��|�|d	�|d��td
d�dd�d
d�dd�g�D]\\}}|j|d��B|�td|j�d|j�d���||d	�|d	��W5QRXW5QRXq�W5QRXq2tdd�Gdd�d��}|�|d	�|d��|�	|d	�|d��|�	|d�|d��|�
|d�|d	��|�|d�|d	��|�|d�|d��dS)Nc@seZdZUeed<dS)z)TestCase.test_1_field_compare.<locals>.C0r&Nr'rrrrr�'s
r�Fr�c@seZdZUeed<dS)z)TestCase.test_1_field_compare.<locals>.C1r&Nr'rrrrrc+s
rcr�r-rcSs||kSrZrr�rrrr�3r�z/TestCase.test_1_field_compare.<locals>.<lambda>cSs||kSrZrr�rrrr�4r�cSs||kSrZrr�rrrr�5r�cSs||kSrZrr�rrrr�6r�r�r�r�r�Tc@seZdZUeed<dS)z(TestCase.test_1_field_compare.<locals>.Cr&Nr'rrrrr<s
r)rr�rrqr�r2rFr�
assertLessr��
assertGreaterr�r�rrr�test_1_field_compare%s4��4zTestCase.test_1_field_comparec
Cs�tGdd�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]`\}}|j|d��F|�td|j�d|j�d���||dd�|dd��W5QRXW5QRXq�W5QRXq2tdd�Gdd�d��}tdd�dd�dd�g�D]>\}}|j|d��"|�||dd�|dd���W5QRX�qdtdd�dd�dd�g�D]v\}}|j|d��Z|�||dd�|dd	���|�||dd	�|d	d���|�||d	d�|d	d	���W5QRX�q�tdd�dd�dd�g�D]v\}}|j|d��Z|�||dd	�|dd���|�||d	d�|dd	���|�||d	d	�|d	d���W5QRX�qPdS) Nc@seZdZUeed<eed<dS)z(TestCase.test_simple_compare.<locals>.C0r&r@Nr'rrrrr�Hs
r�Fr�c@seZdZUeed<eed<dS)z(TestCase.test_simple_compare.<locals>.C1r&r@Nr'rrrrrcMs
rcr�rr-�cSs||kSrZrr�rrrr�Xr�z.TestCase.test_simple_compare.<locals>.<lambda>cSs||kSrZrr�rrrr�Yr�cSs||kSrZrr�rrrr�Zr�cSs||kSrZrr�rrrr�[r�r�r�r�r�Tc@seZdZUeed<eed<dS)z'TestCase.test_simple_compare.<locals>.Cr&r@Nr'rrrrras
rcSs||kSrZrr�rrrr�fr�cSs||kSrZrr�rrrr�gr�cSs||kSrZrr�rrrr�hr�cSs||kSrZrr�rrrr�lr�cSs||kSrZrr�rrrr�mr�cSs||kSrZrr�rrrr�nr�cSs||kSrZrr�rrrr�tr�cSs||kSrZrr�rrrr�ur�cSs||kSrZrr�rrrr�vr�)	rr�rrqr�r2rFr�
assertTruer�rrr�test_simple_compareFsX��8�*�*�zTestCase.test_simple_comparecCs�tGdd�d��}tGdd�d|��}tdd�dfdd�d	fg�D]>\}\}}|j|d
�� |�||d�|d��|�W5QRXqBtdd�d
d�dd�dd�g�D]J\}}|j|d
��0|�td��||d�|d��W5QRXW5QRXq�dS)Nc@seZdZUeed<dS)z+TestCase.test_compare_subclasses.<locals>.Br$Nr'rrrrrEs
rEc@seZdZdS)z+TestCase.test_compare_subclasses.<locals>.CNrrrrrr�srcSs||kSrZrr�rrrr��r�z2TestCase.test_compare_subclasses.<locals>.<lambda>FcSs||kSrZrr�rrrr��r�Tr�rcSs||kSrZrr�rrrr��r�cSs||kSrZrr�rrrr��r�cSs||kSrZrr�rrrr��r�cSs||kSrZrr�rrrr��r�z.not supported between instances of 'B' and 'C')rr�r�rr2rF)r!rErr�r��expectedrrr�test_compare_subclasses|s&
�&��z TestCase.test_compare_subclassescCs~dD�]r\}}}|j||d���R|dkr`|�td�� t||d�Gdd�d��}W5QRX�nt||d�Gdd�d��}|dkr�|�d	|j�|�d
|j�|�d|j�|�d|j�|�d
|j�n�|dk�r|�d	|j�|�d
|j�|�d|j�|�d|j�|�d
|j�nR|dk�rn|�d	|j�|�d
|j�|�d|j�|�d|j�|�d
|j�nW5QRXqdS)N))FF�neither)FT�	exception)TF�eq_only)TT�both)�eqr�r�z eq must be true if order is truec@seZdZdS�z!TestCase.test_eq_order.<locals>.CNrrrrrr�src@seZdZdSr�rrrrrr�sr�rT�__lt__�__le__�__gt__�__ge__r�r�)r�r2r3r�assertNotInr��assertIn)r!r�r��resultrrrr�
test_eq_order�s6



zTestCase.test_eq_orderc	CsFtGdd�d��}|�|d�jd�|�td��|�W5QRXdS)Nc@seZdZUe�Zeed<dS)z)TestCase.test_field_no_default.<locals>.Cr&N�rrrr1r&r(r)rrrrr�s
rrd�8__init__\(\) missing 1 required positional argument: 'x')rrr&r2rFr^rrr�test_field_no_default�s�zTestCase.test_field_no_defaultcsft��tG�fdd�d��}|�|j��|d�}|�|jd�|`|�|j��|�|�j��dS)Ncs eZdZUe�d�Zeed<dS)z&TestCase.test_field_default.<locals>.C�r/r&N)rrrr1r&rvr)rr�rrr�s
rr\)rvr�assertIsr&rrxrr�r�test_field_default�szTestCase.test_field_defaultc	CsvtGdd�d��}|�t��|�W5QRX|d�}|�t|�d�tGdd�d��}|dd�}|�t|�d�dS)Nc@s eZdZUedd�Zeed<dS)�$TestCase.test_not_in_repr.<locals>.CF�r7r&Nr�rrrrr�s
rr\z&TestCase.test_not_in_repr.<locals>.C()c@s(eZdZUedd�Zeed<eed<dS)r�Fr�r&r@Nr�rrrrr�s
�z*TestCase.test_not_in_repr.<locals>.C(y=20))r�assertRaisesrFrr7rxrrr�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�)�comparer/r@N)rrrr&r(r)r1r@rrrrr�s
rrr�r-r\rBr��rrrqr^rrr�test_not_in_compare�szTestCase.test_not_in_comparec
s�dD]�\��}|j��d��htdd�G��fdd�d��}|dkr^|�t|d��td	��n"|d
kr�|�t|d��td��nW5QRXqdS)N))TFr1)TTr1)FF�absent)FTr�)NFr�)NTr1)r]r�TrXcs$eZdZUe��dd�Zeed<dS)z)TestCase.test_hash_field_rules.<locals>.Crd)r�r]r/r&Nr�r�r�Zhash_rrrs
rr1rd)rdr�r)r�rrr])r!r�rrr�r�test_hash_field_rules�szTestCase.test_hash_field_rulescCsftGdd�d��}|�d|�j�tGdd�d��}|�d|d�j�|�t|d��dddd	��dS)
Nc@s eZdZUedd�Zeed<dS)�.TestCase.test_init_false_no_default.<locals>.CF�r6r&Nr�rrrrrs
rr&c@s@eZdZUeed<dZeed<edd�Zeed<dZeed<d	S)
r�r&rr@Fr�rar\�tN)	rrrr(r)r@r1rar�rrrrrs
rarrdr\)r�r&r@)rr�r�r�varsr^rrr�test_init_false_no_defaultsz#TestCase.test_init_false_no_defaultcCs`tGdd�d��}t|�}|�|t�|D]$}|�t|�t�|�|j|j	�q*|�
t|�d�|�
|djd�|�
|djt�|�
t|d��|�|dj�|�|dj�|�
|djd�|�
|djt�|�t|d��|�
|dj�|�|dj�|�
|djd	�|�
|djt�|�
t|d	��|�|dj�|�
|dj�dS)
Nc@s<eZdZUeed<eddd�Zeed<edd�Zeed<dS)z%TestCase.test_class_marker.<locals>.Cr&FN�r6r/r@r�ra)	rrrr(r)r1r@rirarrrrr#s
rrBrr&r-r@r�ra)rr�assertIsInstance�tupler��typeZFieldr�r9r)rrr(�assertFalse�hasattrr�r6r7ri�assertIsNoner�)r!rZ
the_fields�frrr�test_class_marker"s.zTestCase.test_class_markercCs�tGdd�d��}tGdd�d|��}|�dd�t|�D�ddd	g�tGd
d�d|��}|�dd�t|�D�dd
dg�tGdd�d|��}|�dd�t|�D�dd
ddg�dS)Nc@s2eZdZUdZeed<dZeed<dZeed<dS)z$TestCase.test_field_order.<locals>.B�B:ar��B:br��B:crrN)rrrr�rir)r�rrrrrrrEDs
rEc@seZdZUdZeed<dS)z$TestCase.test_field_order.<locals>.C�C:br�N)rrrr�rir)rrrrrJs
rcSsg|]}|j|jf�qSr�r9r/�r�r�rrrr�Nsz-TestCase.test_field_order.<locals>.<listcomp>)r�r�)r�r�)rrr�c@seZdZUdZeed<dS)z$TestCase.test_field_order.<locals>.D�D:crrN)rrrrrrir)rrrr�DSs
r�cSsg|]}|j|jf�qSrr�r�rrrr�Ws)r�r�)rrr�c@s&eZdZUdZeed<dZeed<dS)z$TestCase.test_field_order.<locals>.E�E:ar��E:d�dN)rrrr�rir)r�rrrr�E\s
r�cSsg|]}|j|jf�qSrr�r�rrrr�as)r�r�)r�r��rrr)r!rErr�r�rrr�test_field_orderCs6������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�r@rarPr�r�N)
rrrr(r)r1r@rarvr�rr�rrrks
rr&r@rP)rvrr�r�r�rarr�r^rr�r�test_class_attrsgszTestCase.test_class_attrscs2tgdgftiddiftt�tdg�ffD�]\���|j�d���|�td��d���tG��fdd�d��}W5QRX|�td��d���tG��fd	d�d��}W5QRXGd
d�d���|�td��tG��fd
d�d��}W5QRXtG�fdd�d��}tG��fdd�d��}W5QRXq*dS)Nr-r��typzmutable default z for field x is not allowedcseZdZU�Z�ed<dS)�8TestCase.test_disallowed_mutable_defaults.<locals>.Pointr&N)rrrr&r)r)�emptyr�rr�Point�s
r�z for field y is not allowedcseZdZU�Z�ed<dS)r�r@N)rrrr@r)r)�	non_emptyr�rrr��s
c@seZdZdS)z;TestCase.test_disallowed_mutable_defaults.<locals>.SubclassNrrrrr�Subclass�sr�z7mutable default .*Subclass'> for field z is not allowedcseZdZU��Z�ed<dS)r�raN)rrrrar)r�r�r�rrr��s
cs eZdZU��Ze�ed<dS)�4TestCase.test_disallowed_mutable_defaults.<locals>.CraN)rrrrarr)rr�rrr�s
rcs eZdZU��Ze�ed<dS)r�r&N)rrrr&rr)rr�rrr�s
)�list�dict�setr�r2r3r�r!r�rr)r�r�r�r�r� test_disallowed_mutable_defaultsws2
�
� 
� � z)TestCase.test_disallowed_mutable_defaultscs�Gdd�d��tG�fdd�d��}��}||�}||�}|�||�|jj�ddg�|�||�|�|jjddg�|�|j|j�dS)Nc@seZdZdd�ZdS)z<TestCase.test_deliberately_mutable_defaults.<locals>.MutablecSs
g|_dSrZ��lrMrrrrm�szETestCase.test_deliberately_mutable_defaults.<locals>.Mutable.__init__N�rrrrmrrrr�Mutable�sr�cseZdZU�ed<dS)z6TestCase.test_deliberately_mutable_defaults.<locals>.Cr&N�rrrr)r�r�rrr�s
rr-r�)rrr&r��extendr�)r!r�lstZo1Zo2rrr�"test_deliberately_mutable_defaults�sz+TestCase.test_deliberately_mutable_defaultscCs*t�Gdd�d��}|�|d�jd�dS)Nc@seZdZUeed<dS)z#TestCase.test_no_options.<locals>.Cr&Nr'rrrrr�s
rr*r+r^rrr�test_no_options�szTestCase.test_no_optionscCsRtGdd�d��}|�|dd�d�tGdd�d��}|�|dd�|dd��dS)	Nc@seZdZUeed<eed<dS)z&TestCase.test_not_tuple.<locals>.Pointr&r@Nr'rrrrr��s
r�r-r��r-r�c@seZdZUeed<eed<dS)z"TestCase.test_not_tuple.<locals>.Cr&r@Nr'rrrrr�s
rrB)rrqr�rrr�test_not_tuple�szTestCase.test_not_tuplec	Cs�tGdd�d��}tGdd�d��}|�|ddd�|ddd��|�|dd	d�d
�|�td��|dd
d�\}}}W5QRXtGdd�d��}|�|ddd�|��dS)Nc@s&eZdZUeed<eed<eed<dS)z2TestCase.test_not_other_dataclass.<locals>.Point3Dr&r@raNr'rrrr�Point3D�s
rc@s&eZdZUeed<eed<eed<dS)z/TestCase.test_not_other_dataclass.<locals>.DateZyearZmonthZdayNr'rrrr�Date�s
r	i��rBr-r�)r-r�rB�unpackr�rdc@s2eZdZUdZeed<dZeed<dZeed<dS)z4TestCase.test_not_other_dataclass.<locals>.Point3Dv1rr&r@raN)rrrr&r(r)r@rarrrr�	Point3Dv1�s
rr)rrqr2rF)r!rr	r&r@rarrrr�test_not_other_dataclass�sz!TestCase.test_not_other_dataclasscsnGdd�d�������fdd�}tG��fdd�d��}||�tddd�G��fd	d�d��}||�dS)
Nc@seZdZdS)z-TestCase.test_function_annotations.<locals>.FNrrrrr�F�srcs���|jdt���|jdt���|jd����|jdt���|jdt�t�|j�}��	|j
d�t|j�
��}t|�}��|jd�t|�}��|jd���	|jt���|jtjj���|jtjj�t|�}��|jd���	|jt���|jtjj���|jtjj�t|�}��|jd���	|j����|jtjj�t|�}��|jd���	|jt���|jtjj���tt|�dS)Nr$�j�kr�rar!)rr)r(ri�float�complexrkrlrmr�Zreturn_annotationrorp�valuesrnr9Z
annotationr/Z	Parameterr��kindZPOSITIONAL_OR_KEYWORDr��
StopIteration)r�rl�paramsZparam)rr!rr�validate_class�s:z:TestCase.test_function_annotations.<locals>.validate_classcsPeZdZUeed<eed<�Z�ed<edd�Ze	ed<eddd	�Z
eed
<dS�z-TestCase.test_function_annotations.<locals>.Cr$rrNr�r�y@@F�r/r6ra�rrrr(r)rirr1r�rrarr�rr�rrr s

rT)rIrYcsPeZdZUeed<eed<�Z�ed<edd�Ze	ed<eddd	�Z
eed
<dSrrrrrrr+s

)r)r!rrr)rr�r!r�test_function_annotations�s+
z"TestCase.test_function_annotationsc	Cs�tGdd�d��}|�td��|�W5QRX|�d|j�tGdd�d��}|�td��|�W5QRX|�d|j�dS)Nc@s eZdZUeed�Zeed<dS)z(TestCase.test_missing_default.<locals>.Cr�r&N�rrrr1r:r&r(r)rrrrr8s
r�3__init__\(\) missing 1 required positional argumentr&c@seZdZUeed<dS)z(TestCase.test_missing_default.<locals>.Dr&Nr'rrrrr�As
r��rr2rFr�r��r!rr�rrr�test_missing_default5s��zTestCase.test_missing_defaultc	Cs�tGdd�d��}|�td��|�W5QRX|�d|j�tGdd�d��}|�td��|�W5QRX|�d|j�dS)Nc@s eZdZUeed�Zeed<dS)z0TestCase.test_missing_default_factory.<locals>.C�r0r&NrrrrrrNs
rrr&c@s"eZdZUeeed�Zeed<dS)z0TestCase.test_missing_default_factory.<locals>.Dr.r&Nrrrrrr�Ws
r�rr rrr�test_missing_default_factoryJs��z%TestCase.test_missing_default_factorycCs|�dtt��dS)NzMISSING_TYPE object)r�r7r:rMrrr�test_missing_repr`szTestCase.test_missing_reprcCsbtGdd�d��}|�t|j�dg�|�|d���d�|�|d�jd�|�|d�jd�dS)Nc@s6eZdZUeed<ed�dd�Zeed�dd��ZdS)z7TestCase.test_dont_include_other_annotations.<locals>.Cr$)�returncSsdS�Nr�rrMrrrrjgsz;TestCase.test_dont_include_other_annotations.<locals>.C.foocSsdS�NrdrrMrrr�barisz;TestCase.test_dont_include_other_annotations.<locals>.C.barN)rrrr(r)rj�propertyr(rrrrrds
rr$r\r�rd)rrr�r)rjr(r$r^rrr�#test_dont_include_other_annotationscsz,TestCase.test_dont_include_other_annotationsc	Cs�tGdd�d��}|�t��|�W5QRXtGdd�d��}|�t��|�W5QRX|d�tdd�Gdd�d��}|�tGdd�d��}|�|�jd	�|�|d
�jd�tdd
�Gdd�d��}|�t��|�W5QRXdS)Nc@seZdZdd�ZdS)�"TestCase.test_post_init.<locals>.CcSs
t��dSrZ�rrMrrr�
__post_init__us�0TestCase.test_post_init.<locals>.C.__post_init__N�rrrr-rrrrrssrc@s"eZdZUdZeed<dd�ZdS)r+r\r$cSs|jdkrt��dS�Nr\)r$rrMrrrr-}s
r.N)rrrr$r(r)r-rrrrrzs
rdFr�c@seZdZdd�ZdS)r+cSs
t��dSrZr,rMrrrr-�sr.Nr/rrrrr�sc@s"eZdZUdZeed<dd�ZdS)r+rr&cSs|jd9_dS�Nr�r=rMrrrr-�sr.N�rrrr&r(r)r-rrrrr�s
rr�r�TrHc@s"eZdZUdZeed<dd�ZdS)r+rr&cSs|jd9_dSr1r=rMrrrr-�sr.Nr2rrrrr�s
)rr�rrr&�FrozenInstanceErrorr^rrr�test_post_initqs(zTestCase.test_post_initc	Cs�Gdd�d�}tGdd�d|��}|�|�jd�tGdd�d|��}|�t��|�W5QRXtGdd�d|��}|�t��|�W5QRXdS)Nc@seZdZdd�ZdS)z(TestCase.test_post_init_super.<locals>.BcSs
t��dSrZr,rMrrrr-�sz6TestCase.test_post_init_super.<locals>.B.__post_init__Nr/rrrrrE�srEc@seZdZdd�ZdS)�(TestCase.test_post_init_super.<locals>.CcSs
d|_dSr'r=rMrrrr-�s�6TestCase.test_post_init_super.<locals>.C.__post_init__Nr/rrrrr�srrdcseZdZ�fdd�Z�ZS)r5cst���dSrZ)�superr-rM��	__class__rrr-�sr6)rrrr-�
__classcell__rrr8rr�sc@seZdZdS)r5Nrrrrrr�s)rrr&r�r�r!rErrrr�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&r@csd�dS�NTrr��flagrrr-�sz=TestCase.test_post_init_staticmethod.<locals>.C.__post_init__N)rrrr(r)�staticmethodr-rr>rrr�s
rrBr��rBr�)rr�rr&r@r�rxrr>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&r@cSs
d|_dSr=r>r�rrrr-�sz<TestCase.test_post_init_classmethod.<locals>.C.__post_init__N)rrrr?r(r)�classmethodr-rrrrr�s

rrBr�rA)rr�r?rr&r@r�rxrrr�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\r@��ra���w�r���sN)rrrr(r)r@rarrGr�rJrrrrr�s
rrdz-TestCase.test_class_var.<locals>.C(x=5, y=10)r�r
rErFrHrIr-��r��r�r\)rrr7rrr)rarGr�rJr&r@rxrrr�test_class_var�s$zTestCase.test_class_varcCs$tGdd�d��}|�d|j�dS)Nc@seZdZUeeed<dS)z-TestCase.test_class_var_no_default.<locals>.Cr&N)rrrrr(r)rrrrr�s
rr&�rr�r�r^rrr�test_class_var_no_default�sz"TestCase.test_class_var_no_defaultc	Cs<|�td��&tGdd�d��}|�d|j�W5QRXdS)N�cannot have a default factoryc@s$eZdZUeed�Zeeed<dS)z2TestCase.test_class_var_default_factory.<locals>.Cr"r&N�rrrr1r(r&rr)rrrrrs
rr&�r2rFrr�r�r^rrr�test_class_var_default_factorys�z'TestCase.test_class_var_default_factorycCsDtGdd�d��}|�|jd�tGdd�d��}|�|jd�dS)Nc@seZdZUdZeeed<dS)�/TestCase.test_class_var_with_default.<locals>.Cr\r&N)rrrr&rr(r)rrrrrs
rr\c@s$eZdZUedd�Zeeed<dS)rTr\r�r&N)rrrr1r&rr(r)rrrrrs
r+r^rrr�test_class_var_with_default
s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)NTrHc@sReZdZUeed<dZeed<dZeeed<dZeeed<dZ	eeed	<d
S)z)TestCase.test_class_var_frozen.<locals>.Cr&r\r@rErarFrGrHr�N)
rrrr(r)r@rarrGr�rrrrrs

rrdz4TestCase.test_class_var_frozen.<locals>.C(x=5, y=10)r�rErFrHr-rKr�rL)rrr7rrr)rarGr�r&r@rxrrr�test_class_var_frozens zTestCase.test_class_var_frozencCs$tGdd�d��}|�d|j�dS)Nc@seZdZUeeed<dS)z,TestCase.test_init_var_no_default.<locals>.Cr&N)rrr�InitVarr(r)rrrrr6s
rr&rNr^rrr�test_init_var_no_default4sz!TestCase.test_init_var_no_defaultc	Cs<|�td��&tGdd�d��}|�d|j�W5QRXdS)NrPc@s$eZdZUeed�Zeeed<dS)z1TestCase.test_init_var_default_factory.<locals>.Cr"r&N)rrrr1r(r&rWr)rrrrrAs
rr&rRr^rrr�test_init_var_default_factory<s�z&TestCase.test_init_var_default_factorycCsDtGdd�d��}|�|jd�tGdd�d��}|�|jd�dS)Nc@seZdZUdZeeed<dS)�.TestCase.test_init_var_with_default.<locals>.Cr\r&N)rrrr&rWr(r)rrrrrIs
rr\c@s$eZdZUedd�Zeeed<dS)rZr\r�r&N)rrrr1r&rWr(r)rrrrrNs
r+r^rrr�test_init_var_with_defaultGs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|jdkr|d|_dSr1r=)r!r\rrrr-Ys
z/TestCase.test_init_var.<locals>.C.__post_init__)	rrrr&r(r)r\rWr-rrrrrTs
rr\)r\r�r+rxrrr�
test_init_varSs
zTestCase.test_init_varcCsB|�ttjt�|�ttt�d�|�tttt�d�dS)N�dataclasses.InitVar[int]z%dataclasses.InitVar[typing.List[int]])rrWr(r�r7rrMrrr�test_init_var_preserve_type`s
�z$TestCase.test_init_var_preserve_typecCsltGdd�d��}|dd�}|�t|�ddi�tGdd�d|��}|ddd	d
�}|�t|�ddd
��dS)Nc@s"eZdZUeed<eeed<dS)z0TestCase.test_init_var_inheritance.<locals>.Baser&�	init_baseN)rrrr(r)rWrrrrr`ls
r`rr\r&c@s*eZdZUeed<eeed<dd�ZdS)z-TestCase.test_init_var_inheritance.<locals>.Cr@�init_derivedcSs|j||_|j||_dSrZ�r&r@)r!r`rarrrr-{sz;TestCase.test_init_var_inheritance.<locals>.C.__post_init__N�rrrr(r)rWr-rrrrrvs
r��2�3��erb)rrr�)r!r`r�rrrrrr�test_init_var_inheritancehs
z"TestCase.test_init_var_inheritancecs�tGdd�d��}|d�}|d�}|�|jd�|�|jg�|�||�|�|j|j�|�t|ddg��ddgf�g�tG�fdd�d��}|d�}|d�}|�|jd�|�|jg�|�||�|�|j|j�|�t|ddg��ddgf�tGdd�d��}|�t|��d�|�|�jg�td	d
�Gdd�d��}|�t|��gf�|�t|��td��tGd
d�d��}|�t|��gf�tGdd�d��}|�|�|dg��dS)Nc@s(eZdZUeed<eed�Zeed<dS)�(TestCase.test_default_factory.<locals>.Cr&r"r@N)rrrr(r)r1r�r@rrrrr�s
rrBrdr-cs0eZdZUeed<e�fdd�d�Zeed<dS)rjr&cs�SrZrrr�rrr��r�z1TestCase.test_default_factory.<locals>.C.<lambda>r"r@N)rrrr(r)r1r@r�rr�rrr�s
c@s"eZdZUeedd�Zeed<dS)rjF)r0r7r&N�rrrr1r�r&r)rrrrr�s
z*TestCase.test_default_factory.<locals>.C()TrXc@s"eZdZUeedd�Zeed<dS)rjF)r0r]r&Nrkrrrrr�s
rc@s"eZdZUeedd�Zeed<dS)rjF�r0r6r&Nrkrrrrr�s
c@s"eZdZUeedd�Zeed<dS)rjF)r0r�r&Nrkrrrrr�s
)	rrr&r@�assertIsNot�astupler�r7r])r!rZc0�c1rr�r�test_default_factory�sBzTestCase.test_default_factorycsLt��tG�fdd�d��}|�j|��jd�|�j|��jd�dS)Ncs"eZdZUe�dd�Zeed<dS)z5TestCase.test_default_factory_with_no_init.<locals>.CFrlr&N)rrrr1r&r�r)r��factoryrrr�s
rr-r��rrr&r�
call_countr^rrqr�!test_default_factory_with_no_init�sz*TestCase.test_default_factory_with_no_initcslt��tG�fdd�d��}|�j|��jd�|�|d�jd�|��jd�|�j|��jd�dS)Ncs eZdZUe�d�Zeed<dS)zBTestCase.test_default_factory_not_called_if_value_given.<locals>.Cr"r&Nr�rrqrrr�s
rr-r\r�rsr^rrqr�.test_default_factory_not_called_if_value_given�sz7TestCase.test_default_factory_not_called_if_value_givencCs~tGdd�d��}tGdd�d|��}|�|�ji�|�|�ji�|�|�jd�tGdd�d|��}|�|�ji�dS)Nc@s eZdZUeed�Zeed<dS)z2TestCase.test_default_factory_derived.<locals>.Foor"r&N)rrrr1r�r&r)rrrr�Foo�s
rwc@seZdZUdZeed<dS)z2TestCase.test_default_factory_derived.<locals>.Barr-r@N�rrrr@r(r)rrrr�Bar�s
ryr-c@seZdZdS)z2TestCase.test_default_factory_derived.<locals>.BazNrrrrr�Baz�srz)rrr&r@)r!rwryrzrrr�test_default_factory_derived�sz%TestCase.test_default_factory_derivedc	Cs�tGdd�d��}Gdd�d|�}tGdd�d|��}|dd�}|�|j|jfd	�|�td
��|jW5QRXGdd�d|�}|d
d�}|�|j|jfd�dS)Nc@seZdZUeed<dS)z3TestCase.test_intermediate_non_dataclass.<locals>.Ar&Nr'rrrr�A�s
r|c@seZdZUeed<dS)z3TestCase.test_intermediate_non_dataclass.<locals>.Br@Nr'rrrrrE�s
rEc@seZdZUeed<dS)z3TestCase.test_intermediate_non_dataclass.<locals>.CraNr'rrrrr�s
rr-rB)r-rBzobject has no attributec@seZdZUeed<dS)z3TestCase.test_intermediate_non_dataclass.<locals>.Dr�Nr'rrrrr�s
r�r�rd)r�rd)rrr&rar2�AttributeErrorr@)r!r|rErrrr�r�rrr�test_intermediate_non_dataclass�s
�
z(TestCase.test_intermediate_non_dataclassc	Cs.|�td��tGdd�d��}W5QRXdS)NrPc@s$eZdZUeed�Zeeed<dS)z1TestCase.test_classvar_default_factory.<locals>.Cr"r&NrQrrrrrs
r�r2rFrr^rrr�test_classvar_default_factory
s
�z&TestCase.test_classvar_default_factorycs�Gdd�d�}|�td��|�tt��|�t|��|�t|���tGdd�d���tG�fdd�d��}�d�}||d	�}|�t���|�t|��|�t|j��|�t|j��|�t|j��dS)
Nc@seZdZdS)z0TestCase.test_is_dataclass.<locals>.NotDataClassNrrrrr�NotDataClasssr�rc@seZdZUeed<dS)z%TestCase.test_is_dataclass.<locals>.Cr&Nr'rrrrrs
rcseZdZU�ed<eed<dS)z%TestCase.test_is_dataclass.<locals>.Dr��eN�rrrr)r(r�rrrr�s
r�r\r�)r��is_dataclassr(rr�r&r�r�)r!r�r�rrr�rr�r�test_is_dataclasss 
zTestCase.test_is_dataclasscCs�Gdd�d�}|�t|��|�}Gdd�d�}|�}g|_||fD]�}|j|d��x|�t|��|�td��t|�W5QRX|�td��t|�W5QRX|�td��t|dd�W5QRXW5QRXqDdS)	Nc@seZdZdd�ZdS)zATestCase.test_is_dataclass_when_getattr_always_returns.<locals>.AcSsdS�Nrr)r!�keyrrr�__getattr__0szMTestCase.test_is_dataclass_when_getattr_always_returns.<locals>.A.__getattr__N)rrrr�rrrrr|/sr|c@seZdZdS)zATestCase.test_is_dataclass_when_getattr_always_returns.<locals>.BNrrrrrrE6srE)�objz'should be called on dataclass instancesrr=)	r�r�Z__dataclass_fields__r�r2rF�asdictrn�replace)r!r|r�rEr�r�rrr�-test_is_dataclass_when_getattr_always_returns-sz6TestCase.test_is_dataclass_when_getattr_always_returnscCs0tGdd�d��}|�t|�t|dd���dS)Nc@seZdZUeed<eed<dS)z:TestCase.test_helper_fields_with_class_instance.<locals>.Cr&r@N)rrrr(r)rrrrrrJs
rrgr�r^rrr�&test_helper_fields_with_class_instanceGsz/TestCase.test_helper_fields_with_class_instancec	Cst|�td��td�W5QRXGdd�d�}|�td��t|�W5QRX|�td��t|��W5QRXdS)Nzdataclass type or instancerc@seZdZdS)z0TestCase.test_helper_fields_exception.<locals>.CNrrrrrrWsr)r2rFrr^rrr�test_helper_fields_exceptionQsz%TestCase.test_helper_fields_exceptioncCs�tGdd�d��}|dd�}|�t|�ddd��|�t|�t|��|�t|�t|��d|_|�t|�ddd��|�tt|��t�dS)Nc@seZdZUeed<eed<dS)z&TestCase.test_helper_asdict.<locals>.Cr&r@Nr'rrrrr_s
rr-r�rbr*)rrr�rmr&r�r�r�rxrrr�test_helper_asdict]s
zTestCase.test_helper_asdictc	CsVtGdd�d��}|�td��t|�W5QRX|�td��tt�W5QRXdS)Nc@seZdZUeed<eed<dS)z8TestCase.test_helper_asdict_raises_on_classes.<locals>.Cr&r@Nr'rrrrrns
r�dataclass instance)rr2rFr�r(r^rrr�$test_helper_asdict_raises_on_classeslsz-TestCase.test_helper_asdict_raises_on_classescCsxtGdd�d��}g}|d|�}t|�}|�|d|�|�|d|�|d�}t|�}|d�d�|�|jg�dS)Nc@s,eZdZUeed<eed�Zeeed<dS)z2TestCase.test_helper_asdict_copy_values.<locals>.Cr&r"r@N�	rrrr(r)r1r�r@rrrrrrxs
rr-r@)rr�rrm�appendr@)r!r�initialrrr�rrr�test_helper_asdict_copy_valuesws
z'TestCase.test_helper_asdict_copy_valuescs�tGdd�d���tG�fdd�d��}|d�dd��}t|�}|�|dddd�d	��|�t|�t|��d
|j_|�t|�ddd
d�d	��dS)Nc@seZdZUeed<eed<dS)z2TestCase.test_helper_asdict_nested.<locals>.UserId�token�groupNr'rrrr�UserId�s
r�cseZdZUeed<�ed<dS)z0TestCase.test_helper_asdict_nested.<locals>.Userr9r8Nrhr�r�rr�User�s
r��Joe�{r-)r�r��r9r8r�)rr�rrmr8r�)r!r��ur�rr�r�test_helper_asdict_nested�s�z"TestCase.test_helper_asdict_nestedc	stGdd�d���tG�fdd�d��}tG�fdd�d��}tG�fdd�d��}�d	d
�}�dd�}|d
||g�}|d
||f�}|d
||d��}|�t|�d
d	d
d�ddd�gd��|�t|�d
d	d
d�ddd�fd��|�t|�d
d	d
d�ddd�d�d��dS)Nc@seZdZUeed<eed<dS)z<TestCase.test_helper_asdict_builtin_containers.<locals>.Userr9r8N�rrrrir)r(rrrrr��s
r�cs"eZdZUeed<e�ed<dS)zATestCase.test_helper_asdict_builtin_containers.<locals>.GroupListr8�usersN�rrrr(r)rr�r�rr�	GroupList�s
r�cs&eZdZUeed<e�dfed<dS)zBTestCase.test_helper_asdict_builtin_containers.<locals>.GroupTupler8.r�N�rrrr(r)rrr�rr�
GroupTuple�s
r�cs&eZdZUeed<ee�fed<dS)zATestCase.test_helper_asdict_builtin_containers.<locals>.GroupDictr8r�N�rrrr(r)r	rirr�rr�	GroupDict�s
r��Alicer-�Bobr�r�rt�secondr�)r8r��rrr��	r!r�r�r�r�r��gl�gt�gdrr�r�%test_helper_asdict_builtin_containers�s,

�
�
�z.TestCase.test_helper_asdict_builtin_containerscsxtGdd�d���tG�fdd�d��}|�t|�dg���dddgii�|�t|�ddi���ddddiii�dS)	Nc@seZdZUeed<dS)zDTestCase.test_helper_asdict_builtin_object_containers.<locals>.Childr�N�rrrrvr)rrrr�Child�s
r�cseZdZU�ed<dS)zETestCase.test_helper_asdict_builtin_object_containers.<locals>.Parent�childNrr�r�rr�Parent�s
r�r-r�r�r�r��r!r�rr�r�,test_helper_asdict_builtin_object_containers�s$z5TestCase.test_helper_asdict_builtin_object_containerscCs�tGdd�d��}|dd�}t|td�}|�|tddg��|�|t|td��d|_t|td�}|�|td	dg��|�t|�t�dS)
Nc@seZdZUeed<eed<dS)z.TestCase.test_helper_asdict_factory.<locals>.Cr&r@Nr'rrrrr�s
rr-r��Zdict_factory)r&r-)r@r�r*)r&r*)rr�rrrmr&r�r��r!rrrr�rrr�test_helper_asdict_factory�s
z#TestCase.test_helper_asdict_factorycs�tdd��tG�fdd�d��}|d�d|d�dd	d
��d��}t|�}|�|d�dd�dd	d
�d�d�d��t|td
�}|�|d�dd�dd	d
�d�d�d��|�t|�t�|�t|dd�t�dS)N�T�a b ccseZdZUeed<�ed<dS)z1TestCase.test_helper_asdict_namedtuple.<locals>.Cr&r@Nrhr�r�rrr�s
r�outerr-�innerrd��
r�rbr�r@)rrr�rrr�r�r�rr�r�test_helper_asdict_namedtuple�s0
 
���
���	z&TestCase.test_helper_asdict_namedtuplecCsNtGdd�d��}tdd�}||d�di�}|�t|�d|dd�dii�dS)	Nc@seZdZUeed<dS)z5TestCase.test_helper_asdict_namedtuple_key.<locals>.Cr�N)rrrr�r)rrrrr�s
rr�r�zan arr��r�)rrrr�)r!rr�rrrrr�!test_helper_asdict_namedtuple_key�s

z*TestCase.test_helper_asdict_namedtuple_keycs�Gdd�dtdd���tG�fdd�d��}�d�}||�}t|�}|�|d�dd	�i�|�|d|�|�|d��d�dS)
Nc@seZdZdd�ZdS)z9TestCase.test_helper_asdict_namedtuple_derived.<locals>.TcSs|jSrZr�rMrrr�my_a�sz>TestCase.test_helper_asdict_namedtuple_derived.<locals>.T.my_aN)rrrr�rrrrr��sr�ZTbaser�cseZdZU�ed<dS)z9TestCase.test_helper_asdict_namedtuple_derived.<locals>.Cr�Nrrr�rrrs
rr
r�r�)rrr�rrmr�)r!rr�rrr�rr�r�%test_helper_asdict_namedtuple_derived�sz.TestCase.test_helper_asdict_namedtuple_derivedcCs�tGdd�d��}|d�}|�t|�d�|�t|�t|��|�t|�t|��d|_|�t|�d�|�tt|��t�dS)Nc@s"eZdZUeed<dZeed<dS)z'TestCase.test_helper_astuple.<locals>.Cr&rr@NrArrrrrs
rr-)r-rr*)r-r*)rrrnrmr@r�r�r�rxrrr�test_helper_astupleszTestCase.test_helper_astuplec	CsVtGdd�d��}|�td��t|�W5QRX|�td��tt�W5QRXdS)Nc@seZdZUeed<eed<dS)z9TestCase.test_helper_astuple_raises_on_classes.<locals>.Cr&r@Nr'rrrrrs
rr�)rr2rFrnr(r^rrr�%test_helper_astuple_raises_on_classessz.TestCase.test_helper_astuple_raises_on_classescCsxtGdd�d��}g}|d|�}t|�}|�|d|�|�|d|�|d�}t|�}|d�d�|�|jg�dS)Nc@s,eZdZUeed<eed�Zeeed<dS)z3TestCase.test_helper_astuple_copy_values.<locals>.Cr&r"r@Nr�rrrrr)s
rr-)rrnrrmr�r@)r!rr�rrr�rrr�test_helper_astuple_copy_values(s
z(TestCase.test_helper_astuple_copy_valuescs|tGdd�d���tG�fdd�d��}|d�dd��}t|�}|�|d�|�t|�t|��d	|j_|�t|�d
�dS)Nc@seZdZUeed<eed<dS)z3TestCase.test_helper_astuple_nested.<locals>.UserIdr�r�Nr'rrrrr�8s
r�cseZdZUeed<�ed<dS)z1TestCase.test_helper_astuple_nested.<locals>.Userr9r8Nrhrr�rrr�<s
r�r�r�r-)r�)r�r-r�)r�)r�r�)rrnrrmr8r�)r!r�r�r�rr�r�test_helper_astuple_nested7sz#TestCase.test_helper_astuple_nestedc	s�tGdd�d���tG�fdd�d��}tG�fdd�d��}tG�fdd�d��}�d	d
�}�dd�}|d
||g�}|d
||f�}|d
||d��}|�t|�d
ddgf�|�t|�d�|�t|�d
ddd�f�dS)Nc@seZdZUeed<eed<dS)z=TestCase.test_helper_astuple_builtin_containers.<locals>.Userr9r8Nr�rrrrr�Hs
r�cs"eZdZUeed<e�ed<dS)zBTestCase.test_helper_astuple_builtin_containers.<locals>.GroupListr8r�Nr�rr�rrr�Ls
r�cs&eZdZUeed<e�dfed<dS)zCTestCase.test_helper_astuple_builtin_containers.<locals>.GroupTupler8.r�Nr�rr�rrr�Ps
r�cs&eZdZUeed<ee�fed<dS)zBTestCase.test_helper_astuple_builtin_containers.<locals>.GroupDictr8r�Nr�rr�rrr�Ts
r�r�r-r�r�rr��r�r-�r�r�)r)r�r��rrrnr�rr�r�&test_helper_astuple_builtin_containersGs 

z/TestCase.test_helper_astuple_builtin_containerscsptGdd�d���tG�fdd�d��}|�t|�dg���dgff�|�t|�ddi���ddiff�dS)Nc@seZdZUeed<dS)zETestCase.test_helper_astuple_builtin_object_containers.<locals>.Childr�Nr�rrrrr�bs
r�cseZdZU�ed<dS)zFTestCase.test_helper_astuple_builtin_object_containers.<locals>.Parentr�Nrrr�rrr�fs
r�r-r�r�r�rr�r�-test_helper_astuple_builtin_object_containersas z6TestCase.test_helper_astuple_builtin_object_containerscs�tGdd�d��}tdd���fdd�}|dd�}t||d	�}|�|�dd��|�|t||d	��d
|_t||d	�}|�|�d
d��|�t|���dS)Nc@seZdZUeed<eed<dS)z/TestCase.test_helper_astuple_factory.<locals>.Cr&r@Nr'rrrrrns
r�NTzx ycs�|�SrZr)r�r�rr�ntssz0TestCase.test_helper_astuple_factory.<locals>.ntr-r��Z
tuple_factoryr*)rrrnrrmr&r�r�)r!rr�rrr�rr�r�test_helper_astuple_factoryms

z$TestCase.test_helper_astuple_factorycs�tdd��tG�fdd�d��}|d�d|d�dd	d
��d��}t|�}|�|d�ddd�f�t|td
�}|�|d�dd�dd	d
�gd�g�dS)Nr�r�cseZdZUeed<�ed<dS)z2TestCase.test_helper_astuple_namedtuple.<locals>.Cr&r@Nrhrr�rrr�s
rr�r-r�rdr�r�r�)r�)rdr�r�r�)rrrnrr�)r!rrrr�rr�r�test_helper_astuple_namedtuple~s
 z'TestCase.test_helper_astuple_namedtuplecCsNdttd�i}tdd|�}t|�}|�||�|�t|dd��ddd��dS)Nr)rbrrr-r�)r(r�rrr��r!Zcls_dictr�Zcls1rrr�test_dynamic_class_creation�s
z$TestCase.test_dynamic_class_creationcCsTttd�tdd�d�}tdd|�}t|�}|�||�|�t|d��ddd��dS)Nrbrdr�)r)r@rrr-)r(r1r�rrr�r�rrr�'test_dynamic_class_creation_using_field�s�z0TestCase.test_dynamic_class_creation_using_fieldcs�tGdd�d��}g��fdd�}||_|dd�}|�d�d�|�d�d�|�d	gf�d
�|�dgf�d�|�d
��|�d�d�dS)Nc@sjeZdZUeed<e�Zeed<eedd�Zeed<eed�Z	eed<eddd	�Z
eed
<dZeed<dS)
z&TestCase.test_init_in_order.<locals>.Cr�r�Frlrrr"r�r�rr�r�N)rrrr(r)r1r�r�rrr�r�r�rrrrr�s
rcs��||f�dSrZ)r��r!r9�value�Zcallsrr�setattr�sz,TestCase.test_init_in_order.<locals>.setattrrr-)r�r)r�r-rrr�r�rB)r�r�)r�r�r�)r�__setattr__rr�)r!rr�rrrr�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�Frlr�r"rrr�rr�rr�N)rrrr(r)r1r�r�rrr�r�rrrrr�s

rrr�r�rrr�r�r�)
rr�r�r�rr�r�r�r�rrrxrrr�test_items_in_dicts�s&zTestCase.test_items_in_dictscCs*tGdd�d��}|�|�d�jd�dS)Nc@s"eZdZUeed<edd��ZdS)z:TestCase.test_alternate_classmethod_constructor.<locals>.Cr&cSsd}||�S)Nr�r)r��filenameZ
value_in_filerrr�	from_file�szDTestCase.test_alternate_classmethod_constructor.<locals>.C.from_fileN)rrrr(r)rCr�rrrrr�s
rr�r�)rrr�r&r^rrr�&test_alternate_classmethod_constructor�s	z/TestCase.test_alternate_classmethod_constructorc	CsntGdd�d��}|�t|�dj�|�tt|�dj�d�|�td��dt|�djd<W5QRXdS)Nc@seZdZUeed<dS)z/TestCase.test_field_metadata_default.<locals>.Cr$Nr'rrrrr�s
rr� does not support item assignmentrB�test)rr�r�metadatarrr2rFr^rrr�test_field_metadata_default�s�z$TestCase.test_field_metadata_defaultc	s�|�t��tGdd�d��}W5QRXi�tG�fdd�d��}|�t|�dj�|�tt|�dj�d�d�d<|�tt|�dj�d�|�t|�djdd�|�td��dt|�djd	<W5QRXd
ddd
��tG�fdd�d��}|�tt|�dj�d�|�t|�djd	d
�|�t|�djdd�|�t|�djdd�d�d<|�tt|�dj�d�|�t|�djdd�|�t	��t|�djdW5QRX|�td��dt|�djd	<W5QRXdS)Nc@s eZdZUedd�Zeed<dS)�/TestCase.test_field_metadata_mapping.<locals>.Cr�r�r$N�rrrr1r$r(r)rrrrr�s
rcs eZdZUe�d�Zeed<dS�r�r�r$Nr�r�r�rrrs
rr-rjr�rBr�r\Z42Zthree)r�r(rBcs eZdZUe�d�Zeed<dSr�r�rr�rrrs
r(r�Zbaz)
r�rFrr�rr�rrr2�KeyErrorr^rr�r�test_field_metadata_mapping�s>��z$TestCase.test_field_metadata_mappingc	s�Gdd�d��tG�fdd�d��}|�tt|�dj�d�|�t|�djdd�|�t��t|�djd	W5QRX|�t|�djd
d�dS)Nc@s$eZdZdd�Zdd�Zdd�ZdS)zDTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpacec[s|j�|�dSrZ)r��update)r!�kwrrrrm'szMTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__init__cSs|dkrdSt||�S)N�xyzzy�plugh)r�)r!�itemrrr�__getitem__*szPTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__getitem__cSs
|j��SrZ)r��__len__rMrrrr�/szLTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__len__N)rrrrmr�r�rrrr�SimpleNameSpace&sr�cs&eZdZUe�dd�d�Zeed<dS)z6TestCase.test_field_metadata_custom_mapping.<locals>.Cr\r�r�r$Nr�r�r�rrr2s
rrr-r�r\r�r�r�)rrrrr�r�r}r^rr�r�"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)rrrr)r�rirr�rr�
LabeledBox@s
r�r*r�)rrr
rr�r�rr()r!r�Zbox�Aliasrr�r�test_generic_dataclasses=sz!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&r@Nrr�rr�rrr`Ps
r`c@seZdZUeed<dS)z4TestCase.test_generic_extending.<locals>.DataDerivedZ	new_fieldNrhrrrr�DataDerivedUs
rr�test1�test2)rrrc@seZdZdd�ZdS)z7TestCase.test_generic_extending.<locals>.NonDataDerivedcSs|jSrZ�r@rMrrr�
new_method]szBTestCase.test_generic_extending.<locals>.NonDataDerived.new_methodN)rrrrrrrr�NonDataDerived\srr\��?)	rrr
r(rirrnrr)r!r`rr�rrrrrr�test_generic_extendingLs 
zTestCase.test_generic_extendingcs�td��tG�fdd�dt���}tdd�fdt�dfg|tt�fddid	�}|�|td
d�jd�|�|td
dd�jd�|�|td
dd�j	d�|�}|�|td
d�j
d
�|�|j||ttf�dS)
Nr�cseZdZU�ed<dS)z-TestCase.test_generic_dynamic.<locals>.Parentr&Nrrr�rrr�fs
r�r�r@rarSr*)�bases�	namespacer-r�rB)
rrr
r�rr(r�rarrSr&�__mro__rv)r!r�r�r�rr�r�test_generic_dynamiccs�zTestCase.test_generic_dynamiccCs$tGdd�d��atGdd�d��atGdd�d��atd�}d|_td�tdd�td�|td�tddd	d
g�g}|D]�}ttjd�D]�}|j||d��|t�	t�
||��}|�|j|j�|�|j|j�|�
||�d|_t�	t�
||��}|�|j|j�|�|j|j�W5QRXq�qvdS)
Nc@s"eZdZUeed<dZeed<dS)�Pr&rr@NrArrrrrvs
rc@s*eZdZUeed<eddd�Zeed<dS)�Qr&rFrr@N�rrrr(r)r1r@rrrrrzs
rc@s,eZdZUeed<eed�Zeeed<dS)�Rr&r"r@Nr�rrrrr~s
rr-r�rBr�)�sample�protor*)rrrrr@�range�pickle�HIGHEST_PROTOCOLr��loads�dumpsrr&rm)r!�qZsamplesrrZ
new_sampleZanother_new_samplerrr�test_dataclassses_pickleablets(.z%TestCase.test_dataclassses_pickleableN)`rrrr#r%r,r5r;r>rGr_rfruryrzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr
rr!r#r$r*r4r<rBrDrMrOrSrUrVrXrYr[r]r_rirprurvr{r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr
rrrrrrrs�,5!6(!$-F/
9
!


+rc@s$eZdZdd�Zdd�Zdd�ZdS)�TestFieldNoAnnotationc	Cs.|�td��tGdd�d��}W5QRXdS)N�)'f' is a field but has no type annotationc@seZdZe�ZdS)z>TestFieldNoAnnotation.test_field_without_annotation.<locals>.CN�rrrr1r�rrrrr�srrr^rrr�test_field_without_annotation�s
�z3TestFieldNoAnnotation.test_field_without_annotationc	CsBtGdd�d��}|�td��tGdd�d|��}W5QRXdS)Nc@seZdZUeed<dS)zUTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base.<locals>.Br�Nr'rrrrrE�s
rErc@seZdZe�ZdS)zUTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base.<locals>.CNrrrrrr�sr�rr2rFr;rrr�4test_field_without_annotation_but_annotation_in_base�s�zJTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_basec	Cs>Gdd�d�}|�td��tGdd�d|��}W5QRXdS)Nc@seZdZUeed<dS)zcTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclass.<locals>.Br�Nr'rrrrrE�s
rErc@seZdZe�ZdS)zcTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclass.<locals>.CNrrrrrr�srrr;rrr�Btest_field_without_annotation_but_annotation_in_base_not_dataclass�s�zXTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclassN)rrrrr!r"rrrrr�s
rc@sleZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�
TestDocStringcCs |�|�dd�|�dd��dS)N� �)rr�)r!r�r�rrr�assertDocStrEqual�szTestDocString.assertDocStrEqualcCs$tGdd�d��}|�|jd�dS)Nc@seZdZUdZeed<dS)z?TestDocString.test_existing_docstring_not_overridden.<locals>.C�Lorem ipsumr&N)rrr�__doc__r(r)rrrrr�s
rr')rrr(r^rrr�&test_existing_docstring_not_overridden�sz4TestDocString.test_existing_docstring_not_overriddencCs$tGdd�d��}|�|jd�dS)Nc@seZdZdS)z1TestDocString.test_docstring_no_fields.<locals>.CNrrrrrr�srzC()�rr&r(r^rrr�test_docstring_no_fields�sz&TestDocString.test_docstring_no_fieldscCs$tGdd�d��}|�|jd�dS)Nc@seZdZUeed<dS)z1TestDocString.test_docstring_one_field.<locals>.Cr&Nr'rrrrr�s
rzC(x:int)r*r^rrr�test_docstring_one_field�sz&TestDocString.test_docstring_one_fieldcCs$tGdd�d��}|�|jd�dS)Nc@seZdZUeed<eed<dS)z2TestDocString.test_docstring_two_fields.<locals>.Cr&r@Nr'rrrrr�s
rzC(x:int, y:int)r*r^rrr�test_docstring_two_fields�sz'TestDocString.test_docstring_two_fieldscCs$tGdd�d��}|�|jd�dS)Nc@s&eZdZUeed<eed<eed<dS)z4TestDocString.test_docstring_three_fields.<locals>.Cr&r@raN�rrrr(r)rirrrrr�s
rzC(x:int, y:int, z:str)r*r^rrr�test_docstring_three_fields�sz)TestDocString.test_docstring_three_fieldscCs$tGdd�d��}|�|jd�dS)Nc@seZdZUdZeed<dS)z>TestDocString.test_docstring_one_field_with_default.<locals>.CrBr&NrCrrrrr�s
rz
C(x:int=3)r*r^rrr�%test_docstring_one_field_with_default�sz3TestDocString.test_docstring_one_field_with_defaultcCs$tGdd�d��}|�|jd�dS)Nc@s&eZdZUdZeeed�fed<dS)zCTestDocString.test_docstring_one_field_with_default_none.<locals>.CNr&)rrrr&rr(r�r)rrrrr�s
rzC(x:Union[int, NoneType]=None)r*r^rrr�*test_docstring_one_field_with_default_none�sz8TestDocString.test_docstring_one_field_with_default_nonecCs$tGdd�d��}|�|jd�dS)Nc@seZdZUeeed<dS)z2TestDocString.test_docstring_list_field.<locals>.Cr&N)rrrrr(r)rrrrr�s
rzC(x:List[int])r*r^rrr�test_docstring_list_field�sz'TestDocString.test_docstring_list_fieldcCs$tGdd�d��}|�|jd�dS)Nc@s$eZdZUeed�Zeeed<dS)zGTestDocString.test_docstring_list_field_with_default_factory.<locals>.Cr"r&N)	rrrr1r�r&rr(r)rrrrr�s
rzC(x:List[int]=<factory>)r*r^rrr�.test_docstring_list_field_with_default_factory�sz<TestDocString.test_docstring_list_field_with_default_factorycCs$tGdd�d��}|�|jd�dS)Nc@seZdZUeed<dS)z3TestDocString.test_docstring_deque_field.<locals>.Cr&N)rrrrr)rrrrrs
rzC(x:collections.deque)r*r^rrr�test_docstring_deque_field�sz(TestDocString.test_docstring_deque_fieldcCs$tGdd�d��}|�|jd�dS)Nc@s eZdZUeed�Zeed<dS)zHTestDocString.test_docstring_deque_field_with_default_factory.<locals>.Cr"r&N)rrrr1rr&r)rrrrrs
rz C(x:collections.deque=<factory>)r*r^rrr�/test_docstring_deque_field_with_default_factorysz=TestDocString.test_docstring_deque_field_with_default_factoryN)rrrr&r)r+r,r-r/r0r1r2r3r4r5rrrrr#�s	r#c@s$eZdZdd�Zdd�Zdd�ZdS)�TestInitcCs�Gdd�d�}tGdd�d|��}|d�}|�|jd�|�dt|��tdd�Gd	d�d|��}|�}|�|jd�|�|jd
�dS)Nc@seZdZdd�ZdS)z&TestInit.test_base_has_init.<locals>.BcSs
d|_dS)NrP�rarMrrrrmsz/TestInit.test_base_has_init.<locals>.B.__init__Nr�rrrrrEsrEc@seZdZUdZeed<dS)�&TestInit.test_base_has_init.<locals>.Crr&NrCrrrrrs
rr\raFr�c@seZdZUdZeed<dS)r8r\r&NrCrrrrr"s
rP)rrr&r�r�ra)r!rErrrrrr�test_base_has_inits	zTestInit.test_base_has_initcCsTtdd�Gdd�d�}|�|�jd�tdd�Gdd�d�}|�|�jd�dS)NFr�c@seZdZUdZeed<dS)� TestInit.test_no_init.<locals>.Crr$N)rrrr$r(r)rrrrr+s
rrc@s"eZdZUdZeed<dd�ZdS)r:r�r$cSs
d|_dS�NrB�r$rMrrrrm2sz)TestInit.test_no_init.<locals>.C.__init__N)rrrr$r(r)rmrrrrr0s
rB)rrr$r^rrr�test_no_init)s

zTestInit.test_no_initcCs|tGdd�d��}|�|d�jd�tdd�Gdd�d��}|�|d�jd	�td
d�Gdd�d��}|�|d�jd
�dS)Nc@seZdZUeed<dd�ZdS)�)TestInit.test_overwriting_init.<locals>.Cr&cSsd||_dSr1r=�r!r&rrrrm=s�2TestInit.test_overwriting_init.<locals>.C.__init__N�rrrr(r)rmrrrrr:s
rrBr
Tr�c@seZdZUeed<dd�ZdS)r>r&cSsd||_dSr1r=r?rrrrmDsr@NrArrrrrAs
r��Fc@seZdZUeed<dd�ZdS)r>r&cSsd||_dSr1r=r?rrrrmKsr@NrArrrrrHs
rdr\r+r^rrr�test_overwriting_init6szTestInit.test_overwriting_initN)rrrr9r=rCrrrrr6s
r6c@s$eZdZdd�Zdd�Zdd�ZdS)�TestReprcCs�tGdd�d��}tGdd�d|��}|d�}|�t|�d�tGdd�d|��}|�t|��d	�tGd
d�d��}|�t|�d��d�|�t|���d
�dS)Nc@seZdZUeed<dS)zTestRepr.test_repr.<locals>.Br&Nr'rrrrrERs
rEc@seZdZUdZeed<dS)�TestRepr.test_repr.<locals>.Cr\r@NrxrrrrrVs
rr�z(TestRepr.test_repr.<locals>.C(x=4, y=10)c@seZdZUdZeed<dS)zTestRepr.test_repr.<locals>.Dr�r&NrCrrrrr�]s
r�z)TestRepr.test_repr.<locals>.D(x=20, y=10)c@s0eZdZeGdd�d��ZeGdd�d��ZdS)rEc@seZdZUeed<dS)zTestRepr.test_repr.<locals>.C.Dr$Nr'rrrrr�ds
r�c@seZdZdS)zTestRepr.test_repr.<locals>.C.ENrrrrrr�gsr�N)rrrrr�r�rrrrrbsrz$TestRepr.test_repr.<locals>.C.D(i=0)z!TestRepr.test_repr.<locals>.C.E())rrr7r�r�)r!rErr"r�rrr�	test_reprQszTestRepr.test_reprcCsbtdd�Gdd�d��}|�t�d�t|d���tdd�Gdd�d��}|�t|d��d�dS)	NFr�c@seZdZUeed<dS)� TestRepr.test_no_repr.<locals>.Cr&Nr'rrrrros
rz+.TestRepr.test_no_repr.<locals>.C object atrBc@seZdZUeed<dd�ZdS)rGr&cSsdS)N�C-classrrMrrr�__repr__ysz)TestRepr.test_no_repr.<locals>.C.__repr__N�rrrr(r)rIrrrrrvs
rH)rr�rr7rr^rrr�test_no_reprms
�zTestRepr.test_no_reprcCs�tGdd�d��}|�t|d��d�tdd�Gdd�d��}|�t|d��d�tdd�Gd	d�d��}|�t|d��d�dS)
Nc@seZdZUeed<dd�ZdS)�)TestRepr.test_overwriting_repr.<locals>.Cr&cSsdS�Nr&rrMrrrrI�s�2TestRepr.test_overwriting_repr.<locals>.C.__repr__NrJrrrrr�s
rrr&Tr�c@seZdZUeed<dd�ZdS)rLr&cSsdSrMrrMrrrrI�srNNrJrrrrr�s
Fc@seZdZUeed<dd�ZdS)rLr&cSsdSrMrrMrrrrI�srNNrJrrrrr�s
rer^rrr�test_overwriting_repr}szTestRepr.test_overwriting_reprN)rrrrFrKrOrrrrrDPsrDc@seZdZdd�Zdd�ZdS)�TestEqcCsltdd�Gdd�d��}|�|d�|d��|d�}|�||�tdd�Gdd�d��}|�|d�d�dS)	NF�r�c@seZdZUeed<dS)�TestEq.test_no_eq.<locals>.Cr&Nr'rrrrr�s
rrrBc@seZdZUeed<dd�ZdS)rRr&cSs|dkSr0rrRrrrrT�sz#TestEq.test_no_eq.<locals>.C.__eq__NrVrrrrr�s
r\)rrqrrxrrr�
test_no_eq�szTestEq.test_no_eqcCs�tGdd�d��}|�|d�d�|�|d�d�tdd�Gdd�d��}|�|d�d�|�|d�d�td	d�Gd
d�d��}|�|d�d�|�|d�d�dS)Nc@seZdZUeed<dd�ZdS)�%TestEq.test_overwriting_eq.<locals>.Cr&cSs|dkSr;rrRrrrrT�s�,TestEq.test_overwriting_eq.<locals>.C.__eq__NrVrrrrr�s
rr-rBTrQc@seZdZUeed<dd�ZdS)rTr&cSs|dkSr&rrRrrrrT�srUNrVrrrrr�s
r�Fc@seZdZUeed<dd�ZdS)rTr&cSs|dkSr'rrRrrrrT�srUNrVrrrrr�s
rdr�r^rrr�test_overwriting_eq�szTestEq.test_overwriting_eqN)rrrrSrVrrrrrP�srPc@s$eZdZdd�Zdd�Zdd�ZdS)�TestOrderingcCsZttGdd�d���}|�|d�d�|�|d�d�|�|d�d�|�|d�d�dS)Nc@seZdZUeed<dd�ZdS)z5TestOrdering.test_functools_total_ordering.<locals>.Cr&cSs
|j|kSrZr=rRrrrr��sz<TestOrdering.test_functools_total_ordering.<locals>.C.__lt__N�rrrr(r)r�rrrrr�s
rr���r-)rrr�r�r�r�r^rrr�test_functools_total_ordering�sz*TestOrdering.test_functools_total_orderingcCs�tdd�Gdd�d��}|�d|j�|�d|j�|�d|j�|�d|j�tdd�Gd	d�d��}|�d|j�|�d|j�|�d|j�dS)
NFr�c@seZdZUeed<dS)�%TestOrdering.test_no_order.<locals>.Cr&Nr'rrrrr�s
rr�r�r�r�c@seZdZUeed<dd�ZdS)r[r&cSsdSrQrrRrrrr��sz,TestOrdering.test_no_order.<locals>.C.__lt__NrXrrrrr�s
rNr^rrr�
test_no_order�szTestOrdering.test_no_orderc	Cs�|�td��tdd�Gdd�d��}W5QRX|�td��tdd�Gdd�d��}W5QRX|�td��tdd�Gd	d�d��}W5QRX|�td
��tdd�Gdd�d��}W5QRXdS)NzACannot overwrite attribute __lt__.*using functools.total_orderingTr�c@seZdZUeed<dd�ZdS)�.TestOrdering.test_overwriting_order.<locals>.Cr&cSsdSrZrrMrrrr��sz5TestOrdering.test_overwriting_order.<locals>.C.__lt__NrXrrrrr�s
rzACannot overwrite attribute __le__.*using functools.total_orderingc@seZdZUeed<dd�ZdS)r]r&cSsdSrZrrMrrrr��sz5TestOrdering.test_overwriting_order.<locals>.C.__le__N)rrrr(r)r�rrrrr�s
zACannot overwrite attribute __gt__.*using functools.total_orderingc@seZdZUeed<dd�ZdS)r]r&cSsdSrZrrMrrrr�	sz5TestOrdering.test_overwriting_order.<locals>.C.__gt__N)rrrr(r)r�rrrrr	s
zACannot overwrite attribute __ge__.*using functools.total_orderingc@seZdZUeed<dd�ZdS)r]r&cSsdSrZrrMrrrr�	sz5TestOrdering.test_overwriting_order.<locals>.C.__ge__N)rrrr(r)r�rrrrr	s
rr^rrr�test_overwriting_order�s(����z#TestOrdering.test_overwriting_orderN)rrrrZr\r^rrrrrW�srWc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestHashcCs6tdd�Gdd�d��}|�t|dd��td��dS)NTrXc@seZdZUeed<eed<dS)z$TestHash.test_unsafe_hash.<locals>.Cr&r@Nr.rrrrr	s
rr-rj)r-rj�rrr]r^rrr�test_unsafe_hash	szTestHash.test_unsafe_hashc		s�dd�}�fdd�}tddddd	d
ddgd
�D]r\}\}}}}}|||||d|�|||||d|�||||�||�||�d|�||||�||�||�d|�q.dS)NcSs|dkrdS|rdSdS)N)rBrr)r�rrr�non_bool	s
z*TestHash.test_hash_rules.<locals>.non_boolc
s�j||||d���|dkrZ|r>t|||d�Gdd�d��}nt|||d�Gdd�d��}|dkr���d|j���|jd�n�|d	kr�|s���d|j�nh|d
krƈ�d|j���|jd�n@|dk�r��td��"t|||d�Gdd�d��}W5QRXnW5QRXdS)
N)�caserYr�rIr�)rYr�rIc@seZdZdd�ZdS)�1TestHash.test_hash_rules.<locals>.test.<locals>.CcSsdSr�rrMrrrrN*	s�:TestHash.test_hash_rules.<locals>.test.<locals>.C.__hash__Nr[rrrrr(	src@seZdZdS)rdNrrrrrr-	sr�rNr%�nonerWc@seZdZdd�ZdS)rdcSsdSr�rrMrrrrNH	sreNr[rrrrrF	s)	r�rr�r�ZassertIsNotNoner�r�r2rF)rcrYr�rIZ	with_hashr�rrMrrr�#	s.
�
z&TestHash.test_hash_rules.<locals>.test)FFFr%r%)FFTr%r%)FTFrfr%)FTTr�r%)TFFr�r�)TFTr�r�)TTFr�r�)TTTr�r�r-FT)r�)	r!rbr�rcrYr�rIZres_no_defined_hashZres_defined_hashrrMr�test_hash_rules	s$1�	�
zTestHash.test_hash_rulescCs�tGdd�d��}|�|d�|d��|�|d�|d��tdd�Gdd�d��}|�|d�|d��|�t|d��t|d���tddd	�Gd
d�d��}|�|d�|d��|�|d�|d��|�t|d��t|d���dS)Nc@seZdZUeed<dd�ZdS)� TestHash.test_eq_only.<locals>.Cr$cSs|j|jkSrZr<rRrrrrTq	s�'TestHash.test_eq_only.<locals>.C.__eq__NrVrrrrrn	s
rr-r�TrXc@seZdZUeed<dd�ZdS)rhr$cSs|j|jkSrZr<rRrrrrT{	sriNrVrrrrrx	s
r	)rYr�c@seZdZUeed<dd�ZdS)rhr$cSs|jdko|j|jkSr;r<rRrrrrT�	sriNrVrrrrr�	s
rB)rrrqr]r^rrr�test_eq_onlyh	s
zTestHash.test_eq_onlycCs`tdd�Gdd�d��}|�t|��td��tdd�Gdd�d��}|�t|��td��dS)NTrHc@seZdZdS�z%TestHash.test_0_field_hash.<locals>.CNrrrrrr�	srrrXc@seZdZdSrkrrrrrr�	sr`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)NTrHc@seZdZUeed<dS�z%TestHash.test_1_field_hash.<locals>.Cr&Nr'rrrrr�	s
rr�)r�r*�r*rXc@seZdZUeed<dSrmr'rrrrr�	s
r`r^rrr�test_1_field_hash�	szTestHash.test_1_field_hashcCs Gdd�d�}ddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dffD�]R\}}}}|j||||d	���,|dk�r|dk�rtGd
d�d|��}nh|dk�r:t|d�Gd
d�d|��}nB|dk�r`t|d�Gdd�d|��}nt||d�Gdd�d|��}|dk�r�|d�}|�td��t|�W5QRXn`|dk�r�|�t|d��d�n@|dk�r�|�|jtj�n$|dk�r|�t|d��td��nW5QRXq�dS)Nc@seZdZdd�ZdS)z(TestHash.test_hash_no_args.<locals>.BasecSsdSrKrrMrrrrN�	sz1TestHash.test_hash_no_args.<locals>.Base.__hash__Nr[rrrrr`�	sr`Z
unhashableFrv�baseTr�)rIr�rpr�c@seZdZUeed<dS�z%TestHash.test_hash_no_args.<locals>.Cr$Nr'rrrrr�	s
rrQc@seZdZUeed<dSrqr'rrrrr�	s
rHc@seZdZUeed<dSrqr'rrrrr�	s
)rIr�c@seZdZUeed<dSrqr'rrrrr�	s
r\�unhashable typerLr*rn)	rvr�rr2rFr]rr�rN)r!r`rIr�rpr�rrrrrr�test_hash_no_args�	sV

















�






zTestHash.test_hash_no_argsN)	rrrrargrjrlrorsrrrrr_	sN#
r_c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�
TestFrozenc	Cs\tdd�Gdd�d��}|d�}|�|jd�|�t��d|_W5QRX|�|jd�dS)NTrHc@seZdZUeed<dS)z!TestFrozen.test_frozen.<locals>.Cr$Nr'rrrrr�	s
rr\rd)rrr$r�r3rxrrr�test_frozen�	szTestFrozen.test_frozenc	Cs�tdd�Gdd�d��}tdd�Gdd�d|��}|dd�}|�t��d	|_W5QRX|�t��d
|_W5QRX|�|jd�|�|jd�dS)NTrHc@seZdZUeed<dS)z"TestFrozen.test_inherit.<locals>.Cr$Nr'rrrrr�	s
rc@seZdZUeed<dS)z"TestFrozen.test_inherit.<locals>.DrNr'rrrrr��	s
r�rr\rdr
)rr�r3r$rr�r!rr�r�rrr�test_inherit�	s
zTestFrozen.test_inheritc	CsHtdd�Gdd�d��}|�td��tGdd�d|��}W5QRXdS)NTrHc@seZdZdS)z>TestFrozen.test_inherit_nonfrozen_from_empty_frozen.<locals>.CNrrrrrr
sr�5cannot inherit non-frozen dataclass from a frozen onec@seZdZUeed<dS)z>TestFrozen.test_inherit_nonfrozen_from_empty_frozen.<locals>.DrNr'rrrrr�
s
r�r r rrr�(test_inherit_nonfrozen_from_empty_frozen
s�z3TestFrozen.test_inherit_nonfrozen_from_empty_frozencCsLtGdd�d��}tGdd�d|��}|d�}|�|jd�|�||�dS)Nc@seZdZdS)z7TestFrozen.test_inherit_nonfrozen_from_empty.<locals>.CNrrrrrr
src@seZdZUeed<dS)z7TestFrozen.test_inherit_nonfrozen_from_empty.<locals>.DrNr'rrrrr�
s
r�rB)rrrr�rvrrr�!test_inherit_nonfrozen_from_empty
sz,TestFrozen.test_inherit_nonfrozen_from_emptycCs�dD]z}|j|d��dtdd�Gdd�d��}|rDGdd�d|�}n|}|�td	��tGd
d�d|��}W5QRXW5QRXqdS)N�TF��intermediate_classTrHc@seZdZUeed<dS)z8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.Cr$Nr'rrrrr(
s
rc@seZdZdS)z8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.INrrrrr�I-
sr~rxc@seZdZdS)z8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.DNrrrrrr�3
sr��r�rr2rF�r!r}rr~r�rrr�"test_inherit_nonfrozen_from_frozen%
s�z-TestFrozen.test_inherit_nonfrozen_from_frozencCs�dD]z}|j|d��dtGdd�d��}|r>Gdd�d|�}n|}|�td�� tdd	�Gd
d�d|��}W5QRXW5QRXqdS)Nr{r|c@seZdZUeed<dS)z8TestFrozen.test_inherit_frozen_from_nonfrozen.<locals>.Cr$Nr'rrrrr:
s
rc@seZdZdS)z8TestFrozen.test_inherit_frozen_from_nonfrozen.<locals>.INrrrrrr~?
sr~z5cannot inherit frozen dataclass from a non-frozen oneTrHc@seZdZdS)z8TestFrozen.test_inherit_frozen_from_nonfrozen.<locals>.DNrrrrrr�E
sr�rr�rrr�"test_inherit_frozen_from_nonfrozen7
s�z-TestFrozen.test_inherit_frozen_from_nonfrozenc
Cs�dD]�}|j|d��HGdd�d�}|r:Gdd�d|�}n|}tdd�Gd	d
�d
|��}W5QRX|d�}|�t��d|_W5QRXqdS)
Nr{r|c@seZdZdS)z4TestFrozen.test_inherit_from_normal_class.<locals>.CNrrrrrrL
src@seZdZdS)z4TestFrozen.test_inherit_from_normal_class.<locals>.INrrrrrr~P
sr~TrHc@seZdZUeed<dS)z4TestFrozen.test_inherit_from_normal_class.<locals>.Dr$Nr'rrrrr�T
s
r�r\rd)r�rr�r3r$)r!r}rr~r�r�rrr�test_inherit_from_normal_classI
sz)TestFrozen.test_inherit_from_normal_classc	Cs�tdd�Gdd�d��}Gdd�d|�}|d�}|�|jd�|�|jd�d|_|�t��d	|_W5QRX|�t��d	|_W5QRX|�|jd�|�|jd�|�|jd�dS)
NTrHc@s"eZdZUeed<dZeed<dS)z4TestFrozen.test_non_frozen_normal_derived.<locals>.Dr&r\r@NrArrrrr�_
s
r�c@seZdZdS)z4TestFrozen.test_non_frozen_normal_derived.<locals>.SNrrrrrrd
srrBr\rd)rrr&r@�cachedr�r3)r!r�rrJrrr�test_non_frozen_normal_derived\
sz)TestFrozen.test_non_frozen_normal_derivedc	Cs�|�td��tdd�Gdd�d��}W5QRX|�td��tdd�Gdd�d��}W5QRXtdd�Gd	d�d��}|�|d
�jd�dS)Nz&Cannot overwrite attribute __setattr__TrHc@seZdZUeed<dd�ZdS)�-TestFrozen.test_overwriting_frozen.<locals>.Cr&cSsdSrZrrMrrrr�|
s�9TestFrozen.test_overwriting_frozen.<locals>.C.__setattr__N�rrrr(r)r�rrrrry
s
rz&Cannot overwrite attribute __delattr__c@seZdZUeed<dd�ZdS)r�r&cSsdSrZrrMrrr�__delattr__�
sz9TestFrozen.test_overwriting_frozen.<locals>.C.__delattr__N)rrrr(r)r�rrrrr�
s
Fc@seZdZUeed<dd�ZdS)r�r&cSs|d|jd<dS)Nr�r&)r�r�rrrr��
sr�Nr�rrrrr�
s
r\r�)r2rFrrr&r^rrr�test_overwriting_frozenu
s��z"TestFrozen.test_overwriting_frozenc	CsLtdd�Gdd�d��}t|d��|�td��t|i��W5QRXdS)NTrHc@seZdZUeed<dS)z&TestFrozen.test_frozen_hash.<locals>.Cr&N)rrrrr)rrrrr�
s
rrBrr)rr]r2rFr^rrr�test_frozen_hash�
s
zTestFrozen.test_frozen_hashN)
rrrrurwryrzr�r�r�r�r�r�rrrrrt�	srtc@seZdZdd�Zdd�ZdS)�	TestSlotsc	Cs|tGdd�d��}|�td��|�W5QRX|d�}|�|jd�d|_|�|jd�|�td��d|_W5QRXdS)Nc@seZdZUdZeed<dS)z TestSlots.test_simple.<locals>.Cr=r&N�rrr�	__slots__rr)rrrrr�
s
rr�r\rdz'C' object has no attribute 'y')rr2rFrr&r}r@rxrrr�test_simple�
s�zTestSlots.test_simplecCsNtGdd�d��}tGdd�d|��}|dd�}|�|j|jfd�d|_dS)	Nc@seZdZUdZeed<dS)z0TestSlots.test_derived_added_field.<locals>.Baser=r&Nr�rrrrr`�
s
r`c@seZdZUeed<eed<dS)z3TestSlots.test_derived_added_field.<locals>.Derivedr&r@Nr'rrrr�Derived�
s
r�r-r�rr\)rrr&r@ra)r!r`r�r�rrr�test_derived_added_field�
s
z"TestSlots.test_derived_added_fieldN)rrrr�r�rrrrr��
sr�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestDescriptorscsnGdd�d��tG�fdd�d��}|�|jjd�tG�fdd�d��}|�|jjd�|�|�jd�dS)Nc@seZdZdd�Zdd�ZdS)z(TestDescriptors.test_set_name.<locals>.DcSs|d|_dSrM�r9�r!�ownerr9rrr�__set_name__�
sz5TestDescriptors.test_set_name.<locals>.D.__set_name__cSs|dk	rdS|S�Nr-r)r!�instancer�rrr�__get__�
sz0TestDescriptors.test_set_name.<locals>.D.__get__N)rrrr�r�rrrrr��
sr�cseZdZU��Zeed<dS)�(TestDescriptors.test_set_name.<locals>.CrrN)rrrrrr(r)r�r�rrr�
s
r�cxcs$eZdZUe��dd�Zeed<dS)r�FrrrN�rrrr1rrr(r)rr�rrr�
s
r-�rrrrr9r^rr�r�
test_set_name�
s
zTestDescriptors.test_set_namecs8Gdd�d��tG�fdd�d��}|�|jjd�dS)Nc@seZdZdd�ZdS)z.TestDescriptors.test_non_descriptor.<locals>.DcSs|d|_dSrMr�r�rrrr��
sz;TestDescriptors.test_non_descriptor.<locals>.D.__set_name__N)rrrr�rrrrr��
sr�cs$eZdZUe��dd�Zeed<dS)z.TestDescriptors.test_non_descriptor.<locals>.CFrrrNr�rr�rrr�
s
rr�r�r^rr�r�test_non_descriptor�
sz#TestDescriptors.test_non_descriptorcsFGdd�d�}|��t��_tG�fdd�d��}|��jjd�dS)Nc@seZdZdS)z2TestDescriptors.test_lookup_on_instance.<locals>.DNrrrrrr��
sr�cs"eZdZUe�dd�Zeed<dS)z2TestDescriptors.test_lookup_on_instance.<locals>.CFrr$Nr�rr�rrr�
s
rr�rr�rrrt)r!r�rrr�r�test_lookup_on_instance�
sz'TestDescriptors.test_lookup_on_instancecs@Gdd�d��t��_tG�fdd�d��}|��jjd�dS)Nc@seZdZdS)z/TestDescriptors.test_lookup_on_class.<locals>.DNrrrrrr�sr�cs$eZdZUe��dd�Zeed<dS)z/TestDescriptors.test_lookup_on_class.<locals>.CFrr$Nr�rr�rrrs
rr-r�r^rr�r�test_lookup_on_classs
z$TestDescriptors.test_lookup_on_classN)rrrr�r�r�r�rrrrr��
s
r�c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestStringAnnotationsc
sPdD]F�|j�d��0tG�fdd�d��}|�|�d|j�W5QRXqdS)N)
z
ClassVar[int]zClassVar [int] ClassVar [int]rz
 ClassVar ztyping.ClassVar[int]ztyping.ClassVar[str]z typing.ClassVar[str]ztyping .ClassVar[str]ztyping. ClassVar[str]ztyping.ClassVar [str]ztyping.ClassVar [ str]ztyping.ClassVar.[int]ztyping.ClassVar+�ZtypestrcseZdZU�ed<dS)z.TestStringAnnotations.test_classvar.<locals>.Cr&Nrrr�rrr(s
rr&)r�rr�r�r^rr�r�
test_classvarsz#TestStringAnnotations.test_classvarc
sNdD]D�|j�d��.tG�fdd�d��}|�|d�jd�W5QRXqdS)N)
�CVz
t.ClassVarzt.ClassVar[int]ztyping..ClassVar[int]ZClassvarz
Classvar[int]ztyping.ClassVarx[int]ztypong.ClassVar[int]zdataclasses.ClassVar[int]ztypingxClassVar[str]r�cseZdZU�ed<dS)z3TestStringAnnotations.test_isnt_classvar.<locals>.Cr&Nrrr�rrr@s
rr\�r�rrr&r^rr�r�test_isnt_classvar3s
z(TestStringAnnotations.test_isnt_classvarcs^dD]T�|j�d��>tG�fdd�d��}|�td��|d�jW5QRXW5QRXqdS)N)
zInitVar[int]zInitVar [int] InitVar [int]rWz	 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+r�cseZdZU�ed<dS)z-TestStringAnnotations.test_initvar.<locals>.Cr&Nrrr�rrr]s
rzobject has no attribute 'x'r-)r�rr2r}r&r^rr�r�test_initvarGs�z"TestStringAnnotations.test_initvarc
sNdD]D�|j�d��.tG�fdd�d��}|�|d�jd�W5QRXqdS)N)�IVz
dc.InitVarzxdataclasses.xInitVarztyping.xInitVar[int]r�cseZdZU�ed<dS)z2TestStringAnnotations.test_isnt_initvar.<locals>.Cr&Nrrr�rrrms
rr\r�r^rr�r�test_isnt_initvarfs
z'TestStringAnnotations.test_isnt_initvarc
Csddlm}ddlm}ddlm}ddlm}||||fD]�}|j|d���|jr`|�d�}n|��}|�|j	d�|�
dd	d
dd�}d
D]F}|j|d��0|�td|�d���t
||�W5QRXW5QRXq�|jr�|�d|j�|�|jd�n|�d|j�W5QRXq<dS)Nr)�dataclass_module_1)�dataclass_module_1_str)�dataclass_module_2)�dataclass_module_2_str)�mr\r�r-r�rBr�)Ziv0Ziv1Ziv2Ziv3)�
field_namezobject has no attribute 'r��not_iv4)r�r�r�r�r�r�Z
USING_STRINGSr�rZcv0r�r2r}r�r�r�r�r�)r!r�r�r�r�r�rrr�rrr�!test_classvar_module_level_importts,� z7TestStringAnnotations.test_classvar_module_level_importcCsHddlm}|�t|j�d|ji�|�t|jj�|jtd�d��dS)Nr)�dataclass_textannorj)rjr%)r�r�rr
ryrwrmr�)r!r�rrr�test_text_annotations�s�
��z+TestStringAnnotations.test_text_annotationsN)	rrrr�r�r�r�r�r�rrrrr�s$)r�c@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�TestMakeDataclasscCsZtddtfdttdd�fgddd�id	�}|d
�}|�|j|jfd�|�|��d�dS)
Nrr&r@rdr��add_onecSs
|jdSr�r=rMrrrr��r�z/TestMakeDataclass.test_simple.<locals>.<lambda>�rr\)r\rdrd)r�r(r1rr&r@r�rxrrrr��s�
�zTestMakeDataclass.test_simplecCs6i}tddtfdttdd�fg|d�}|�|i�dS)Nrr&r@rdr�r�)r�r(r1r)r!�nsrrrr�test_no_mutate_namespace�s��z*TestMakeDataclass.test_no_mutate_namespacecCsdGdd�d�}Gdd�d�}tddtfg||fd�}|d�}|�||�|�||�|�||�dS)	Nc@seZdZdS)z*TestMakeDataclass.test_base.<locals>.Base1Nrrrrr�Base1�sr�c@seZdZdS)z*TestMakeDataclass.test_base.<locals>.Base2Nrrrrr�Base2�sr�rr&�rr�)r�r(r��r!r�r�rrrrrr�	test_base�s�zTestMakeDataclass.test_basec	Cs�tGdd�d��}Gdd�d�}tddtfg||fd�}|�td��|d	�}W5QRX|d
d	�}|�||�|�||�|�||�|�|j|jfd�dS)Nc@seZdZUeed<dS)z4TestMakeDataclass.test_base_dataclass.<locals>.Base1r&Nr'rrrrr��s
r�c@seZdZdS)z4TestMakeDataclass.test_base_dataclass.<locals>.Base2Nrrrrrr��sr�rr@r�zrequired positionalr�r-r)	rr�r(r2rFr�rr&r@r�rrr�test_base_dataclass�s�
z%TestMakeDataclass.test_base_dataclasscCs`dd�}tddtfdttfgd|id�}|dd	�}|�t|�dd
i�|�tt|��d�dS)NcSs|j|9_dSrZr=�r!r@rrr�	post_init�sz2TestMakeDataclass.test_init_var.<locals>.post_initrr&r@r-r�r�rBr
r-)r�r(rWrr�rr)r!r�rrrrrrr]�s
��
zTestMakeDataclass.test_init_varc	Cs~tddtfdttdfdtttdd�fg�}|d�}|�t|�ddi�|�tt|��d�|�|jd�|�|j	d�dS)	Nrr&r@r\rar�r�r-)
r�r(rr1rr�rrr@rarxrrrrM�s��z TestMakeDataclass.test_class_varc	Cs|tddtfdttdfdtttdd�fgdd	�}|�d
t|��|�dt|��|�td��tdgdd
�}W5QRXdS)Nrr&r@r\rar�r�Fr�rmrIzunexpected keyword argument)Zxxinit)	r�r(rr1r�r�r�r2rFr^rrr�test_other_params�s���z#TestMakeDataclass.test_other_paramscCs�tddddg�}|ddd�}|�t|�dddd��|�|jd	d	d	d��tdddtfdg�}|ddd�}|�t|�dddd��|�|jd	td	d��dS)
Nr�r&r@rar-r�rB�r&r@raz
typing.Any)r�rr�r)r(rxrrr�
test_no_typess
�
�zTestMakeDataclass.test_no_typescCs�dD]B}|j|d��,|�td��tdd|g�W5QRXW5QRXqtdd�fD]B}|j|d��,|�td��tdd|g�W5QRXW5QRXqTdS)	N)r)r-r�rBr�)�	bad_fieldzInvalid field: rr�cSs|SrZrr=rrrr� r�zCTestMakeDataclass.test_invalid_type_specification.<locals>.<lambda>zhas no len\(\))r�r2rFr�r)r!r�rrr�test_invalid_type_specifications$�z1TestMakeDataclass.test_invalid_type_specificationcCsNdD]D}|j|d��.|�td��td|d|g�W5QRXW5QRXqdS)N)r��ab�r1zField name duplicatedrr��r�r2rFr��r!r1rrr�test_duplicate_field_names&sz,TestMakeDataclass.test_duplicate_field_namescCs�dD]�}|j|d��v|�td��tdd|g�W5QRX|�td��td|g�W5QRX|�td��td|dg�W5QRXW5QRXqdS)N)�for�async�await�asr�zmust not be keywordsrr�r�r�rrr�test_keyword_field_names,sz*TestMakeDataclass.test_keyword_field_namescCs�dD]�}|j|d��v|�td��tdd|g�W5QRX|�td��td|g�W5QRX|�td��td|dg�W5QRXW5QRXqdS)N)�()�x,yr�2@3r%zlittle johnny tablesr�zmust be valid identifiersrr�r�r�rrr�test_non_identifier_field_names6sz1TestMakeDataclass.test_non_identifier_field_namescCstdddddg�dS)Nr�_Z_aZa_aZa_)r�rMrrr�test_underscore_field_names@sz-TestMakeDataclass.test_underscore_field_namesc
CsBdD]8}|j|d��"t|ddg�}|�|j|�W5QRXqdS)N)r�r�rr�r%)�	classnamer�r�)r�r�rr)r!r�rrrr�test_funny_class_names_namesEsz.TestMakeDataclass.test_funny_class_names_namesN)rrrr�r�r�r�r]rMr�r�r�r�r�r�r�r�rrrrr��s
	


r�c@steZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestReplacec	Cs�tdd�Gdd�d��}|dd�}t|dd�}|�|jd�|�|jd�|�tt�|�tt||�|�t��t|dd	�}W5QRX|�|jd�|�|jd�dS)
NTrHc@seZdZUeed<eed<dS)zTestReplace.test.<locals>.Cr&r@Nr'rrrrrOs
rr-r�rBr=)r�r&)	rr�rr&r@r�rFZassertWarns�DeprecationWarning�r!rrrrorrrr�Ns
zTestReplace.testc	Cs
tdd�Gdd�d��}|dd�}t|dd�}|�|j|j|j|jfd	�|�|j|j|j|jfd
�|�td��t|ddd
d�W5QRX|�td��"t|dd�t|ddd
d�W5QRX|�t	d��d|_W5QRX|�t
d��t|ddd�}W5QRXdS)NTrHc@sFeZdZUeed<eed<eddd�Zeed<eddd�Zeed<d	S)
z"TestReplace.test_frozen.<locals>.Cr&r@Fr\r�rarPr�N)rrrr(r)r1rar�rrrrras
rr-r�rBr=)r-r�r\rP)rBr�r\rP�
init=Falser�re)r&rar�r7zcannot assign to field 'x'z3__init__\(\) got an unexpected keyword argument 'a'rd)r&r�)rr�rr&r@rar�r2r3r3rFr�rrrru`s
zTestReplace.test_frozenc	CsJtdd�Gdd�d��}|dd�}|�td��t|dd	�}W5QRXdS)
NTrHc@seZdZUeed<eed<dS)z.TestReplace.test_invalid_field_name.<locals>.Cr&r@Nr'rrrrr�s
rr-r�z3__init__\(\) got an unexpected keyword argument 'z'rBr7�rr2rFr�r�rrr�test_invalid_field_name�s

z#TestReplace.test_invalid_field_namec	Csdtdd�Gdd�d��}|�td��t|dd�W5QRX|�td��tddd�W5QRXdS)	NTrHc@seZdZUeed<eed<dS)z*TestReplace.test_invalid_object.<locals>.Cr&r@Nr'rrrrr�s
rr�rBr=rr�r^rrr�test_invalid_object�szTestReplace.test_invalid_objectc	Cs�tGdd�d��}|d�}d|_t|dd�}|�|j|jfd�|�td��t|d	d
d�W5QRX|�td��t|d
d�W5QRXdS)
Nc@s*eZdZUeed<eddd�Zeed<dS)z#TestReplace.test_no_init.<locals>.Cr&Fr\r�r@Nrrrrrr�s
rr-r�rdr=)rdr\r�r��rbr)rr@r�rr&r2r3r�rrrr=�szTestReplace.test_no_initc	CsttGdd�d��}|d�}|d�}|�|j|j�|�|jd�|�td��t|dd�W5QRXt|d	d
�dS)Nc@s&eZdZUeed<dZeeed<dS)z$TestReplace.test_classvar.<locals>.Cr&rEr@N)rrrr(r)r@rrrrrr�s
rr-r�rEz3__init__\(\) got an unexpected keyword argument 'y'r�rrdr=)rr�r@rr2rFr�r�rrrr��szTestReplace.test_classvarc	CsntGdd�d��}|dd�}|�|jd�|�td��t|dd�W5QRXt|ddd	�}|�|jd
�dS)Nc@s*eZdZUeed<eeed<dd�ZdS)z0TestReplace.test_initvar_is_specified.<locals>.Cr&r@cSs|j|9_dSrZr=r�rrrr-�sz>TestReplace.test_initvar_is_specified.<locals>.C.__post_init__Nrcrrrrr�s
rr-r\z,InitVar 'y' must be specified with replace()rBr=rdrbrb)rrr&r2r3r�rxrrr�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&Nr@r*racSs0|dk	r|j|7_|dk	r,|j|7_dSrZr=)r!r@rarrrr-�szDTestReplace.test_initvar_with_default_value.<locals>.C.__post_init__)	rrrr(r)r@rWrar-rrrrr�s
rr-r\r�r�r=r�rr*)r@ra)rrr�rxrrr�test_initvar_with_default_value�sz+TestReplace.test_initvar_with_default_valuecCs4tGdd�d��}|d�}||_|�t|�d�dS)Nc@seZdZUded<dS)z*TestReplace.test_recursive_repr.<locals>.Crr�Nrrrrrr�s
rz1TestReplace.test_recursive_repr.<locals>.C(f=...)�rr�rr7rxrrr�test_recursive_repr�s
zTestReplace.test_recursive_reprcCs<tGdd�d��}|dd�}||_||_|�t|�d�dS)Nc@seZdZUded<ded<dS)z4TestReplace.test_recursive_repr_two_attrs.<locals>.Crr��gNrrrrrr�s
rzBTestReplace.test_recursive_repr_two_attrs.<locals>.C(f=..., g=...))rr�r�rr7rxrrr�test_recursive_repr_two_attrs�s
z)TestReplace.test_recursive_repr_two_attrscCsTtGdd�d��}tGdd�d��}|d�}|d�}||_||_|�t|�d�dS)Nc@seZdZUded<dS)z6TestReplace.test_recursive_repr_indirection.<locals>.Cr�r�Nrrrrrr�s
rc@seZdZUded<dS)z6TestReplace.test_recursive_repr_indirection.<locals>.Drr�Nrrrrrr��s
r�zwTestReplace.test_recursive_repr_indirection.<locals>.C(f=TestReplace.test_recursive_repr_indirection.<locals>.D(f=...))r�)r!rr�rrr�rrr�test_recursive_repr_indirection�sz+TestReplace.test_recursive_repr_indirectioncCsttGdd�d��}tGdd�d��}tGdd�d��}|d�}|d�}|d�}||_||_||_|�t|�d�dS)Nc@seZdZUded<dS)z:TestReplace.test_recursive_repr_indirection_two.<locals>.Cr�r�Nrrrrrr
s
rc@seZdZUded<dS)z:TestReplace.test_recursive_repr_indirection_two.<locals>.Dr�r�Nrrrrrr�
s
r�c@seZdZUded<dS)z:TestReplace.test_recursive_repr_indirection_two.<locals>.Err�Nrrrrrr�
s
r�z�TestReplace.test_recursive_repr_indirection_two.<locals>.C(f=TestReplace.test_recursive_repr_indirection_two.<locals>.D(f=TestReplace.test_recursive_repr_indirection_two.<locals>.E(f=...)))r�)r!rr�r�rrr�r�rrr�#test_recursive_repr_indirection_two
sz/TestReplace.test_recursive_repr_indirection_twocCs6tGdd�d��}|dd�}||_|�t|�d�dS)Nc@seZdZUded<eed<dS)z5TestReplace.test_recursive_repr_misc_attrs.<locals>.Crr�r�Nr�rrrrr 
s
rr-zATestReplace.test_recursive_repr_misc_attrs.<locals>.C(f=..., g=1)r�rxrrr�test_recursive_repr_misc_attrs
s

z*TestReplace.test_recursive_repr_misc_attrsN)rrrr�rur�r�r=r�r�r�r�r�r�r�r�rrrrr�Ms 	r��__main__)*Zdataclassesrrkr�ZunittestZ
unittest.mockr�typingrrrrrr	r
rrr
�collectionsrrr�	functoolsr�	Exceptionrrrr#r6rDrPrWr_rtr�r�r�r�r�r�mainrrrr�<module>s`,
#YBG/L]/*H%m


F1le Man4ger