a 4dg*@sddlTddlZddlZddlZddlZddlmZddlmZm Z m Z m Z m Z m Z mZmZmZddlmZddlmZmZmZddlmZddlZddlZGdd d eZGd d d ejZGd d d ejZGdddejZGdddejZGdddejZGdddejZGdddejZ GdddejZ!GdddejZ"GdddejZ#GdddejZ$Gd d!d!ejZ%Gd"d#d#ejZ&Gd$d%d%ejZ'e(d&kre)dS)')*N)Mock) ClassVarAnyListUnionTupleDictGenericTypeVarOptional)get_type_hints)deque OrderedDict namedtuple)total_orderingc@s eZdZdS) CustomErrorN__name__ __module__ __qualname__rr1/usr/local/lib/python3.9/test/test_dataclasses.pyrrc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Z d=d>Z!d?d@Z"dAdBZ#dCdDZ$dEdFZ%dGdHZ&dIdJZ'dKdLZ(dMdNZ)dOdPZ*dQdRZ+dSdTZ,dUdVZ-dWdXZ.dYdZZ/d[d\Z0d]d^Z1d_d`Z2dadbZ3dcddZ4dedfZ5dgdhZ6didjZ7dkdlZ8dmdnZ9dodpZ:dqdrZ;dsdtZdydzZ?d{d|Z@d}d~ZAddZBddZCddZDddZEddZFddZGddZHddZIddZJddZKddZLddZMddZNddZOddZPddZQddZRddZSddZTddZUddZVddZWddZXddZYddZZddZ[ddZ\ddZ]ddZ^ddZ_dS)TestCasecCs0tGddd}|}|tt|ddS)Nc@s eZdZdS)z"TestCase.test_no_fields..CNrrrrrCsrr dataclass assertEquallenfieldsselfrorrrtest_no_fieldsszTestCase.test_no_fieldscCs0tGddd}|}|tt|ddS)Nc@seZdZdZdS)z6TestCase.test_no_fields_but_member_variable..CrN)rrrirrrrr!srrrr!rrr"test_no_fields_but_member_variable sz+TestCase.test_no_fields_but_member_variablecCs,tGddd}|d}||jddS)Nc@seZdZUeed<dS)z-TestCase.test_one_field_no_default..CxNrrrint__annotations__rrrrr)s r*rrr'r!rrrtest_one_field_no_default(sz"TestCase.test_one_field_no_defaultcCsFd}|t|"tGddd}Wdn1s80YdS)Nz/cannot specify both default and default_factoryc@s"eZdZUededZeed<dS)z.Cdefaultdefault_factoryr'N)rrrfieldr)r'r*rrrrr3s r)assertRaisesRegex ValueErrorr)r"msgrrrr(test_field_default_default_factory_error0sz1TestCase.test_field_default_default_factory_errorcCs8tdddd}d|_t|}dtd}|||dS)Nr.TF)r0initrepridz4Field(name='id',type=None,default=1,default_factory=zX,init=True,repr=False,hash=None,compare=True,metadata=mappingproxy({}),_field_type=None))r2namer8MISSINGr)r"Z int_fieldZ repr_outputZexpected_outputrrrtest_field_repr7szTestCase.test_field_reprcCs.tGddd}|dd}||jddS)Nc@seZdZUeed<dS)z*TestCase.test_named_init_params..Cr'Nr(rrrrrDs r r'r,r!rrrtest_named_init_paramsCs zTestCase.test_named_init_paramscCstGddd}|d}||j|jfd|td"tGddd}Wdn1sb0Y|td6tGddd}tGd dd|}Wdn1s0Y|td6tGd dd}tGd dd|}Wdn1s0YdS) Nc@s"eZdZUeed<dZeed<dS)/TestCase.test_two_fields_one_default..Cr'ryNrrrr)r*rArrrrrLs r)rCrz1non-default argument 'y' follows default argumentc@s"eZdZUdZeed<eed<dS)r@rr'rANrrrr'r)r*rrrrrXs  c@seZdZUdZeed<dS)/TestCase.test_two_fields_one_default..Brr'NrDrrrrBas rFc@seZdZUeed<dS)r@rANr(rrrrres c@seZdZUeed<eed<dS)rEr'rANr(rrrrrFns c@seZdZUdZeed<dS)r@rr'NrDrrrrrss )rrr'rAr3 TypeError)r"rr#rFrrrtest_two_fields_one_defaultKs..0z$TestCase.test_two_fields_one_defaultcCstddGddd}|t|ddtddGddd}|t|dtd|td (tdd Gd dd}Wdn1s0Ytdd Gd dd}|t|d td|td (tdd Gddd}Wdn1s 0YdS)NTfrozenc@seZdZUeed<ddZdS)'TestCase.test_overwrite_hash..Cr'cSsdSN-rr"rrr__hash__}s0TestCase.test_overwrite_hash..C.__hash__N)rrrr)r*rOrrrrrzs rdrMc@seZdZUeed<ddZdS)rKr'cSsdSNFrr"otherrrr__eq__s.TestCase.test_overwrite_hash..C.__eq__Nrrrr)r*rUrrrrrs )rQ#Cannot overwrite attribute __hash__ unsafe_hashc@seZdZddZdS)rKcSsdSNrrNrrrrOsrPNrrrrOrrrrrsc@seZdZUeed<ddZdS)rKr'cSsdSr[rrNrrrrUsrVNrWrrrrrs  )r]c@s&eZdZUeed<ddZddZdS)rKr'cSsdSr[rrNrrrrUsrVcSsdSr[rrNrrrrOsrPN)rrrr)r*rUrOrrrrrs )rrhashr3rGr"rrrrtest_overwrite_hashws&.zTestCase.test_overwrite_hashcCsptGddd}tGddd|}|}|t|d|}|t|d|dd}|t|d dS) Nc@s&eZdZUdZeed<dZeed<dS)z=TestCase.test_overwrite_fields_in_derived_class..Baseg.@r'rrAN)rrrr'rr*rAr)rrrrBases  rac@s&eZdZUdZeed<dZeed<dS)z;TestCase.test_overwrite_fields_in_derived_class..C1r]zr'N)rrrrbr)r*r'rrrrC1s  rdzJTestCase.test_overwrite_fields_in_derived_class..Base(x=15.0, y=0)zLTestCase.test_overwrite_fields_in_derived_class..C1(x=15, y=0, z=10)r>zKTestCase.test_overwrite_fields_in_derived_class..C1(x=5, y=0, z=10)rrr8)r"rardr#rrr&test_overwrite_fields_in_derived_classs z/TestCase.test_overwrite_fields_in_derived_classcCstGddd}|d}||jdt|j}tt|j}| d|tGddd}t|j}tt|j}|d|dS)Nc@seZdZUeed<dS))TestCase.test_field_named_self..Cr"Nrrrstrr*rrrrrs rfoor"c@seZdZUeed<dS)rhZselfxNrirrrrrs ) rrr"inspect signature__init__nextiter parametersassertNotEqual)r"rcsigfirstrrrtest_field_named_selfs   zTestCase.test_field_named_selfcCs,tGddd}|d}||jddS)Nc@seZdZUeed<dS)z+TestCase.test_field_named_object..CobjectNrirrrrrs rrkrrrwr"rrsrrrtest_field_named_objectsz TestCase.test_field_named_objectcCs2tddGddd}|d}||jddS)NTrIc@seZdZUeed<dS)z2TestCase.test_field_named_object_frozen..CrwNrirrrrrs rrkrxryrrrtest_field_named_object_frozensz'TestCase.test_field_named_object_frozencsnhdtfddtjD}dd|D}td|}|dd|D}|D]}|t|||qRdS)N>FalseTrueNonec3s$|]}|ds|vr|VqdS__N startswith.0bZ exclusionsrr sz9TestCase.test_field_named_like_builtin..cSsg|] }|tfqSrrjrr:rrr rz:TestCase.test_field_named_like_builtin..rcSsg|]}|qSrrrrrrrrsortedbuiltins__dict__keysmake_dataclassrgetattrr"Zbuiltins_namesZ attributesrrsr:rrrtest_field_named_like_builtins  z&TestCase.test_field_named_like_builtincsrhdtfddtjD}dd|D}td|dd}|d d|D}|D]}|t|||qVdS) N>r|r}r~c3s$|]}|ds|vr|VqdSrrrrrrrsz@TestCase.test_field_named_like_builtin_frozen..cSsg|] }|tfqSrrrrrrrrzATestCase.test_field_named_like_builtin_frozen..rTrIcSsg|]}|qSrrrrrrrrrrrrr$test_field_named_like_builtin_frozens z-TestCase.test_field_named_like_builtin_frozenc CsTtGddd}tddGddd}||fD]}|j|d|||tdd d d d d d d gD]\}}|j|d \|td|jd|jd|||Wdn1s0YWdqt1s0YqtWdq21s 0Yq2tddGddd}||||||dS)Nc@s eZdZdS)z)TestCase.test_0_field_compare..C0NrrrrrC0 srForderc@s eZdZdS)z)TestCase.test_0_field_compare..C1NrrrrrrdsrdclscSs||kSr[rarrrrrz/TestCase.test_0_field_compare..cSs||kSr[rrrrrrrcSs||kSr[rrrrrrrcSs||kSr[rrrrrrridx$not supported between instances of '' and ''Tc@s eZdZdS)z(TestCase.test_0_field_compare..CNrrrrrrsr) rsubTestr enumerater3rGrassertLessEqualassertGreaterEqualr"rrdrrfnrrrrtest_0_field_compare s* nzTestCase.test_0_field_comparec CstGddd}tddGddd}||fD]}|j|d||d|d||d |dtd d d d d d dd gD]\}}|j|d`|td|jd|jd"||d |d Wdn1s0YWdq1s 0YqWdq21s,0Yq2tddGddd}||d |d| |d |d| |d|d| |d|d | |d|d | |d|ddS)Nc@seZdZUeed<dS)z)TestCase.test_1_field_compare..C0r'Nr(rrrrr's rFrc@seZdZUeed<dS)z)TestCase.test_1_field_compare..C1r'Nr(rrrrrd+s rdrr.rcSs||kSr[rrrrrr3rz/TestCase.test_1_field_compare..cSs||kSr[rrrrrr4rcSs||kSr[rrrrrr5rcSs||kSr[rrrrrr6rrrrrTc@seZdZUeed<dS)z(TestCase.test_1_field_compare..Cr'Nr(rrrrr<s r) rrrrrrr3rGr assertLessr assertGreaterrrrrrtest_1_field_compare%s4tzTestCase.test_1_field_comparec CsTtGddd}tddGddd}||fD]B}|j|d||dd|dd||d d |d d ||d d|dd||d d|d d td d d d dd dd gD]\}}|j|df|td|jd|jd&||dd|ddWdn1s*0YWdq1sJ0YqWdq21sl0Yq2tddGddd}tdd dd dd gD]T\}}|j|d,|||dd|ddWdn1s0Yqtdd dd dd gD]\}}|j|dd|||dd|dd |||dd |d d|||d d|d d Wdn1s0Yqtdd dd dd gD]\}}|j|dd|||dd |dd|||d d|dd |||d d |d dWdn1sB0YqdS) Nc@seZdZUeed<eed<dS)z(TestCase.test_simple_compare..C0r'rANr(rrrrrHs rFrc@seZdZUeed<eed<dS)z(TestCase.test_simple_compare..C1r'rANr(rrrrrdMs rdrrr.cSs||kSr[rrrrrrXrz.TestCase.test_simple_compare..cSs||kSr[rrrrrrYrcSs||kSr[rrrrrrZrcSs||kSr[rrrrrr[rrrrrTc@seZdZUeed<eed<dS)z'TestCase.test_simple_compare..Cr'rANr(rrrrras rcSs||kSr[rrrrrrfrcSs||kSr[rrrrrrgrcSs||kSr[rrrrrrhrcSs||kSr[rrrrrrlrcSs||kSr[rrrrrrmrcSs||kSr[rrrrrrnrcSs||kSr[rrrrrrtrcSs||kSr[rrrrrrurcSs||kSr[rrrrrrvr) rrrrrrr3rGr assertTruerrrrtest_simple_compareFsXz@@zTestCase.test_simple_comparec Cs2tGddd}tGddd|}tdddfddd fgD]R\}\}}|j|d *|||d |d |WdqB1s0YqBtd dd dddddgD]v\}}|j|d P|td"||d |d Wdn1s0YWdq1s"0YqdS)Nc@seZdZUeed<dS)z+TestCase.test_compare_subclasses..Br%Nr(rrrrrFs rFc@s eZdZdS)z+TestCase.test_compare_subclasses..CNrrrrrrsrcSs||kSr[rrrrrrrz2TestCase.test_compare_subclasses..FcSs||kSr[rrrrrrrTrrcSs||kSr[rrrrrrrcSs||kSr[rrrrrrrcSs||kSr[rrrrrrrcSs||kSr[rrrrrrrz.not supported between instances of 'B' and 'C')rrrrr3rG)r"rFrrrexpectedrrrtest_compare_subclasses|s&  :z TestCase.test_compare_subclassesc CsdD]\}}}|j||dp|dkrt|td*t||dGddd}Wdn1sf0Ynt||dGddd}|dkr|d |j|d |j|d |j|d |j|d |jn|dkr0|d |j|d |j|d |j|d |j|d |jnR|dkr|d |j|d |j|d |j|d |j|d |jnWdq1s0YqdS)N))FFneither)FT exception)TFeq_only)TTboth)eqrrz eq must be true if order is truec@s eZdZdSz!TestCase.test_eq_order..CNrrrrrrsrc@s eZdZdSrrrrrrrsrrU__lt____le____gt____ge__rr)rr3r4r assertNotInrassertIn)r"rrresultrrrr test_eq_orders6 2   zTestCase.test_eq_ordercCsZtGddd}||djd|td|Wdn1sL0YdS)Nc@seZdZUeZeed<dS)z)TestCase.test_field_no_default..Cr'Nrrrr2r'r)r*rrrrrs rre8__init__\(\) missing 1 required positional argument: 'x')rrr'r3rGr_rrrtest_field_no_defaultszTestCase.test_field_no_defaultcsfttGfddd}||j|d}||jd|`||j||jdS)Ncs eZdZUedZeed<dS)z&TestCase.test_field_default..Cr0r'N)rrrr2r'rwr*rrrrrs rr])rwrassertIsr'rryrrrtest_field_defaultszTestCase.test_field_defaultcCstGddd}|t|Wdn1s80Y|d}|t|dtGddd}|dd}|t|ddS)Nc@s eZdZUeddZeed<dS)$TestCase.test_not_in_repr..CFr8r'Nrrrrrrs rr]z&TestCase.test_not_in_repr..C()c@s(eZdZUeddZeed<eed<dS)rFrr'rANrrrrrrs z*TestCase.test_not_in_repr..C(y=20))r assertRaisesrGrr8ryrrrtest_not_in_reprs $ zTestCase.test_not_in_reprcCsptGddd}|||dd||dd|dd||d|dd||dd|dddS) Nc@s.eZdZUdZeed<edddZeed<dS)z'TestCase.test_not_in_compare..Crr'F)comparer0rAN)rrrr'r)r*r2rArrrrrs  rrrr.r]rCrrrrrr_rrrtest_not_in_compares zTestCase.test_not_in_comparec sdD]\}|jdrtddGfddd}|dkr^|t|dtd n"|d kr|t|dtd nWdq1s0YqdS) N))TFr2)TTr2)FFabsent)FTr)NFr)NTr2)r^rTrYcs$eZdZUeddZeed<dS)z)TestCase.test_hash_field_rules..Cre)rr^r0r'NrrrZhash_rrrs rr2re)rerr)rrrr^)r"rrrrrtest_hash_field_rulesszTestCase.test_hash_field_rulescCsftGddd}|d|jtGddd}|d|dj|t|ddddd dS) Nc@s eZdZUeddZeed<dS).TestCase.test_init_false_no_default..CFr7r'Nrrrrrrs rr'c@s@eZdZUeed<dZeed<eddZeed<dZeed<d S) rr'rrAFrrbr]tN) rrrr)r*rAr2rbrrrrrrs  rbrrer])rr'rA)rrrrvarsr_rrrtest_init_false_no_defaultsz#TestCase.test_init_false_no_defaultcCs`tGddd}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| |djdS) Nc@s<eZdZUeed<edddZeed<eddZeed<dS)z%TestCase.test_class_marker..Cr'FNr7r0rArrb) rrrr)r*r2rArjrbrrrrr#s rrCrr'r.rArrb)rr assertIsInstancetuplertypeZFieldrr:r*rrr) assertFalsehasattrrr7r8rj assertIsNoner)r"rZ the_fieldsfrrrtest_class_marker"s. zTestCase.test_class_markercCstGddd}tGddd|}|ddt|DgdtGdd d |}|d dt|Dgd tGd d d |}|ddt|DgddS)Nc@s2eZdZUdZeed<dZeed<dZeed<dS)z$TestCase.test_field_order..BB:arB:brB:crsN)rrrrrjr*rrsrrrrrFDs   rFc@seZdZUdZeed<dS)z$TestCase.test_field_order..CC:brN)rrrrrjr*rrrrrJs rcSsg|]}|j|jfqSrr:r0rrrrrrNrz-TestCase.test_field_order..)rr)rr)rsrc@seZdZUdZeed<dS)z$TestCase.test_field_order..DD:crsN)rrrrsrjr*rrrrDSs rcSsg|]}|j|jfqSrrrrrrrWr)rrrrsrc@s&eZdZUdZeed<dZeed<dS)z$TestCase.test_field_order..EE:arE:ddN)rrrrrjr*rrrrrE\s  rcSsg|]}|j|jfqSrrrrrrrar))rrrr)rrrrr )r"rFrrrrrrtest_field_orderCs"zTestCase.test_field_ordercs\ttGfddd}|t|d|t|d||j||jddS)NcsFeZdZUeed<eddZeed<Zeed<eddZ eed<d S) z$TestCase.test_class_attrs..Cr'FrrArbrQrrN) rrrr)r*r2rArbrwrrrrrrks  rr'rArQ)rwrrrrrbrrr_rrrtest_class_attrsgszTestCase.test_class_attrsc stgdgftiddiftttdgffD]V\|jd,|tdd(tGfddd}Wdn1s0Y|tdd(tGfd dd}Wdn1s0YGd d d |td (tGfd dd}Wdn1s*0YtGfddd}tGfddd}Wdq*1sx0Yq*dS)Nr.rtypzmutable default z for field x is not allowedcseZdZUZed<dS)8TestCase.test_disallowed_mutable_defaults..Pointr'N)rrrr'r*r)emptyrrrPoints rz for field y is not allowedcseZdZUZed<dS)rrAN)rrrrAr*r) non_emptyrrrrs c@s eZdZdS)z;TestCase.test_disallowed_mutable_defaults..SubclassNrrrrrSubclassrrz7mutable default .*Subclass'> for field z is not allowedcseZdZUZed<dS)rrbN)rrrrbr*rrrrrrs cs eZdZUZeed<dS)4TestCase.test_disallowed_mutable_defaults..CrbN)rrrrbrr*rrrrrs rcs eZdZUZeed<dS)rr'N)rrrr'rr*rrrrrs )listdictsetrr3r4rr"rrr)rrrrr test_disallowed_mutable_defaultsws2   4 46z)TestCase.test_disallowed_mutable_defaultscsGdddtGfddd}}||}||}||||jjddg|||||jjddg||j|jdS)Nc@seZdZddZdS)z.MutablecSs g|_dSr[lrNrrrrnszETestCase.test_deliberately_mutable_defaults..Mutable.__init__NrrrrnrrrrMutablesrcseZdZUed<dS)z6TestCase.test_deliberately_mutable_defaults..Cr'Nrrrr*rrrrrs rr.r)rrr'rextendr)r"rlstZo1Zo2rrr"test_deliberately_mutable_defaultss  z+TestCase.test_deliberately_mutable_defaultscCs*tGddd}||djddS)Nc@seZdZUeed<dS)z#TestCase.test_no_options..Cr'Nr(rrrrrs rr+r,r_rrrtest_no_optionsszTestCase.test_no_optionscCsRtGddd}||dddtGddd}||dd|dddS) Nc@seZdZUeed<eed<dS)z&TestCase.test_not_tuple..Pointr'rANr(rrrrrs rr.rr.rc@seZdZUeed<eed<dS)z"TestCase.test_not_tuple..Cr'rANr(rrrrrs rrC)rrrrrrrtest_not_tuples zTestCase.test_not_tuplecCstGddd}tGddd}||ddd|ddd||dd dd |td "|d d d\}}}Wdn1s0YtGddd}||ddd|dS)Nc@s&eZdZUeed<eed<eed<dS)z2TestCase.test_not_other_dataclass..Point3Dr'rArbNr(rrrrPoint3Ds r c@s&eZdZUeed<eed<eed<dS)z/TestCase.test_not_other_dataclass..DateZyearZmonthZdayNr(rrrrDates r irCr.r)r.rrCunpackrrec@s2eZdZUdZeed<dZeed<dZeed<dS)z4TestCase.test_not_other_dataclass..Point3Dv1rr'rArbN)rrrr'r)r*rArbrrrr Point3Dv1s   rr)rrrr3rG)r"r r r'rArbrrrrtest_not_other_dataclasss0z!TestCase.test_not_other_dataclasscsnGdddfdd}tGfddd}||tdddGfd dd}||dS) Nc@s eZdZdS)z-TestCase.test_function_annotations..FNrrrrrFsrcs|jdt|jdt|jd|jdt|jdtt|j} |j dt |j }t|}|jdt|}|jd |jt|jtjj|jtjjt|}|jd |jt|jtjj|jtjjt|}|jd |j|jtjjt|}|jd |jt|jtjjtt|dS)Nr%jkrrbr")rr*r)rjfloatcomplexrlrmrnrZreturn_annotationrprqvaluesror: annotationr0Z ParameterrkindZPOSITIONAL_OR_KEYWORDr StopIteration)rrmparamsZparam)rr"rrvalidate_classs: z:TestCase.test_function_annotations..validate_classcsPeZdZUeed<eed<Zed<eddZe ed<eddd Z e ed <dS z-TestCase.test_function_annotations..Cr%rrNrry@@Fr0r7rb rrrr)r*rjrr2rrrbrrrrrrr s  rT)rJrZcsPeZdZUeed<eed<Zed<eddZe ed<eddd Z e ed <dSrrrrrrr+s  )r)r"rrr)rrr"rtest_function_annotationss+ z"TestCase.test_function_annotationscCstGddd}|td|Wdn1s:0Y|d|jtGddd}|td|Wdn1s0Y|d|jdS)Nc@s eZdZUeedZeed<dS)z(TestCase.test_missing_default..Crr'Nrrrr2r;r'r)r*rrrrr8s r3__init__\(\) missing 1 required positional argumentr'c@seZdZUeed<dS)z(TestCase.test_missing_default..Dr'Nr(rrrrrAs rrr3rGrrr"rrrrrtest_missing_default5s$$zTestCase.test_missing_defaultcCstGddd}|td|Wdn1s:0Y|d|jtGddd}|td|Wdn1s0Y|d|jdS)Nc@s eZdZUeedZeed<dS)z0TestCase.test_missing_default_factory..Cr1r'Nr!rrrrrNs rr"r'c@s"eZdZUeeedZeed<dS)z0TestCase.test_missing_default_factory..Dr/r'Nr!rrrrrWs rr#r$rrrtest_missing_default_factoryJs$$z%TestCase.test_missing_default_factorycCs|dttdS)NzMISSING_TYPE object)rr8r;rNrrrtest_missing_repr`szTestCase.test_missing_reprcCsbtGddd}|t|jdg||dd||djd||djddS)Nc@s6eZdZUeed<edddZeedddZdS)z7TestCase.test_dont_include_other_annotations..Cr%)returncSsdSNrrrNrrrrkgsz;TestCase.test_dont_include_other_annotations..C.foocSsdSNrerrNrrrbarisz;TestCase.test_dont_include_other_annotations..C.barN)rrrr)r*rkpropertyr,rrrrrds rr%r]rre)rrrr*rkr,r%r_rrr#test_dont_include_other_annotationscs z,TestCase.test_dont_include_other_annotationscCs,tGddd}|t|Wdn1s80YtGddd}|t|Wdn1sz0Y|dtddGddd}|tGddd}||jd ||d jd td d Gddd}|t|Wdn1s0YdS)Nc@seZdZddZdS)"TestCase.test_post_init..CcSs tdSr[rrNrrr __post_init__us0TestCase.test_post_init..C.__post_init__Nrrrr1rrrrrssrc@s"eZdZUdZeed<ddZdS)r/r]r%cSs|jdkrtdSNr])r%rrNrrrr1}s r2N)rrrr%r)r*r1rrrrrzs  reFrc@seZdZddZdS)r/cSs tdSr[r0rNrrrr1sr2Nr3rrrrrsc@s"eZdZUdZeed<ddZdS)r/rr'cSs|jd9_dSNrr>rNrrrr1sr2Nrrrr'r)r*r1rrrrrs  rrrTrIc@s"eZdZUdZeed<ddZdS)r/rr'cSs|jd9_dSr5r>rNrrrr1sr2Nr6rrrrrs  )rrrrr'FrozenInstanceErrorr_rrrtest_post_initqs( $ $ zTestCase.test_post_initcCsGddd}tGddd|}||jdtGddd|}|t|Wdn1sl0YtGddd|}|t|Wdn1s0YdS)Nc@seZdZddZdS)z(TestCase.test_post_init_super..BcSs tdSr[r0rNrrrr1sz6TestCase.test_post_init_super..B.__post_init__Nr3rrrrrFsrFc@seZdZddZdS)(TestCase.test_post_init_super..CcSs d|_dSr+r>rNrrrr1s6TestCase.test_post_init_super..C.__post_init__Nr3rrrrrsrrecseZdZfddZZS)r9cstdSr[)superr1rN __class__rrr1sr:)rrrr1 __classcell__rrr<rrsc@s eZdZdS)r9Nrrrrrrs)rrr'rrr"rFrrrrtest_post_init_supers $ zTestCase.test_post_init_supercsPdtGfddd}||dd}||j|jfd|dS)NFcs.eZdZUeed<eed<efddZdS)z/TestCase.test_post_init_staticmethod..Cr'rAcsddSNTrrflagrrr1sz=TestCase.test_post_init_staticmethod..C.__post_init__N)rrrr)r* staticmethodr1rrBrrrs rrCrrCr)rrrr'rArryrrBrtest_post_init_staticmethods  z$TestCase.test_post_init_staticmethodcCsLtGddd}||j|dd}||j|jfd||jdS)Nc@s.eZdZUdZeed<eed<eddZdS)z.TestCase.test_post_init_classmethod..CFr'rAcSs d|_dSrArBrrrrr1sz.C.__post_init__N)rrrrCr)r* classmethodr1rrrrrs rrCrrE)rrrCrr'rArryrrrtest_post_init_classmethods   z#TestCase.test_post_init_classmethodcCstGddd}|d}|t|d|tt|d|t|jd||jd||jd||jd ||j d |jd 7_||jd |d }||j |j fd||jd ||jd||jd ||j d dS)Nc@s^eZdZUeed<dZeed<dZeeed<dZeeed<dZ eeed <d Z eed <d S) z"TestCase.test_class_var..Cr'r]rArbw rsN) rrrr)r*rArbrrKrrNrrrrrs  rrez-TestCase.test_class_var..C(x=5, y=10)rr rIrJrLrMr.rrr]) rrr8rr r*rbrKrrNr'rAryrrrtest_class_vars$zTestCase.test_class_varcCs$tGddd}|d|jdS)Nc@seZdZUeeed<dS)z-TestCase.test_class_var_no_default..Cr'N)rrrrr)r*rrrrrs rr'rrrr_rrrtest_class_var_no_defaultsz"TestCase.test_class_var_no_defaultcCsP|td0tGddd}|d|jWdn1sB0YdS)Ncannot have a default factoryc@s$eZdZUeedZeeed<dS)z2TestCase.test_class_var_default_factory..Cr&r'Nrrrr2r)r'rr*rrrrrs rr'r3rGrrrr_rrrtest_class_var_default_factorys z'TestCase.test_class_var_default_factorycCsDtGddd}||jdtGddd}||jddS)Nc@seZdZUdZeeed<dS)/TestCase.test_class_var_with_default..Cr]r'N)rrrr'rr)r*rrrrrs rr]c@s$eZdZUeddZeeed<dS)rXr]rr'N)rrrr2r'rr)r*rrrrrs r,r_rrrtest_class_var_with_default s z$TestCase.test_class_var_with_defaultcCstddGddd}|d}|t|dd|tt|d|t|jd||jd||jd ||jd |jd 7_||jd |d }||j |j fd||jd ||jd ||jd dS)NTrIc@sReZdZUeed<dZeed<dZeeed<dZeeed<dZ eeed <d S) z)TestCase.test_class_var_frozen..Cr'r]rArIrbrJrKrLrN) rrrr)r*rArbrrKrrrrrrs  rrez4TestCase.test_class_var_frozen..C(x=5, y=10)rrIrJrLr.rOrrP) rrr8rr r*rbrKrr'rAryrrrtest_class_var_frozens zTestCase.test_class_var_frozencCs$tGddd}|d|jdS)Nc@seZdZUeeed<dS)z,TestCase.test_init_var_no_default..Cr'N)rrrInitVarr)r*rrrrr6s rr'rRr_rrrtest_init_var_no_default4sz!TestCase.test_init_var_no_defaultcCsP|td0tGddd}|d|jWdn1sB0YdS)NrTc@s$eZdZUeedZeeed<dS)z1TestCase.test_init_var_default_factory..Cr&r'N)rrrr2r)r'r[r*rrrrrAs rr'rVr_rrrtest_init_var_default_factory<s z&TestCase.test_init_var_default_factorycCsDtGddd}||jdtGddd}||jddS)Nc@seZdZUdZeeed<dS).TestCase.test_init_var_with_default..Cr]r'N)rrrr'r[r)r*rrrrrIs rr]c@s$eZdZUeddZeeed<dS)r^r]rr'N)rrrr2r'r[r)r*rrrrrNs r,r_rrrtest_init_var_with_defaultGs z#TestCase.test_init_var_with_defaultcCs.tGddd}|dd}||jddS)Nc@s2eZdZUdZeed<dZeeed<ddZdS)z!TestCase.test_init_var..CNr' init_paramcSs|jdur|d|_dSr5r>)r"r`rrrr1Ys z/TestCase.test_init_var..C.__post_init__) rrrr'r)r*r`r[r1rrrrrTs  rr])r`rr,ryrrr test_init_varSs zTestCase.test_init_varcCsB|ttjt|tttd|ttttddS)Ndataclasses.InitVar[int]z%dataclasses.InitVar[typing.List[int]])rr[r)rr8rrNrrrtest_init_var_preserve_type`s z$TestCase.test_init_var_preserve_typecCsltGddd}|dd}|t|dditGddd|}|ddd d }|t|d d d dS)Nc@s"eZdZUeed<eeed<dS)z0TestCase.test_init_var_inheritance..Baser' init_baseN)rrrr)r*r[rrrrrals rarr]r'c@s*eZdZUeed<eeed<ddZdS)z-TestCase.test_init_var_inheritance..CrA init_derivedcSs|j||_|j||_dSr[r'rA)r"rdrerrrr1{s z;TestCase.test_init_var_inheritance..C.__post_init__Nrrrr)r*r[r1rrrrrvs  r 23erf)rrr)r"rarrrsrrrtest_init_var_inheritancehs z"TestCase.test_init_var_inheritancecstGddd}|d}|d}||jd||jg|||||j|j|t|ddgddgfgtGfddd}|d}|d}||jd||jg|||||j|j|t|ddgddgftGddd}|t|d||jgtd d Gd dd}|t|gf|t|td tGd dd}|t|gftGddd}|||dgdS)Nc@s(eZdZUeed<eedZeed<dS)(TestCase.test_default_factory..Cr'r&rAN)rrrr)r*r2rrArrrrrs rrCrer.cs0eZdZUeed<efdddZeed<dS)rnr'csSr[rrrrrrrz1TestCase.test_default_factory..C.r&rAN)rrrr)r*r2rArrrrrrs c@s"eZdZUeeddZeed<dS)rnF)r1r8r'Nrrrr2rr'r*rrrrrs z*TestCase.test_default_factory..C()TrYc@s"eZdZUeeddZeed<dS)rnF)r1r^r'Nrorrrrrs rc@s"eZdZUeeddZeed<dS)rnFr1r7r'Nrorrrrrs c@s"eZdZUeeddZeed<dS)rnF)r1rr'Nrorrrrrs ) rrr'rA assertIsNotastuplerr8r^)r"rZc0c1rrrtest_default_factorysB  zTestCase.test_default_factorycsLttGfddd}|j|jd|j|jddS)Ncs"eZdZUeddZeed<dS)z5TestCase.test_default_factory_with_no_init..CFrpr'N)rrrr2r'rr*rfactoryrrrs rr.rrrr'r call_countr_rrur!test_default_factory_with_no_initsz*TestCase.test_default_factory_with_no_initcslttGfddd}|j|jd||djd|jd|j|jddS)Ncs eZdZUedZeed<dS)zBTestCase.test_default_factory_not_called_if_value_given..Cr&r'Nrrrurrrs rr.r]rrwr_rrur.test_default_factory_not_called_if_value_givensz7TestCase.test_default_factory_not_called_if_value_givencCs~tGddd}tGddd|}||ji||ji||jdtGddd|}||jidS)Nc@s eZdZUeedZeed<dS)z2TestCase.test_default_factory_derived..Foor&r'N)rrrr2rr'r*rrrrFoos r{c@seZdZUdZeed<dS)z2TestCase.test_default_factory_derived..Barr.rANrrrrAr)r*rrrrBars r}r.c@s eZdZdS)z2TestCase.test_default_factory_derived..BazNrrrrrBazsr~)rrr'rA)r"r{r}r~rrrtest_default_factory_derivedsz%TestCase.test_default_factory_derivedcCstGddd}Gddd|}tGddd|}|dd}||j|jfd |td |jWdn1s|0YGd d d |}|d d}||j|jfddS)Nc@seZdZUeed<dS)z3TestCase.test_intermediate_non_dataclass..Ar'Nr(rrrrAs rc@seZdZUeed<dS)z3TestCase.test_intermediate_non_dataclass..BrANr(rrrrrFs rFc@seZdZUeed<dS)z3TestCase.test_intermediate_non_dataclass..CrbNr(rrrrrs rr.rC)r.rCzobject has no attributec@seZdZUeed<dS)z3TestCase.test_intermediate_non_dataclass..DrNr(rrrrrs rrre)rre)rrr'rbr3AttributeErrorrA)r"rrFrrsrrrrrtest_intermediate_non_dataclasss $ z(TestCase.test_intermediate_non_dataclasscCsB|td"tGddd}Wdn1s40YdS)NrTc@s$eZdZUeedZeeed<dS)z1TestCase.test_classvar_default_factory..Cr&r'NrUrrrrrs rr3rGrr_rrrtest_classvar_default_factory s z&TestCase.test_classvar_default_factorycsGddd}|td|tt|t||t|tGdddtGfddd}d}||d }|t|t||t|j|t|j|t|jdS) Nc@s eZdZdS)z0TestCase.test_is_dataclass..NotDataClassNrrrrr NotDataClasssrrc@seZdZUeed<dS)z%TestCase.test_is_dataclass..Cr'Nr(rrrrrs rcseZdZUed<eed<dS)z%TestCase.test_is_dataclass..DreNrrrr*r)rrrrrs rr]r)r is_dataclassr)rrr'rr)r"rrrsrrrrtest_is_dataclasss  zTestCase.test_is_dataclassc Cs*Gddd}|t||}Gddd}|}g|_||fD]}|j|d|t||tdt|Wdn1s0Y|tdt|Wdn1s0Y|tdt|ddWdn1s0YWdqD1s0YqDdS) Nc@seZdZddZdS)zATestCase.test_is_dataclass_when_getattr_always_returns..AcSsdSNrr)r"keyrrr __getattr__0szMTestCase.test_is_dataclass_when_getattr_always_returns..A.__getattr__N)rrrrrrrrr/src@s eZdZdS)zATestCase.test_is_dataclass_when_getattr_always_returns..BNrrrrrrF6srF)objz'should be called on dataclass instancesrr>) rrZ__dataclass_fields__rr3rGasdictrrreplace)r"rrrFrrrrr-test_is_dataclass_when_getattr_always_returns-s &&z6TestCase.test_is_dataclass_when_getattr_always_returnscCs0tGddd}|t|t|dddS)Nc@seZdZUeed<eed<dS)z:TestCase.test_helper_fields_with_class_instance..Cr'rAN)rrrr)r*rrrrrrJs rrgrr_rrr&test_helper_fields_with_class_instanceGsz/TestCase.test_helper_fields_with_class_instancecCs|tdtdWdn1s*0YGddd}|tdt|Wdn1sl0Y|tdt|Wdn1s0YdS)Nzdataclass type or instancerc@s eZdZdS)z0TestCase.test_helper_fields_exception..CNrrrrrrWrr)r3rGr r_rrrtest_helper_fields_exceptionQs&&z%TestCase.test_helper_fields_exceptioncCstGddd}|dd}|t|ddd|t|t||t|t|d|_|t|ddd|tt|tdS)Nc@seZdZUeed<eed<dS)z&TestCase.test_helper_asdict..Cr'rANr(rrrrr_s rr.rrfr+)rrrrqr'rrrryrrrtest_helper_asdict]s zTestCase.test_helper_asdictcCs~tGddd}|tdt|Wdn1s<0Y|tdttWdn1sp0YdS)Nc@seZdZUeed<eed<dS)z8TestCase.test_helper_asdict_raises_on_classes..Cr'rANr(rrrrrns rdataclass instance)rr3rGrr)r_rrr$test_helper_asdict_raises_on_classesls &z-TestCase.test_helper_asdict_raises_on_classescCsxtGddd}g}|d|}t|}||d|||d||d}t|}|dd||jgdS)Nc@s,eZdZUeed<eedZeeed<dS)z2TestCase.test_helper_asdict_copy_values..Cr'r&rAN rrrr)r*r2rrArrrrrrxs rr.rA)rrrrqappendrA)r"rinitialrsrrrrtest_helper_asdict_copy_valuesws z'TestCase.test_helper_asdict_copy_valuescstGdddtGfddd}|ddd}t|}||ddddd |t|t|d |j_|t|ddd dd dS) Nc@seZdZUeed<eed<dS)z2TestCase.test_helper_asdict_nested..UserIdtokengroupNr(rrrrUserIds rcseZdZUeed<ed<dS)z0TestCase.test_helper_asdict_nested..Userr:r9NrirrrrUsers rJoe{r.)rrr:r9r)rrrrqr9r)r"rurrrrtest_helper_asdict_nesteds z"TestCase.test_helper_asdict_nestedc s tGdddtGfddd}tGfddd}tGfddd}d d }d d }|d ||g}|d ||f}|d ||d}|t|d d d dd d dgd|t|d d d dd d dfd|t|d d d dd d ddddS)Nc@seZdZUeed<eed<dS)z.Userr:r9Nrrrrjr*r)rrrrrs rcs"eZdZUeed<eed<dS)zATestCase.test_helper_asdict_builtin_containers..GroupListr9usersNrrrr)r*rrrrr GroupLists rcs&eZdZUeed<edfed<dS)zBTestCase.test_helper_asdict_builtin_containers..GroupTupler9.rNrrrr)r*rrrrr GroupTuples rcs&eZdZUeed<eefed<dS)zATestCase.test_helper_asdict_builtin_containers..GroupDictr9rNrrrr)r*r rjrrrr GroupDicts rAlicer.Bobrrrusecondr)r9rrrr r"rrrrrglgtgdrrr%test_helper_asdict_builtin_containerss,    z.TestCase.test_helper_asdict_builtin_containerscsxtGdddtGfddd}|t|dgdddgii|t|ddiddddiiidS) Nc@seZdZUeed<dS)zDTestCase.test_helper_asdict_builtin_object_containers..ChildrNrrrrwr*rrrrChilds rcseZdZUed<dS)zETestCase.test_helper_asdict_builtin_object_containers..ParentchildNrrrrrParents rr.rrrrr"rrrr,test_helper_asdict_builtin_object_containerss $z5TestCase.test_helper_asdict_builtin_object_containerscCstGddd}|dd}t|td}||tddg||t|tdd|_t|td}||td dg|t|tdS) Nc@seZdZUeed<eed<dS)z.TestCase.test_helper_asdict_factory..Cr'rANr(rrrrrs rr.rZ dict_factory)r'r.)rArr+)r'r+)rrrrrqr'rrr"rrsrrrrtest_helper_asdict_factorys   z#TestCase.test_helper_asdict_factoryc stddtGfddd}|dd|ddd d d }t|}||ddddd d d d d t|td }||ddddd d d d d |t|t|t|ddtdS)NTa b ccseZdZUeed<ed<dS)z1TestCase.test_helper_asdict_namedtuple..Cr'rANrirrrrrs routerr.innerrh rrfrrA)rrrrrrrrrrrtest_helper_asdict_namedtuples0      z&TestCase.test_helper_asdict_namedtuplecCsNtGddd}tdd}||ddi}|t|d|dddiidS) Nc@seZdZUeed<dS)z5TestCase.test_helper_asdict_namedtuple_key..CrN)rrrrr*rrrrrs rrrzan arrr)rrrr)r"rrrsrrr!test_helper_asdict_namedtuple_keys  z*TestCase.test_helper_asdict_namedtuple_keycsGdddtddtGfddd}d}||}t|}||ddd i||d|||dddS) Nc@seZdZddZdS)z9TestCase.test_helper_asdict_namedtuple_derived..TcSs|jSr[rrNrrrmy_asz>TestCase.test_helper_asdict_namedtuple_derived..T.my_aN)rrrrrrrrrsrZTbasercseZdZUed<dS)z9TestCase.test_helper_asdict_namedtuple_derived..CrNrrrrrrs rr rr)rrrrrqr)r"rrrsrrrr%test_helper_asdict_namedtuple_derivedsz.TestCase.test_helper_asdict_namedtuple_derivedcCstGddd}|d}|t|d|t|t||t|t|d|_|t|d|tt|tdS)Nc@s"eZdZUeed<dZeed<dS)z'TestCase.test_helper_astuple..Cr'rrANrBrrrrrs rr.)r.rr+)r.r+)rrrrrqrArrrryrrrtest_helper_astupleszTestCase.test_helper_astuplecCs~tGddd}|tdt|Wdn1s<0Y|tdttWdn1sp0YdS)Nc@seZdZUeed<eed<dS)z9TestCase.test_helper_astuple_raises_on_classes..Cr'rANr(rrrrrs rr)rr3rGrrr)r_rrr%test_helper_astuple_raises_on_classess &z.TestCase.test_helper_astuple_raises_on_classescCsxtGddd}g}|d|}t|}||d|||d||d}t|}|dd||jgdS)Nc@s,eZdZUeed<eedZeeed<dS)z3TestCase.test_helper_astuple_copy_values..Cr'r&rANrrrrrr)s rr.)rrrrrqrrA)r"rrrsrrrrtest_helper_astuple_copy_values(s z(TestCase.test_helper_astuple_copy_valuescs|tGdddtGfddd}|ddd}t|}||d|t|t|d |j_|t|d dS) Nc@seZdZUeed<eed<dS)z3TestCase.test_helper_astuple_nested..UserIdrrNr(rrrrr8s rcseZdZUeed<ed<dS)z1TestCase.test_helper_astuple_nested..Userr:r9Nrirrrrr<s rrrr.)r)rr.r)r)rr)rrrrrqr9r)r"rrrrrrtest_helper_astuple_nested7s z#TestCase.test_helper_astuple_nestedc stGdddtGfddd}tGfddd}tGfddd}d d }d d }|d ||g}|d ||f}|d ||d}|t|d ddgf|t|d|t|d dddfdS)Nc@seZdZUeed<eed<dS)z=TestCase.test_helper_astuple_builtin_containers..Userr:r9NrrrrrrHs rcs"eZdZUeed<eed<dS)zBTestCase.test_helper_astuple_builtin_containers..GroupListr9rNrrrrrrLs rcs&eZdZUeed<edfed<dS)zCTestCase.test_helper_astuple_builtin_containers..GroupTupler9.rNrrrrrrPs rcs&eZdZUeed<eefed<dS)zBTestCase.test_helper_astuple_builtin_containers..GroupDictr9rNrrrrrrTs rrr.rrrrrr.rr)r)rrrrrrrrrr&test_helper_astuple_builtin_containersGs   z/TestCase.test_helper_astuple_builtin_containerscsptGdddtGfddd}|t|dgdgff|t|ddiddiffdS)Nc@seZdZUeed<dS)zETestCase.test_helper_astuple_builtin_object_containers..ChildrNrrrrrrbs rcseZdZUed<dS)zFTestCase.test_helper_astuple_builtin_object_containers..ParentrNrrrrrrfs rr.rrrrrr-test_helper_astuple_builtin_object_containersas  z6TestCase.test_helper_astuple_builtin_object_containerscstGddd}tddfdd}|dd}t||d }||dd||t||d d |_t||d }||d d|t|dS) Nc@seZdZUeed<eed<dS)z/TestCase.test_helper_astuple_factory..Cr'rANr(rrrrrns rNTzx ycs|Sr[r)rrrrntssz0TestCase.test_helper_astuple_factory..ntr.rZ tuple_factoryr+)rrrrrrqr'rr)r"rrrsrrrrtest_helper_astuple_factoryms     z$TestCase.test_helper_astuple_factoryc stddtGfddd}|dd|ddd d d }t|}||ddd d ft|td }||ddddd d gd gdS)NrrcseZdZUeed<ed<dS)z2TestCase.test_helper_astuple_namedtuple..Cr'rANrirrrrrs rrr.rrhrrr)r)rhrrr)rrrrrr)r"rrsrrrrtest_helper_astuple_namedtuple~s   z'TestCase.test_helper_astuple_namedtuplecCsNdttdi}tdd|}t|}||||t|ddddddS)Nr*rfrrr.r)r)rrrrr"Zcls_dictrZcls1rrrtest_dynamic_class_creations   z$TestCase.test_dynamic_class_creationcCsTttdtddd}tdd|}t|}||||t|dddddS)Nrfrer)r*rArrr.)r)r2rrrrrrrr'test_dynamic_class_creation_using_fields  z0TestCase.test_dynamic_class_creation_using_fieldcstGddd}gfdd}||_|dd}|dd|dd|d gfd |d gfd |d |dddS)Nc@sjeZdZUeed<eZeed<eeddZeed<eedZ eed<eddd Z eed <dZ eed <d S) z&TestCase.test_init_in_order..CrrFrprsr&rrrrrN) rrrr)r*r2rrrsrrrrrrrrs rcs||fdSr[)rr"r:valueZcallsrrsetattrsz,TestCase.test_init_in_order..setattrrr.)rr)rr.rsrrrC)rr)rrr)r __setattr__rr)r"rrrsrrrtest_init_in_orders   zTestCase.test_init_in_ordercCstGddd}|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||jddS) Nc@s\eZdZUeed<eeddZeed<eedZeed<edddZ eed <d Z eed <d S) z'TestCase.test_items_in_dicts..CrFrprr&rsrrrrrN) rrrr)r*r2rrrsrrrrrrrs rrrrrsrrr) rrrrrrrrrrsryrrrtest_items_in_dictss&zTestCase.test_items_in_dictscCs*tGddd}||djddS)Nc@s"eZdZUeed<eddZdS)z:TestCase.test_alternate_classmethod_constructor..Cr'cSs d}||S)Nrr)rfilenameZ value_in_filerrr from_fileszDTestCase.test_alternate_classmethod_constructor..C.from_fileN)rrrr)r*rGrrrrrrs rrr)rrrr'r_rrr&test_alternate_classmethod_constructors z/TestCase.test_alternate_classmethod_constructorcCstGddd}|t|dj|tt|djd|td"dt|djd<Wdn1st0YdS)Nc@seZdZUeed<dS)z/TestCase.test_field_metadata_default..Cr%Nr(rrrrrs rr does not support item assignmentrCtest)rrr metadatarrr3rGr_rrrtest_field_metadata_defaultsz$TestCase.test_field_metadata_defaultcsF|t"tGddd}Wdn1s20YitGfddd}|t|dj|tt|djddd<|tt|djd|t|djdd|td"dt|djd <Wdn1s0Yd d d d tGfddd}|tt|djd|t|djd d |t|djdd |t|djdd dd<|tt|djd|t|djdd|t "t|djdWdn1s0Y|td"dt|djd <Wdn1s80YdS)Nc@s eZdZUeddZeed<dS)/TestCase.test_field_metadata_mapping..Crrr%Nrrrr2r%r)r*rrrrrs rcs eZdZUedZeed<dSrrr%Nrrrrrrs rr.rkrrCrr]Z42Zthree)rr,rCcs eZdZUedZeed<dSrrrrrrrs r,rZbaz) rrGrrr rrrr3KeyErrorr_rrrtest_field_metadata_mappings> .0  2z$TestCase.test_field_metadata_mappingcsGdddtGfddd}|tt|djd|t|djdd|t"t|djd Wdn1s0Y|t|djd d dS) Nc@s$eZdZddZddZddZdS)zDTestCase.test_field_metadata_custom_mapping..SimpleNameSpacec[s|j|dSr[)rupdate)r"kwrrrrn'szMTestCase.test_field_metadata_custom_mapping..SimpleNameSpace.__init__cSs|dkr dSt||S)Nxyzzyplugh)r)r"itemrrr __getitem__*szPTestCase.test_field_metadata_custom_mapping..SimpleNameSpace.__getitem__cSs |jSr[)r__len__rNrrrr/szLTestCase.test_field_metadata_custom_mapping..SimpleNameSpace.__len__N)rrrrnrrrrrrSimpleNameSpace&srcs&eZdZUedddZeed<dS)z6TestCase.test_field_metadata_custom_mapping..Cr]rrr%Nrrrrrr2s rrr.rr]rrr)rrrr rrrr_rrr"test_field_metadata_custom_mapping$s  0z+TestCase.test_field_metadata_custom_mappingcsXtdtGfdddt}|d}||jd||jdt|t}dS)Nrcs"eZdZUed<dZeed<dS)z5TestCase.test_generic_dataclasses..LabeledBoxcontent labelN)rrrr*rrjrrrr LabeledBox@s rr+r)r rr rrrrr))r"rZboxAliasrrrtest_generic_dataclasses=sz!TestCase.test_generic_dataclassescstdtdtGfdddtf}tGddd|tf}|t}|ddd }|t|d Gd d d |tf}|t}|d d}||ddS)NSrcseZdZUed<ed<dS)z-TestCase.test_generic_extending..Baser'rANrrrrrrraPs rac@seZdZUeed<dS)z4TestCase.test_generic_extending..DataDerivedZ new_fieldNrirrrr DataDerivedUs rrtest1test2)rrr c@seZdZddZdS)z7TestCase.test_generic_extending..NonDataDerivedcSs|jSr[rArNrrr new_method]szBTestCase.test_generic_extending..NonDataDerived.new_methodN)rrrr rrrrNonDataDerived\sr r]?) r rr r)rjrrrrr )r"rarrrsr rrrtest_generic_extendingLs   zTestCase.test_generic_extendingcstdtGfdddt}tddfdtdfg|ttfddid }||td d jd||td d d jd ||td d d j d|}||td d j d ||j ||tt fdS) NrcseZdZUed<dS)z-TestCase.test_generic_dynamic..Parentr'Nrrrrrrfs rrrArbrTr+)bases namespacer.rrC) r rr rr r)rrbrrTr'__mro__rw)r"rrrrrrtest_generic_dynamiccszTestCase.test_generic_dynamicc Cs8tGdddatGdddatGdddatd}d|_tdtddtd|tdtdgd g}|D]}ttjdD]}|j||d t t ||}| |j |j | |j|j| ||d |_ t t ||}| |j |j | |j|jWdq1s&0YqqtdS) Nc@s"eZdZUeed<dZeed<dS)Pr'rrANrBrrrrrvs rc@s*eZdZUeed<edddZeed<dS)Qr'rFrrANrrrr)r*r2rArrrrrzs rc@s,eZdZUeed<eedZeeed<dS)Rr'r&rANrrrrrr~s rr.r)rrCr)sampleprotor+)rrrrrArangepickleHIGHEST_PROTOCOLrloadsdumpsrr'rq)r"qZsamplesrrZ new_sampleZanother_new_samplerrrtest_dataclassses_pickleablets(, z%TestCase.test_dataclassses_pickleableN)`rrrr$r&r-r6r<r?rHr`rgrvrzr{rrrrrrrrrrrrrrrrrrrr rr r%r'r(r.r8r@rFrHrQrSrWrYrZr\r]r_rarcrmrtryrzrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrs ,5!6(  !$-F/     9    !     +rc@s$eZdZddZddZddZdS)TestFieldNoAnnotationcCsB|td"tGddd}Wdn1s40YdS)N)'f' is a field but has no type annotationc@seZdZeZdS)z>TestFieldNoAnnotation.test_field_without_annotation..CNrrrr2rrrrrrsrrr_rrrtest_field_without_annotations z3TestFieldNoAnnotation.test_field_without_annotationcCsVtGddd}|td$tGddd|}Wdn1sH0YdS)Nc@seZdZUeed<dS)zUTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base..BrNr(rrrrrFs rFr!c@seZdZeZdS)zUTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base..CNr"rrrrrsrrr3rGr?rrr4test_field_without_annotation_but_annotation_in_baseszJTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_basecCsRGddd}|td$tGddd|}Wdn1sD0YdS)Nc@seZdZUeed<dS)zcTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclass..BrNr(rrrrrFs rFr!c@seZdZeZdS)zcTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclass..CNr"rrrrrsrrr?rrrBtest_field_without_annotation_but_annotation_in_base_not_dataclasss zXTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclassN)rrrr#r%r&rrrrr s r c@sleZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS) TestDocStringcCs ||dd|dddS)N )rr)r"rrrrrassertDocStrEqualszTestDocString.assertDocStrEqualcCs$tGddd}||jddS)Nc@seZdZUeed<dS)z?TestDocString.test_existing_docstring_not_overridden..Cr'Nr(rrrrrs rz Lorem ipsum)rr__doc__r_rrr&test_existing_docstring_not_overriddensz4TestDocString.test_existing_docstring_not_overriddencCs$tGddd}||jddS)Nc@s eZdZdS)z1TestDocString.test_docstring_no_fields..CNrrrrrrsrzC()rr*r+r_rrrtest_docstring_no_fieldssz&TestDocString.test_docstring_no_fieldscCs$tGddd}||jddS)Nc@seZdZUeed<dS)z1TestDocString.test_docstring_one_field..Cr'Nr(rrrrrs rzC(x:int)r-r_rrrtest_docstring_one_fieldsz&TestDocString.test_docstring_one_fieldcCs$tGddd}||jddS)Nc@seZdZUeed<eed<dS)z2TestDocString.test_docstring_two_fields..Cr'rANr(rrrrrs rzC(x:int, y:int)r-r_rrrtest_docstring_two_fieldssz'TestDocString.test_docstring_two_fieldscCs$tGddd}||jddS)Nc@s&eZdZUeed<eed<eed<dS)z4TestDocString.test_docstring_three_fields..Cr'rArbNrrrr)r*rjrrrrrs rzC(x:int, y:int, z:str)r-r_rrrtest_docstring_three_fieldssz)TestDocString.test_docstring_three_fieldscCs$tGddd}||jddS)Nc@seZdZUdZeed<dS)z>TestDocString.test_docstring_one_field_with_default..CrCr'NrDrrrrrs rz C(x:int=3)r-r_rrr%test_docstring_one_field_with_defaultsz3TestDocString.test_docstring_one_field_with_defaultcCs$tGddd}||jddS)Nc@s&eZdZUdZeeedfed<dS)zCTestDocString.test_docstring_one_field_with_default_none..CNr')rrrr'rr)rr*rrrrrs rzC(x:Optional[int]=None)r-r_rrr*test_docstring_one_field_with_default_nonesz8TestDocString.test_docstring_one_field_with_default_nonecCs$tGddd}||jddS)Nc@seZdZUeeed<dS)z2TestDocString.test_docstring_list_field..Cr'N)rrrrr)r*rrrrrs rzC(x:List[int])r-r_rrrtest_docstring_list_fieldsz'TestDocString.test_docstring_list_fieldcCs$tGddd}||jddS)Nc@s$eZdZUeedZeeed<dS)zGTestDocString.test_docstring_list_field_with_default_factory..Cr&r'N) rrrr2rr'rr)r*rrrrrs rzC(x:List[int]=)r-r_rrr.test_docstring_list_field_with_default_factorysz.Cr'N)rrrrr*rrrrrs rzC(x:collections.deque)r-r_rrrtest_docstring_deque_fieldsz(TestDocString.test_docstring_deque_fieldcCs$tGddd}||jddS)Nc@s eZdZUeedZeed<dS)zHTestDocString.test_docstring_deque_field_with_default_factory..Cr&r'N)rrrr2rr'r*rrrrrs rz C(x:collections.deque=)r-r_rrr/test_docstring_deque_field_with_default_factorysz=TestDocString.test_docstring_deque_field_with_default_factoryN)rrrr*r,r.r/r0r2r3r4r5r6r7r8rrrrr's r'c@s$eZdZddZddZddZdS)TestInitcCsGddd}tGddd|}|d}||jd|dt|tddGd dd|}|}||jd||jd dS) Nc@seZdZddZdS)z&TestInit.test_base_has_init..BcSs d|_dS)NrQrbrNrrrrnsz/TestInit.test_base_has_init..B.__init__NrrrrrrFsrFc@seZdZUdZeed<dS)&TestInit.test_base_has_init..Crr'NrDrrrrrs rr]rbFrc@seZdZUdZeed<dS)r;r]r'NrDrrrrr"s rQ)rrr'rrrb)r"rFrrsrrrtest_base_has_inits zTestInit.test_base_has_initcCsTtddGddd}||jdtddGddd}||jddS)NFrc@seZdZUdZeed<dS) TestInit.test_no_init..Crr%N)rrrr%r)r*rrrrr+s rrc@s"eZdZUdZeed<ddZdS)r=rr%cSs d|_dSNrCr%rNrrrrn2sz)TestInit.test_no_init..C.__init__N)rrrr%r)r*rnrrrrr0s  rC)rrr%r_rrr test_no_init)s   zTestInit.test_no_initcCs|tGddd}||djdtddGddd}||djd td dGd dd}||d jd dS)Nc@seZdZUeed<ddZdS))TestInit.test_overwriting_init..Cr'cSsd||_dSr5r>r"r'rrrrn=s2TestInit.test_overwriting_init..C.__init__Nrrrr)r*rnrrrrr:s rrCr Trc@seZdZUeed<ddZdS)rAr'cSsd||_dSr5r>rBrrrrnDsrCNrDrrrrrAs rFc@seZdZUeed<ddZdS)rAr'cSsd||_dSr5r>rBrrrrnKsrCNrDrrrrrHs rer]r,r_rrrtest_overwriting_init6szTestInit.test_overwriting_initN)rrrr<r@rFrrrrr9s r9c@s$eZdZddZddZddZdS)TestReprcCstGddd}tGddd|}|d}|t|dtGddd|}|t|d tGd dd}|t|d d |t|d dS)Nc@seZdZUeed<dS)zTestRepr.test_repr..Br'Nr(rrrrrFRs rFc@seZdZUdZeed<dS)TestRepr.test_repr..Cr]rANr|rrrrrVs rrz(TestRepr.test_repr..C(x=4, y=10)c@seZdZUdZeed<dS)zTestRepr.test_repr..Drr'NrDrrrrr]s rz)TestRepr.test_repr..D(x=20, y=10)c@s0eZdZeGdddZeGdddZdS)rHc@seZdZUeed<dS)zTestRepr.test_repr..C.Dr%Nr(rrrrrds rc@s eZdZdS)zTestRepr.test_repr..C.ENrrrrrrgsrN)rrrrrrrrrrrbsrz$TestRepr.test_repr..C.D(i=0)z!TestRepr.test_repr..C.E())rrr8rr)r"rFrr#rrrr test_reprQszTestRepr.test_reprcCsbtddGddd}|tdt|dtddGddd}|t|dddS) NFrc@seZdZUeed<dS) TestRepr.test_no_repr..Cr'Nr(rrrrros rz+.TestRepr.test_no_repr..C object atrCc@seZdZUeed<ddZdS)rJr'cSsdS)NC-classrrNrrr__repr__ysz)TestRepr.test_no_repr..C.__repr__Nrrrr)r*rLrrrrrvs rK)rrrr8rr_rrr test_no_reprms  zTestRepr.test_no_reprcCstGddd}|t|ddtddGddd}|t|ddtddGd dd}|t|dddS) Nc@seZdZUeed<ddZdS))TestRepr.test_overwriting_repr..Cr'cSsdSNr'rrNrrrrLs2TestRepr.test_overwriting_repr..C.__repr__NrMrrrrrs rrr'Trc@seZdZUeed<ddZdS)rOr'cSsdSrPrrNrrrrLsrQNrMrrrrrs Fc@seZdZUeed<ddZdS)rOr'cSsdSrPrrNrrrrLsrQNrMrrrrrs rfr_rrrtest_overwriting_repr}szTestRepr.test_overwriting_reprN)rrrrIrNrRrrrrrGPsrGc@seZdZddZddZdS)TestEqcCsltddGddd}||d|d|d}|||tddGddd}||dddS) NFrc@seZdZUeed<dS)TestEq.test_no_eq..Cr'Nr(rrrrrs rrrCc@seZdZUeed<ddZdS)rUr'cSs|dkSr4rrSrrrrUsz#TestEq.test_no_eq..C.__eq__NrWrrrrrs r])rrrrryrrr test_no_eqs zTestEq.test_no_eqcCstGddd}||dd||ddtddGddd}||dd||ddtd dGd dd}||dd ||dddS) Nc@seZdZUeed<ddZdS)%TestEq.test_overwriting_eq..Cr'cSs|dkSr>rrSrrrrUs,TestEq.test_overwriting_eq..C.__eq__NrWrrrrrs rr.rCTrTc@seZdZUeed<ddZdS)rWr'cSs|dkSr*rrSrrrrUsrXNrWrrrrrs rFc@seZdZUeed<ddZdS)rWr'cSs|dkSr+rrSrrrrUsrXNrWrrrrrs rerr_rrrtest_overwriting_eqszTestEq.test_overwriting_eqN)rrrrVrYrrrrrSsrSc@s$eZdZddZddZddZdS) TestOrderingcCsZttGddd}||dd||dd||dd||dddS)Nc@seZdZUeed<ddZdS)z5TestOrdering.test_functools_total_ordering..Cr'cSs |j|kSr[r>rSrrrrsz.C.__lt__Nrrrr)r*rrrrrrs rrr.)rrrrrrr_rrrtest_functools_total_orderingsz*TestOrdering.test_functools_total_orderingcCstddGddd}|d|j|d|j|d|j|d|jtddGd dd}|d|j|d|j|d|jdS) NFrc@seZdZUeed<dS)%TestOrdering.test_no_order..Cr'Nr(rrrrrs rrrrrc@seZdZUeed<ddZdS)r^r'cSsdSrRrrSrrrrsz,TestOrdering.test_no_order..C.__lt__Nr[rrrrrs rRr_rrr test_no_orderszTestOrdering.test_no_ordercCs|td(tddGddd}Wdn1s:0Y|td(tddGddd}Wdn1s~0Y|td(tddGd dd}Wdn1s0Y|td (tddGd dd}Wdn1s0YdS) NzACannot overwrite attribute __lt__.*using functools.total_orderingTrc@seZdZUeed<ddZdS).TestOrdering.test_overwriting_order..Cr'cSsdSr[rrNrrrrsz5TestOrdering.test_overwriting_order..C.__lt__Nr[rrrrrs rzACannot overwrite attribute __le__.*using functools.total_orderingc@seZdZUeed<ddZdS)r`r'cSsdSr[rrNrrrrsz5TestOrdering.test_overwriting_order..C.__le__N)rrrr)r*rrrrrrs zACannot overwrite attribute __gt__.*using functools.total_orderingc@seZdZUeed<ddZdS)r`r'cSsdSr[rrNrrrr sz5TestOrdering.test_overwriting_order..C.__gt__N)rrrr)r*rrrrrr s zACannot overwrite attribute __ge__.*using functools.total_orderingc@seZdZUeed<ddZdS)r`r'cSsdSr[rrNrrrr sz5TestOrdering.test_overwriting_order..C.__ge__N)rrrr)r*rrrrrr s rr_rrrtest_overwriting_orders(...z#TestOrdering.test_overwriting_orderN)rrrr]r_rarrrrrZsrZc@s<eZdZddZddZddZddZd d Zd d Zd S)TestHashcCs6tddGddd}|t|ddtddS)NTrYc@seZdZUeed<eed<dS)z$TestHash.test_unsafe_hash..Cr'rANr1rrrrr s rr.rk)r.rkrrr^r_rrrtest_unsafe_hash szTestHash.test_unsafe_hashc sdd}fdd}tgddD]r\}\}}}}}|||||d||||||d|||||||||d|||||||||d|q"dS) NcSs|dur dS|rdSdS)N)rCrr)rrrrnon_bool s z*TestHash.test_hash_rules..non_boolc sBj||||d|dkr\|r@t|||dGddd}nt|||dGddd}|dkrd|j|jdn|d kr|sd|jn~|d krȈd|j|jdnV|dkrtd ,t|||dGd dd}Wdn1s0YnWdn1s40YdS) N)caserZrrJr)rZrrJc@seZdZddZdS)1TestHash.test_hash_rules..test..CcSsdSrrrNrrrrO* s:TestHash.test_hash_rules..test..C.__hash__Nr\rrrrr( src@s eZdZdS)rgNrrrrrr- srrOr)nonerXc@seZdZddZdS)rgcSsdSrrrNrrrrOH srhNr\rrrrrF s) rrrrZassertIsNotNonerrr3rG)rfrZrrJZ with_hashrrrNrrr# s.      2z&TestHash.test_hash_rules..test))FFFr)r))FFTr)r))FTFrir))FTTrr))TFFrr)TFTrr)TTFrr)TTTrrr.FT)r) r"rerrfrZrrJZres_no_defined_hashZres_defined_hashrrNrtest_hash_rules s 1  zTestHash.test_hash_rulescCstGddd}||d|d||d|dtddGddd}||d|d|t|dt|dtddd Gd dd}||d |d ||d|d|t|dt|ddS) Nc@seZdZUeed<ddZdS) TestHash.test_eq_only..Cr%cSs |j|jkSr[r?rSrrrrUq s'TestHash.test_eq_only..C.__eq__NrWrrrrrn s rr.rTrYc@seZdZUeed<ddZdS)rkr%cSs |j|jkSr[r?rSrrrrU{ srlNrWrrrrrx s r )rZrc@seZdZUeed<ddZdS)rkr%cSs|jdko|j|jkSr>r?rSrrrrU srlNrWrrrrr s rC)rrrrr^r_rrr test_eq_onlyh s zTestHash.test_eq_onlycCs`tddGddd}|t|tdtddGddd}|t|tddS)NTrIc@s eZdZdSz%TestHash.test_0_field_hash..CNrrrrrr srrrYc@s eZdZdSrnrrrrrr srcr_rrrtest_0_field_hash s zTestHash.test_0_field_hashcCstddGddd}|t|dtd|t|dtdtdd Gd dd}|t|dtd|t|dtddS) NTrIc@seZdZUeed<dSz%TestHash.test_1_field_hash..Cr'Nr(rrrrr s rr)rr+r+rYc@seZdZUeed<dSrpr(rrrrr s rcr_rrrtest_1_field_hash szTestHash.test_1_field_hashcCsLGddd}ddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dfddtdfdd|dffD]~\}}}}|j||||d L|dur|durtGd d d |}nh|dur:t|d Gd d d |}nB|dur`t|dGdd d |}nt||dGdd d |}|dkr|d}|tdt|Wdn1s0Yn`|dkr|t|ddn@|dkr||jtjn$|dkr&|t|dtdnWdq1s<0YqdS)Nc@seZdZddZdS)z(TestHash.test_hash_no_args..BasecSsdSrLrrNrrrrO sz1TestHash.test_hash_no_args..Base.__hash__Nr\rrrrra sraZ unhashableFrwbaseTr)rJrrsrc@seZdZUeed<dSz%TestHash.test_hash_no_args..Cr%Nr(rrrrr s rrTc@seZdZUeed<dSrtr(rrrrr s rIc@seZdZUeed<dSrtr(rrrrr s )rJrc@seZdZUeed<dSrtr(rrrrr s r]unhashable typerMr+rq) rwrrr3rGr^rrrO)r"rarJrrsrrrsrrrtest_hash_no_args sV                      *   zTestHash.test_hash_no_argsN) rrrrdrjrmrorrrvrrrrrb s N#  rbc@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS) TestFrozencCsptddGddd}|d}||jd|td|_Wdn1sT0Y||jddS)NTrIc@seZdZUeed<dS)z!TestFrozen.test_frozen..Cr%Nr(rrrrr s rr]re)rrr%rr7ryrrr test_frozen s $zTestFrozen.test_frozencCstddGddd}tddGddd|}|dd}|td |_Wdn1sb0Y|td |_Wdn1s0Y||jd||jddS) NTrIc@seZdZUeed<dS)z"TestFrozen.test_inherit..Cr%Nr(rrrrr s rc@seZdZUeed<dS)z"TestFrozen.test_inherit..DrNr(rrrrr s rrr]rer )rrr7r%rrr"rrrrrr test_inherit s  $ $zTestFrozen.test_inheritcCs\tddGddd}|td$tGddd|}Wdn1sN0YdS)NTrIc@s eZdZdS)z>TestFrozen.test_inherit_nonfrozen_from_empty_frozen..CNrrrrrr sr5cannot inherit non-frozen dataclass from a frozen onec@seZdZUeed<dS)z>TestFrozen.test_inherit_nonfrozen_from_empty_frozen..DrNr(rrrrr s rr$r$rrr(test_inherit_nonfrozen_from_empty_frozen sz3TestFrozen.test_inherit_nonfrozen_from_empty_frozencCsLtGddd}tGddd|}|d}||jd|||dS)Nc@s eZdZdS)z7TestFrozen.test_inherit_nonfrozen_from_empty..CNrrrrrr src@seZdZUeed<dS)z7TestFrozen.test_inherit_nonfrozen_from_empty..DrNr(rrrrr s rrC)rrrrryrrr!test_inherit_nonfrozen_from_empty sz,TestFrozen.test_inherit_nonfrozen_from_emptyc CsdD]}|j|dtddGddd}|rDGddd|}n|}|td $tGd d d |}Wdn1s~0YWdq1s0YqdS) NTFintermediate_classTrIc@seZdZUeed<dS)z8TestFrozen.test_inherit_nonfrozen_from_frozen..Cr%Nr(rrrrr( s rc@s eZdZdS)z8TestFrozen.test_inherit_nonfrozen_from_frozen..INrrrrrI- rrr{c@s eZdZdS)z8TestFrozen.test_inherit_nonfrozen_from_frozen..DNrrrrrr3 srrrr3rGr"rrrrrrr"test_inherit_nonfrozen_from_frozen% sz-TestFrozen.test_inherit_nonfrozen_from_frozenc CsdD]}|j|dtGddd}|r>Gddd|}n|}|td*tdd Gd d d |}Wdn1s~0YWdq1s0YqdS) Nr~rc@seZdZUeed<dS)z8TestFrozen.test_inherit_frozen_from_nonfrozen..Cr%Nr(rrrrr: s rc@s eZdZdS)z8TestFrozen.test_inherit_frozen_from_nonfrozen..INrrrrrr? rrz5cannot inherit frozen dataclass from a non-frozen oneTrIc@s eZdZdS)z8TestFrozen.test_inherit_frozen_from_nonfrozen..DNrrrrrrE srrrrrr"test_inherit_frozen_from_nonfrozen7 sz-TestFrozen.test_inherit_frozen_from_nonfrozenc CsdD]}|j|dRGddd}|r:Gddd|}n|}tddGd d d |}Wdn1sl0Y|d }|td |_Wdq1s0YqdS) Nr~rc@s eZdZdS)z4TestFrozen.test_inherit_from_normal_class..CNrrrrrrL src@s eZdZdS)z4TestFrozen.test_inherit_from_normal_class..INrrrrrrP rrTrIc@seZdZUeed<dS)z4TestFrozen.test_inherit_from_normal_class..Dr%Nr(rrrrrT s rr]re)rrrr7r%)r"rrrrrrrrtest_inherit_from_normal_classI s0 z)TestFrozen.test_inherit_from_normal_classcCstddGddd}Gddd|}|d}||jd||jdd|_|td |_Wdn1sx0Y|td |_Wdn1s0Y||jd||jd||jddS) NTrIc@s"eZdZUeed<dZeed<dS)z4TestFrozen.test_non_frozen_normal_derived..Dr'r]rANrBrrrrr_ s rc@s eZdZdS)z4TestFrozen.test_non_frozen_normal_derived..SNrrrrrrd srrCr]re)rrr'rAcachedrr7)r"rrrNrrrtest_non_frozen_normal_derived\ s $ $z)TestFrozen.test_non_frozen_normal_derivedcCs|td(tddGddd}Wdn1s:0Y|td(tddGddd}Wdn1s~0YtddGd dd}||d jd dS) Nz&Cannot overwrite attribute __setattr__TrIc@seZdZUeed<ddZdS)-TestFrozen.test_overwriting_frozen..Cr'cSsdSr[rrNrrrr| s9TestFrozen.test_overwriting_frozen..C.__setattr__Nrrrr)r*rrrrrry s rz&Cannot overwrite attribute __delattr__c@seZdZUeed<ddZdS)rr'cSsdSr[rrNrrr __delattr__ sz9TestFrozen.test_overwriting_frozen..C.__delattr__N)rrrr)r*rrrrrr s Fc@seZdZUeed<ddZdS)rr'cSs|d|jd<dS)Nrr')rrrrrr srNrrrrrr s r]r)r3rGrrr'r_rrrtest_overwriting_frozenu s..z"TestFrozen.test_overwriting_frozencCs`tddGddd}t|d|tdt|iWdn1sR0YdS)NTrIc@seZdZUeed<dS)z&TestFrozen.test_frozen_hash..Cr'N)rrrrr*rrrrr s rrCru)rr^r3rGr_rrrtest_frozen_hash s  zTestFrozen.test_frozen_hashN) rrrrxrzr|r}rrrrrrrrrrrw s  rwc@seZdZddZddZdS) TestSlotscCstGddd}|td|Wdn1s:0Y|d}||jdd|_||jd|tdd|_Wdn1s0YdS)Nc@seZdZUdZeed<dS)z TestSlots.test_simple..Cr>r'Nrrr __slots__rr*rrrrr s rrr]rez'C' object has no attribute 'y')rr3rGrr'rrAryrrr test_simple s$zTestSlots.test_simplecCsNtGddd}tGddd|}|dd}||j|jfdd|_dS) Nc@seZdZUdZeed<dS)z0TestSlots.test_derived_added_field..Baser>r'Nrrrrrra s rac@seZdZUeed<eed<dS)z3TestSlots.test_derived_added_field..Derivedr'rANr(rrrrDerived s rr.rr r])rrr'rArb)r"rarrrrrtest_derived_added_field s z"TestSlots.test_derived_added_fieldN)rrrrrrrrrr src@s,eZdZddZddZddZddZd S) TestDescriptorscsnGdddtGfddd}||jjdtGfddd}||jjd||jddS)Nc@seZdZddZddZdS)z(TestDescriptors.test_set_name..DcSs|d|_dSrPr:r"ownerr:rrr __set_name__ sz5TestDescriptors.test_set_name..D.__set_name__cSs|dur dS|SNr.r)r"instancerrrr__get__ sz0TestDescriptors.test_set_name..D.__get__N)rrrrrrrrrr srcseZdZUZeed<dS)(TestDescriptors.test_set_name..CrsN)rrrrsr)r*rrrrr s rcxcs$eZdZUeddZeed<dS)rFrrsNrrrr2rsr)r*rrrrr s r.rrrsr:r_rrr test_set_name s zTestDescriptors.test_set_namecs8GdddtGfddd}||jjddS)Nc@seZdZddZdS)z.TestDescriptors.test_non_descriptor..DcSs|d|_dSrPrrrrrr sz;TestDescriptors.test_non_descriptor..D.__set_name__N)rrrrrrrrr srcs$eZdZUeddZeed<dS)z.TestDescriptors.test_non_descriptor..CFrrsNrrrrrr s rrrr_rrrtest_non_descriptor sz#TestDescriptors.test_non_descriptorcsFGddd}|t_tGfddd}|jjddS)Nc@s eZdZdS)z2TestDescriptors.test_lookup_on_instance..DNrrrrrr srcs"eZdZUeddZeed<dS)z2TestDescriptors.test_lookup_on_instance..CFrr%Nrrrrrr s rrrrrrrx)r"rrrrrtest_lookup_on_instance s z'TestDescriptors.test_lookup_on_instancecs@Gdddt_tGfddd}|jjddS)Nc@s eZdZdS)z/TestDescriptors.test_lookup_on_class..DNrrrrrr srcs$eZdZUeddZeed<dS)z/TestDescriptors.test_lookup_on_class..CFrr%Nrrrrrr s rr.rr_rrrtest_lookup_on_class s z$TestDescriptors.test_lookup_on_classN)rrrrrrrrrrrr s rc@s<eZdZddZddZddZddZd d Zd d Zd S)TestStringAnnotationsc sddD]Z|jd:tGfddd}||d|jWdq1sT0YqdS)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+ZtypestrcseZdZUed<dS)z.TestStringAnnotations.test_classvar..Cr'Nrrrrrr( s rr')rrrrr_rrr test_classvar s z#TestStringAnnotations.test_classvarc sbdD]X|jd8tGfddd}||djdWdq1sR0YqdS)N) CVz t.ClassVarzt.ClassVar[int]ztyping..ClassVar[int]ZClassvarz Classvar[int]ztyping.ClassVarx[int]ztypong.ClassVar[int]zdataclasses.ClassVar[int]ztypingxClassVar[str]rcseZdZUed<dS)z3TestStringAnnotations.test_isnt_classvar..Cr'Nrrrrrr@ s rr]rrrr'r_rrrtest_isnt_classvar3 s  z(TestStringAnnotations.test_isnt_classvarc sdD]||jd\tGfddd}|td|djWdn1sX0YWdq1sv0YqdS)N) z InitVar[int]zInitVar [int] InitVar [int]r[z InitVar rbzdataclasses.InitVar[str]z dataclasses.InitVar[str]zdataclasses .InitVar[str]zdataclasses. InitVar[str]zdataclasses.InitVar [str]zdataclasses.InitVar [ str]zdataclasses.InitVar.[int]zdataclasses.InitVar+rcseZdZUed<dS)z-TestStringAnnotations.test_initvar..Cr'Nrrrrrr] s rzobject has no attribute 'x'r.)rrr3rr'r_rrr test_initvarG sz"TestStringAnnotations.test_initvarc sbdD]X|jd8tGfddd}||djdWdq1sR0YqdS)N)IVz dc.InitVarzxdataclasses.xInitVarztyping.xInitVar[int]rcseZdZUed<dS)z2TestStringAnnotations.test_isnt_initvar..Cr'Nrrrrrrm s rr]rr_rrrtest_isnt_initvarf s z'TestStringAnnotations.test_isnt_initvarc CsXddlm}ddlm}ddlm}ddlm}||||fD]}|j|d|jrb|d}n|}||j d| dd d d d }d D]n}|j|dN| t d|dt ||Wdn1s0YWdq1s0Yq|jr$|d|j||jd n|d|jWdq<1sH0YqrNrrrr rz/TestMakeDataclass.test_simple..rr])r]rerh)rr)r2rr'rArryrrrr s zTestMakeDataclass.test_simplecCs6i}tddtfdttddfg|d}||idS)Nrr'rArerr)rr)r2r)r"nsrrrrtest_no_mutate_namespace sz*TestMakeDataclass.test_no_mutate_namespacecCsdGddd}Gddd}tddtfg||fd}|d}|||||||||dS) Nc@s eZdZdS)z*TestMakeDataclass.test_base..Base1NrrrrrBase1 src@s eZdZdS)z*TestMakeDataclass.test_base..Base2NrrrrrBase2 srrr'rr)rr)rr"rrrrsrrr test_base s  zTestMakeDataclass.test_basecCstGddd}Gddd}tddtfg||fd}|td|d }Wdn1sb0Y|d d }|||||||||||j|jfd dS) Nc@seZdZUeed<dS)z4TestMakeDataclass.test_base_dataclass..Base1r'Nr(rrrrr s rc@s eZdZdS)z4TestMakeDataclass.test_base_dataclass..Base2Nrrrrrr srrrArzrequired positionalrr.r ) rrr)r3rGrrr'rArrrrtest_base_dataclass s&    z%TestMakeDataclass.test_base_dataclasscCs`dd}tddtfdttfgd|id}|dd }|t|dd i|tt|d dS) NcSs|j|9_dSr[r>r"rArrr post_init sz2TestMakeDataclass.test_init_var..post_initrr'rAr1rrrCr r.)rr)r[rrrr )r"rrrsrrrra s  zTestMakeDataclass.test_init_varc Cs~tddtfdttdfdtttddfg}|d}|t|ddi|tt|d||jd||j ddS) Nrr'rAr]rbrrr.) rr)rr2rrrr rArbryrrrrQ s z TestMakeDataclass.test_class_varc Cstddtfdttdfdtttddfgdd }|d t||d t||td tdgdd }Wdn1s0YdS)Nrr'rAr]rbrrFrrnrLzunexpected keyword argument)Zxxinit) rr)rr2rrrr3rGr_rrrtest_other_params s z#TestMakeDataclass.test_other_paramscCstdgd}|ddd}|t|dddd||jddddtdddtfd g}|ddd}|t|dddd||jdtdddS) Nrr'rArbr.rrCz typing.Anyr'rArb)rrrr*r)ryrrr test_no_types s    zTestMakeDataclass.test_no_typesc CsdD]j}|j|dJ|tdtdd|gWdn1sF0YWdq1sd0YqtddfD]j}|j|dJ|tdtdd|gWdn1s0YWdq|1s0Yq|dS) N)r)r.rrCr) bad_fieldzInvalid field: rrcSs|Sr[rr>rrrr rzCTestMakeDataclass.test_invalid_type_specification..zhas no len\(\))rr3rGrr)r"rrrrtest_invalid_type_specification sLz1TestMakeDataclass.test_invalid_type_specificationc CsvdD]l}|j|dL|td td|d|gWdn1sH0YWdq1sf0YqdS)N)rabr2zField name duplicatedrrrr3rGrr"r2rrrtest_duplicate_field_names& sz,TestMakeDataclass.test_duplicate_field_namesc CsdD]}|j|d|tdtdd|gWdn1sF0Y|tdtd|gWdn1s~0Y|tdtd|dgWdn1s0YWdq1s0YqdS)N)forasyncawaitasrzmust not be keywordsrrrrrrrtest_keyword_field_names, s,*z*TestMakeDataclass.test_keyword_field_namesc CsdD]}|j|d|tdtdd|gWdn1sF0Y|tdtd|gWdn1s~0Y|tdtd|dgWdn1s0YWdq1s0YqdS)N)()x,yr2@3r)zlittle johnny tablesrzmust be valid identifiersrrrrrrrtest_non_identifier_field_names6 s,*z1TestMakeDataclass.test_non_identifier_field_namescCstdgddS)Nr)_Z_aZa_aZa_)rrNrrrtest_underscore_field_names@ sz-TestMakeDataclass.test_underscore_field_namesc CsVdD]L}|j|d,t|ddg}||j|Wdq1sF0YqdS)N)rrrrr)) classnamerr)rrrr)r"rrrrrtest_funny_class_names_namesE sz.TestMakeDataclass.test_funny_class_names_namesN)rrrrrrrrarQrrrrrrrrrrrrr s      rc@steZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZdS) TestReplacecCsNtddGddd}|dd}t|dd}||jd||jddS) NTrIc@seZdZUeed<eed<dS)zTestReplace.test..Cr'rANr(rrrrrO s rr.rrCr>)rrrr'rAr"rrsrsrrrrN s   zTestReplace.testcCs^tddGddd}|dd}t|dd}||j|j|j|jfd ||j|j|j|jfd |td  t|dd d dWdn1s0Y|td ,t|d dt|dd d dWdn1s0Y|t dd|_Wdn1s0Y|t dt|d dd}Wdn1sP0YdS)NTrIc@sFeZdZUeed<eed<edddZeed<edddZeed<d S) z"TestReplace.test_frozen..Cr'rAFr]rrbrQrN)rrrr)r*r2rbrrrrrrZ s rr.rrCr>)r.rr]rQ)rCrr]rQ init=Falserri)r'rbrr:zcannot assign to field 'x'z3__init__\(\) got an unexpected keyword argument 'a're)r'r) rrrr'rArbrr3r4r7rGrrrrrxY s  . .&zTestReplace.test_frozencCs^tddGddd}|dd}|tdt|dd }Wdn1sP0YdS) NTrIc@seZdZUeed<eed<dS)z.TestReplace.test_invalid_field_name..Cr'rANr(rrrrrz s rr.rz3__init__\(\) got an unexpected keyword argument 'z'rCr:rr3rGrrrrrtest_invalid_field_namey s  z#TestReplace.test_invalid_field_namecCstddGddd}|tdt|ddWdn1sF0Y|tdtdddWdn1s~0YdS) NTrIc@seZdZUeed<eed<dS)z*TestReplace.test_invalid_object..Cr'rANr(rrrrr s rrrCr>rrr_rrrtest_invalid_object s *zTestReplace.test_invalid_objectcCstGddd}|d}d|_t|dd}||j|jfd|tdt|d d d Wdn1sp0Y|tdt|d d Wdn1s0YdS) Nc@s*eZdZUeed<edddZeed<dS)z#TestReplace.test_no_init..Cr'Fr]rrANrrrrrr s rr.rrer>)rer]rrrfr )rrArrr'r3r4rrrrr@ s ,zTestReplace.test_no_initcCstGddd}|d}|d}||j|j||jd|tdt|ddWdn1sn0Yt|d d dS) Nc@s&eZdZUeed<dZeeed<dS)z$TestReplace.test_classvar..Cr'rIrAN)rrrr)r*rArrrrrr s rr.rrIz3__init__\(\) got an unexpected keyword argument 'y'rr rer>)rrrArr3rGrrrrrr s*zTestReplace.test_classvarcCstGddd}|dd}||jd|tdt|ddWdn1sX0Yt|ddd }||jd dS) Nc@s*eZdZUeed<eeed<ddZdS)z0TestReplace.test_initvar_is_specified..Cr'rAcSs|j|9_dSr[r>rrrrr1 sz>TestReplace.test_initvar_is_specified..C.__post_init__Nrgrrrrr s  rr.r]z,InitVar 'y' must be specified with replace()rCr>rerfrc)rrr'r3r4rryrrrtest_initvar_is_specified s *z%TestReplace.test_initvar_is_specifiedcCsxtGddd}|dddd}|t||dd|t|dd |ddd d|t|ddd |dddddS) Nc@s>eZdZUeed<dZeeed<dZeeed<ddZdS)z6TestReplace.test_initvar_with_default_value..Cr'NrAr+rbcSs0|dur|j|7_|dur,|j|7_dSr[r>)r"rArbrrrr1 szDTestReplace.test_initvar_with_default_value..C.__post_init__) rrrr)r*rAr[rbr1rrrrr s rr.r]rrr>rr r+)rArb)rrrryrrrtest_initvar_with_default_value s  z+TestReplace.test_initvar_with_default_valuecCs4tGddd}|d}||_|t|ddS)Nc@seZdZUded<dS)z*TestReplace.test_recursive_repr..CrrNrrrrrr s rz1TestReplace.test_recursive_repr..C(f=...)rrrr8ryrrrtest_recursive_repr s zTestReplace.test_recursive_reprcCs<tGddd}|dd}||_||_|t|ddS)Nc@seZdZUded<ded<dS)z4TestReplace.test_recursive_repr_two_attrs..CrrgNrrrrrr s rzBTestReplace.test_recursive_repr_two_attrs..C(f=..., g=...))rrrrr8ryrrrtest_recursive_repr_two_attrs s  z)TestReplace.test_recursive_repr_two_attrscCsTtGddd}tGddd}|d}|d}||_||_|t|ddS)Nc@seZdZUded<dS)z6TestReplace.test_recursive_repr_indirection..CrrNrrrrrr s rc@seZdZUded<dS)z6TestReplace.test_recursive_repr_indirection..DrrNrrrrrr s rzwTestReplace.test_recursive_repr_indirection..C(f=TestReplace.test_recursive_repr_indirection..D(f=...))r)r"rrrsrrrrtest_recursive_repr_indirection sz+TestReplace.test_recursive_repr_indirectioncCsttGddd}tGddd}tGddd}|d}|d}|d}||_||_||_|t|ddS)Nc@seZdZUded<dS)z:TestReplace.test_recursive_repr_indirection_two..CrrNrrrrrr s rc@seZdZUded<dS)z:TestReplace.test_recursive_repr_indirection_two..DrrNrrrrrr s rc@seZdZUded<dS)z:TestReplace.test_recursive_repr_indirection_two..ErrNrrrrrr s rzTestReplace.test_recursive_repr_indirection_two..C(f=TestReplace.test_recursive_repr_indirection_two..D(f=TestReplace.test_recursive_repr_indirection_two..E(f=...)))r)r"rrrrsrrrrr#test_recursive_repr_indirection_two sz/TestReplace.test_recursive_repr_indirection_twocCs6tGddd}|dd}||_|t|ddS)Nc@seZdZUded<eed<dS)z5TestReplace.test_recursive_repr_misc_attrs..CrrrNrrrrrr s rr.zATestReplace.test_recursive_repr_misc_attrs..C(f=..., g=1)rryrrrtest_recursive_repr_misc_attrs s  z*TestReplace.test_recursive_repr_misc_attrsN)rrrrrxrrr@rrrrrrrrrrrrrM s      r__main__)*Z dataclassesrrlrZunittestZ unittest.mockrtypingrrrrrr r r r r collectionsrrr functoolsr Exceptionrrr r'r9rGrSrZrbrwrrrrrrmainrrrrs` ,   #YBG/L]/*H%f