a zey @s6ddlZddlZGdddejZedkr2edS)Nc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#S)$TestcCs:Gddd}Gddd|}||j||jdS)Ncs eZdZdZfddZZS)z"Test.test_init_subclass..AFcstd|_dSNTsuper__init_subclass__ initializedcls __class__J/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_subclassinit.pyr s z4Test.test_init_subclass..A.__init_subclass____name__ __module__ __qualname__rr __classcell__r r r r Asrc@s eZdZdS)z"Test.test_init_subclass..BNrrrr r r r Bsr) assertFalser assertTrueselfrrr r r test_init_subclasss zTest.test_init_subclasscCs<Gdddt}Gddd|}||j||jdS)Ncs eZdZdZfddZZS)z'Test.test_init_subclass_dict..AFcstd|_dSrrrr r r rs z9Test.test_init_subclass_dict..A.__init_subclass__rr r r r rsrc@s eZdZdS)z'Test.test_init_subclass_dict..BNrr r r r rsr)dictrrrrr r r test_init_subclass_dicts zTest.test_init_subclass_dictcCs:Gddd}Gddd|dd}||jtdddS)Nc@seZdZddZdS)z)Test.test_init_subclass_kwargs..Ac[s ||_dSN)kwargsr rr r r r$sz;Test.test_init_subclass_kwargs..A.__init_subclass__Nrrrrr r r r r#src@s eZdZdS)z)Test.test_init_subclass_kwargs..BNrr r r r r'sr)x) assertEqualrrrr r r test_init_subclass_kwargs"szTest.test_init_subclass_kwargscCsLGddd}|t Gddd|}Wdn1s>0YdS)Nc@seZdZddZdS)z(Test.test_init_subclass_error..AcSstdSr) RuntimeErrorrr r r r.sz:Test.test_init_subclass_error..A.__init_subclass__Nr r r r r r-src@s eZdZdS)z(Test.test_init_subclass_error..BNrr r r r r2sr) assertRaisesr%rr r r test_init_subclass_error,s zTest.test_init_subclass_errorcCsLGddd}|t Gddd|}Wdn1s>0YdS)Nc@seZdZddZdS)z(Test.test_init_subclass_wrong..AcSsdSrr )r Zwhateverr r r r7sz:Test.test_init_subclass_wrong..A.__init_subclass__Nr r r r r r6src@s eZdZdS)z(Test.test_init_subclass_wrong..BNrr r r r r;sr)r& TypeErrorrr r r test_init_subclass_wrong5s zTest.test_init_subclass_wrongcCsNGddd}Gddd|}Gddd|}||j|||j|dS)NcseZdZfddZZS)z5Test.test_init_subclass_skipped..BaseWithInitcstjfi|||_dSrrrr r r r@szGTest.test_init_subclass_skipped..BaseWithInit.__init_subclass__rrrrrr r r r BaseWithInit?sr+c@s eZdZdS)z8Test.test_init_subclass_skipped..BaseWithoutInitNrr r r r BaseWithoutInitDsr,c@s eZdZdS)z*Test.test_init_subclass_skipped..ANrr r r r rGsr)assertIsr)rr+r,rr r r test_init_subclass_skipped>s zTest.test_init_subclass_skippedcCsGddd}Gddd|}Gddd}Gddd|}Gd d d |||d d }||jd d g||jg||jgdS)NcseZdZfddZZS)z-Test.test_init_subclass_diamond..Basecstjfi|g|_dSrrrcallsrr r r rOsz?Test.test_init_subclass_diamond..Base.__init_subclass__r*r r r r BaseNsr1c@s eZdZdS)z-Test.test_init_subclass_diamond..LeftNrr r r r LeftSsr2cseZdZfddZZS)z/Test.test_init_subclass_diamond..Middlecs&tjfi||j|g7_dSrr/)r middlerr r r rWszATest.test_init_subclass_diamond..Middle.__init_subclass__r*r r r r MiddleVsr4cseZdZdfdd ZZS)z.Test.test_init_subclass_diamond..Rightrightcs&tjfi||j|g7_dSrr/)r r5rr r r r\sz@Test.test_init_subclass_diamond..Right.__init_subclass__)r5r*r r r r Right[sr6c@s eZdZdS)z*Test.test_init_subclass_diamond..ANrr r r r r`srr3)r3r5)r#r0)rr1r2r4r6rr r r test_init_subclass_diamondMszTest.test_init_subclass_diamondcsDGdddGfddd}||jjd||jj|dS)Nc@seZdZddZdS)z&Test.test_set_name..DescriptorcSs||_||_dSrownernamerr9r:r r r __set_name__isz3Test.test_set_name..Descriptor.__set_name__Nrrrr<r r r r Descriptorhsr>cseZdZZdS)zTest.test_set_name..ANrrrdr r>r r rmsrr@)r#r@r:r-r9rrr rAr test_set_namegszTest.test_set_namecsHGfdddt}GdddGfddd|d}|ddS) NcseZdZfddZZS)z*Test.test_set_name_metaclass..Metacs6t||||}|jjd|jj|dS)Nr@r)r__new__r#r@r:r-r9)r r:basesnsret)r rr r rDusz2Test.test_set_name_metaclass..Meta.__new__rrrrDrr rr r MetatsrJc@seZdZddZdS)z0Test.test_set_name_metaclass..DescriptorcSs||_||_dSrr8r;r r r r<|sz=Test.test_set_name_metaclass..Descriptor.__set_name__Nr=r r r r r>{sr>cseZdZZdS)z'Test.test_set_name_metaclass..ANr?r rAr r rsr metaclassr)typer#)rrJrr )r>rr test_set_name_metaclasssszTest.test_set_name_metaclasscsGddd|t"}Gfddd}Wdn1s@0Y|j}|t|d|t|d|t|d||jtdS)Nc@seZdZddZdS)z,Test.test_set_name_error..DescriptorcSs dddS)Nrr r;r r r r<sz9Test.test_set_name_error..Descriptor.__set_name__Nr=r r r r r>sr>cseZdZZdS)z0Test.test_set_name_error..NotGoingToWorkNrrrattrr rAr r NotGoingToWorksrR\bNotGoingToWork\b\battr\b\bDescriptor\b)r&r% exception assertRegexstrassertIsInstance __cause__ZeroDivisionErrorrcmrRexcr rAr test_set_name_errors 0zTest.test_set_name_errorcsGddd|t"}Gfddd}Wdn1s@0Y|j}|t|d|t|d|t|d||jtdS)Nc@seZdZddZdS)z,Test.test_set_name_wrong..DescriptorcSsdSrr rIr r r r<sz9Test.test_set_name_wrong..Descriptor.__set_name__Nr=r r r r r>sr>cseZdZZdS)z0Test.test_set_name_wrong..NotGoingToWorkNrPr rAr r rRsrRrSrTrU)r&r%rVrWrXrYrZr(r\r rAr test_set_name_wrongs 0zTest.test_set_name_wrongcs:gGfdddGfddd}|dddS)NcseZdZfddZdS)z0Test.test_set_name_lookup..NonDescriptorcs|dSr)append)rr:resolvedr r __getattr__sz.NonDescriptor.__getattr__N)rrrrdr rbr r NonDescriptorsrecseZdZZdS)z$Test.test_set_name_lookup..ANr?r )rer r rsrr<z*__set_name__ is looked up in instance dict)Z assertNotInrBr )rercr test_set_name_lookups zTest.test_set_name_lookupcsGdddGdddt}Gddd}Gfddd||d }||j|||jd ||j|||jd dS) Nc@seZdZddZdS)z4Test.test_set_name_init_subclass..DescriptorcSs||_||_dSrr8r;r r r r<szATest.test_set_name_init_subclass..Descriptor.__set_name__Nr=r r r r r>sr>cseZdZfddZZS)z.Test.test_set_name_init_subclass..Metacs&t||||}|j|_|j|_|Sr)rrDr9 meta_ownerr:Z meta_name)r r:rErFrr r r rDsz6Test.test_set_name_init_subclass..Meta.__new__rHr r r r rJsrJc@seZdZddZdS)z+Test.test_set_name_init_subclass..AcSs|jj|_|jj|_dSr)r@r9r:rr r r rs z=Test.test_set_name_init_subclass..A.__init_subclass__Nr r r r r rsrcseZdZZdS)z+Test.test_set_name_init_subclass..BNr?r rAr r rsrrKr@)rMr-r9r#r:rg)rrJrrr rAr test_set_name_init_subclasssz Test.test_set_name_init_subclasscs<gGfdddGfddd}|gddS)NcseZdZfddZdS)z5Test.test_set_name_modifying_dict..Descriptorcst||dd|dS)Nr")setattrrar;notifiedr r r<szBTest.test_set_name_modifying_dict..Descriptor.__set_name__Nr=r rjr r r>sr>cs*eZdZZZZZZdS)z,Test.test_set_name_modifying_dict..AN)rrrabcr@er rAr r rs r)rlrmrnr@ro)ZassertCountEqualrBr )r>rkr test_set_name_modifying_dictsz!Test.test_set_name_modifying_dictc Cs,Gdddt}|t$Gddd|dd}Wdn1sD0Y|t(tdtft|ddWdn1s0Ytdtft|ddGdddt}|t$Gddd|dd}Wdn1s0YGd ddt}Gd dd|dd}||j ddS) Nc@s eZdZdS) Test.test_errors..MyMetaNrr r r r MyMetasrrc@s eZdZdSz!Test.test_errors..MyClassNrr r r r MyClasssrtrOrLotherargcseZdZfddZZS)rqcst|||dSr)r__init__rr:rE namespacervr r r rws)Test.test_errors..MyMeta.__init__)rrrrwrr r r r rrsc@s eZdZdSrsrr r r r rtscs(eZdZfddZfddZZS)rqcst||||SrrrD)r r:rEryrvr r r rDsz(Test.test_errors..MyMeta.__new__cst|||||_dSr)rrwrvrxr r r rwsrz)rrrrDrwrr r r r rrs c@s eZdZdSrsrr r r r rts) rMr&r(types new_classobjectr prepare_classr#rvrrrrtr r r test_errorss  2   "   2zTest.test_errorscCsGdddt}|t"Gddd|d}Wdn1sB0YGdddt}Gddd|dd }||jddS) NcseZdZfddZZS)/Test.test_errors_changed_pep487..MyMetacstj||||dS)Nr:rErr{)r r:rEryr r r rDs 7Test.test_errors_changed_pep487..MyMeta.__new__rHr r r r rrsrrc@s eZdZdSz0Test.test_errors_changed_pep487..MyClassNrr r r r rtsrtrKcseZdZfddZZS)rcst||||}||_|Sr)rrDrv)r r:rEryrvrr r r rDsrrHr r r r rrsc@s eZdZdSrrr r r r rt srOru)rMr&r(r#rvrr r r test_errors_changed_pep487s  0zTest.test_errors_changed_pep487cCsftdtfi}||t||jd|t tdtfidWdn1sX0YdS)NZNewClassr)rMr~rYr#rr&r()rtr r r test_types   zTest.test_typeN)rrrrrr$r'r)r.r7rCrNr_r`rfrhrprrrr r r r rs"     #r__main__)r|ZunittestZTestCaserrmainr r r r s