a 4êdg‡Mã@sldZddlZddlZddlZddlmZdd„Zeejejƒ\Z Z Z eejejƒ\Z Z Zedkrhe ¡dS)zUnit tests for abc.py.éN)Ú isabstractcsNG‡fdd„dtjƒ}G‡‡fdd„dtjƒ}G‡fdd„dtjƒ}|||fS)Ncs0eZdZ‡fdd„Z‡fdd„Z‡fdd„ZdS)z#test_factory..TestLegacyAPIcsˆtjdd„ƒ}| |j¡dd„}| t|dƒ¡Gdd„dˆd}| t|¡Gd d „d |ƒ}| |ƒj d ¡| t |j dd ƒ¡dS) NcSsdS©N©©Úselfrrú)/usr/local/lib/python3.9/test/test_abc.pyÚfooszMtest_factory..TestLegacyAPI.test_abstractproperty_basics..foocSsdSrrrrrrÚbarózMtest_factory..TestLegacyAPI.test_abstractproperty_basics..barÚ__isabstractmethod__c@seZdZejdd„ƒZdS)zKtest_factory..TestLegacyAPI.test_abstractproperty_basics..CcSsdS©NérrrrrrszOtest_factory..TestLegacyAPI.test_abstractproperty_basics..C.fooN)Ú__name__Ú __module__Ú __qualname__ÚabcÚabstractpropertyrrrrrÚCsr©Ú metaclasscs eZdZe‡fdd„ƒZ‡ZS)zKtest_factory..TestLegacyAPI.test_abstractproperty_basics..DcstƒjSr©Úsuperrr©Ú __class__rrrszOtest_factory..TestLegacyAPI.test_abstractproperty_basics..D.foo)rrrÚpropertyrÚ __classcell__rrrrÚDsrr F) rrÚ assertTruer Ú assertFalseÚhasattrÚ assertRaisesÚ TypeErrorÚ assertEqualrÚgetattr©rrr rr©Ú abc_ABCMetarrÚtest_abstractproperty_basicss   z@test_factory..TestLegacyAPI.test_abstractproperty_basicscsŒtjdd„ƒ}| |j¡tdd„ƒ}| t|ddƒ¡Gdd„dˆd }| t|¡Gd d „d |ƒ}|  |  ¡d ¡|  |ƒ  ¡d ¡dS) NcSsdSrr©Úclsrrrr$szPtest_factory..TestLegacyAPI.test_abstractclassmethod_basics..foocSsdSrrr(rrrr 'szPtest_factory..TestLegacyAPI.test_abstractclassmethod_basics..barr Fc@seZdZejdd„ƒZdS)zNtest_factory..TestLegacyAPI.test_abstractclassmethod_basics..CcSs|jSr©rr(rrrr,szRtest_factory..TestLegacyAPI.test_abstractclassmethod_basics..C.fooN)rrrrÚabstractclassmethodrrrrrr+srrcs eZdZe‡fdd„ƒZ‡ZS)zNtest_factory..TestLegacyAPI.test_abstractclassmethod_basics..Dcs tƒ ¡Srrr(rrrr0szRtest_factory..TestLegacyAPI.test_abstractclassmethod_basics..D.foo©rrrÚ classmethodrrrrrrr/sr) rr+rr r-rr#r r!r"rr$r%rrÚtest_abstractclassmethod_basics#s    zCtest_factory..TestLegacyAPI.test_abstractclassmethod_basicscsŒtjdd„ƒ}| |j¡tdd„ƒ}| t|ddƒ¡Gdd„dˆd }| t|¡Gd d „d |ƒ}|  |  ¡d ¡|  |ƒ  ¡d ¡dS) NcSsdSrrrrrrr6szQtest_factory..TestLegacyAPI.test_abstractstaticmethod_basics..foocSsdSrrrrrrr 9szQtest_factory..TestLegacyAPI.test_abstractstaticmethod_basics..barr Fc@seZdZejdd„ƒZdS)zOtest_factory..TestLegacyAPI.test_abstractstaticmethod_basics..CcSsdSr rrrrrr>szStest_factory..TestLegacyAPI.test_abstractstaticmethod_basics..C.fooN)rrrrÚabstractstaticmethodrrrrrr=srrc@seZdZedd„ƒZdS)zOtest_factory..TestLegacyAPI.test_abstractstaticmethod_basics..DcSsdS©NérrrrrrBszStest_factory..TestLegacyAPI.test_abstractstaticmethod_basics..D.fooN©rrrÚ staticmethodrrrrrrAsrr1) rr/rr r3rr#r r!r"rr$r%rrÚ test_abstractstaticmethod_basics5s    zDtest_factory..TestLegacyAPI.test_abstractstaticmethod_basicsN)rrrr'r.r4rr%rrÚ TestLegacyAPIs  r5cseZdZdd„Zdd„Z‡fdd„Z‡fdd„Z‡fd d „Z‡fd d „Z‡fd d„Z ‡fdd„Z ‡fdd„Z ‡fdd„Z ‡fdd„Z ‡fdd„Z‡fdd„Z‡‡fdd„Z‡fdd„Z‡fdd „Z‡fd!d"„Z‡fd#d$„Z‡fd%d&„Zd'd(„Z‡fd)d*„Zd+d,„Z‡fd-d.„Zd/S)0ztest_factory..TestABCcSsTGdd„dtjƒ}| t|ƒtj¡| t|¡Gdd„d|ƒ}| | ¡d¡dS)Nc@seZdZeejdd„ƒƒZdS)z8test_factory..TestABC.test_ABC_helper..CcSs|jSrr*r(rrrrMsz.TestABC.test_ABC_helper..C.fooN©rrrr-rÚabstractmethodrrrrrrLsrcs eZdZe‡fdd„ƒZ‡ZS)z8test_factory..TestABC.test_ABC_helper..Dcs tƒ ¡Srrr(rrrrSsz.TestABC.test_ABC_helper..D.foor,rrrrrRsr)rÚABCr"ÚtypeÚABCMetar r!r)rrrrrrÚtest_ABC_helperJs  z-test_factory..TestABC.test_ABC_helpercSs6tjdd„ƒ}| |j¡dd„}| t|dƒ¡dS)NcSsdSrrrrrrrXszEtest_factory..TestABC.test_abstractmethod_basics..foocSsdSrrrrrrr [r zEtest_factory..TestABC.test_abstractmethod_basics..barr )rr7rr rr)rrr rrrÚtest_abstractmethod_basicsWs   z8test_factory..TestABC.test_abstractmethod_basicscs~ttjdd„ƒƒ}| |j¡dd„}| t|ddƒ¡Gdd„dˆd ‰| tˆ¡G‡fd d „d ˆƒ}|  |ƒj d ¡dS) NcSsdSrrrrrrr_szGtest_factory..TestABC.test_abstractproperty_basics..foocSsdSrrrrrrr cr zGtest_factory..TestABC.test_abstractproperty_basics..barr Fc@seZdZeejdd„ƒƒZdS)zEtest_factory..TestABC.test_abstractproperty_basics..CcSsdSr rrrrrrgszItest_factory..TestABC.test_abstractproperty_basics..C.fooN)rrrrrr7rrrrrrfsrrcs$eZdZ”jj‡fdd„ƒZ‡ZS)zEtest_factory..TestABC.test_abstractproperty_basics..DcstƒjSrrrrrrrlszItest_factory..TestABC.test_abstractproperty_basics..D.foo©rrrrÚgetterrr©rrrrksrr ) rrr7rr rr#r r!r"r)rrr rr%r?rr'^s   z:test_factory..TestABC.test_abstractproperty_basicscsttjdd„ƒƒ}| |j¡tdd„ƒ}| t|ddƒ¡Gdd„dˆd }| t|¡Gd d „d |ƒ}|  |  ¡d ¡|  |ƒ  ¡d ¡dS) NcSsdSrrr(rrrrqszJtest_factory..TestABC.test_abstractclassmethod_basics..foocSsdSrrr(rrrr uszJtest_factory..TestABC.test_abstractclassmethod_basics..barr Fc@seZdZeejdd„ƒƒZdS)zHtest_factory..TestABC.test_abstractclassmethod_basics..CcSs|jSrr*r(rrrrzszLtest_factory..TestABC.test_abstractclassmethod_basics..C.fooNr6rrrrrysrrcs eZdZe‡fdd„ƒZ‡ZS)zHtest_factory..TestABC.test_abstractclassmethod_basics..Dcs tƒ ¡Srrr(rrrrszLtest_factory..TestABC.test_abstractclassmethod_basics..D.foor,rrrrr~sr) r-rr7rr rr#r r!r"rr$r%rrr.ps    z=test_factory..TestABC.test_abstractclassmethod_basicscsttjdd„ƒƒ}| |j¡tdd„ƒ}| t|ddƒ¡Gdd„dˆd }| t|¡Gd d „d |ƒ}|  |  ¡d ¡|  |ƒ  ¡d ¡dS) NcSsdSrrrrrrr…szKtest_factory..TestABC.test_abstractstaticmethod_basics..foocSsdSrrrrrrr ‰szKtest_factory..TestABC.test_abstractstaticmethod_basics..barr Fc@seZdZeejdd„ƒƒZdS)zItest_factory..TestABC.test_abstractstaticmethod_basics..CcSsdSr rrrrrrŽszMtest_factory..TestABC.test_abstractstaticmethod_basics..C.fooN)rrrr3rr7rrrrrrsrrc@seZdZedd„ƒZdS)zItest_factory..TestABC.test_abstractstaticmethod_basics..DcSsdSr0rrrrrr“szMtest_factory..TestABC.test_abstractstaticmethod_basics..D.fooNr2rrrrr’srr1) r3rr7rr rr#r r!r"rr$r%rrr4„s    z>test_factory..TestABC.test_abstractstaticmethod_basicscs(Gdd„dˆd}d}| t||¡dS)Nc@seZdZejdd„ƒZdS)zPtest_factory..TestABC.test_object_new_with_one_abstractmethod..CcSsdSrrrrrrÚ method_onešsz[test_factory..TestABC.test_object_new_with_one_abstractmethod..C.method_oneN)rrrrr7r@rrrrr™srrz'class C with abstract method method_one©ÚassertRaisesRegexr!©rrÚmsgr%rrÚ'test_object_new_with_one_abstractmethod˜szEtest_factory..TestABC.test_object_new_with_one_abstractmethodcs(Gdd„dˆd}d}| t||¡dS)Nc@s(eZdZejdd„ƒZejdd„ƒZdS)zRtest_factory..TestABC.test_object_new_with_many_abstractmethods..CcSsdSrrrrrrr@¢sz]test_factory..TestABC.test_object_new_with_many_abstractmethods..C.method_onecSsdSrrrrrrÚ method_two¥sz]test_factory..TestABC.test_object_new_with_many_abstractmethods..C.method_twoN)rrrrr7r@rFrrrrr¡s rrz4class C with abstract methods method_one, method_tworArCr%rrÚ)test_object_new_with_many_abstractmethods szGtest_factory..TestABC.test_object_new_with_many_abstractmethodscs tjtjtjtjfD]ð‰G‡fdd„dˆd}| |jdh¡| t|¡|  t |ƒ¡Gdd„d|ƒ}| |jdh¡| t|¡|  t |ƒ¡Gdd„d|ƒ}| |jt ƒ¡|ƒ|  t |ƒ¡G‡fd d „d |ƒ}| |jd h¡| t|¡|  t |ƒ¡qdS) Ncs eZdZ”dd„ƒZdd„ZdS)zHtest_factory..TestABC.test_abstractmethod_integration..CcSsdSrrrrrrr°szLtest_factory..TestABC.test_abstractmethod_integration..C.foocSsdSrrrrrrr ²r zLtest_factory..TestABC.test_abstractmethod_integration..C.barN)rrrrr r©Z abstractthingrrr¯s rrrc@seZdZdd„ZdS)zHtest_factory..TestABC.test_abstractmethod_integration..DcSsdSrrrrrrr ·r zLtest_factory..TestABC.test_abstractmethod_integration..D.barN©rrrr rrrrr¶src@seZdZdd„ZdS)zHtest_factory..TestABC.test_abstractmethod_integration..EcSsdSrrrrrrr¼r zLtest_factory..TestABC.test_abstractmethod_integration..E.fooN©rrrrrrrrÚE»srKcseZdZ”dd„ƒZdS)zHtest_factory..TestABC.test_abstractmethod_integration..FcSsdSrrrrrrr ÁszLtest_factory..TestABC.test_abstractmethod_integration..F.barNrIrrHrrÚFÀsrLr ) rr7rr+r/r"Ú__abstractmethods__r r!rrÚsetr)rrrrKrLr%rHrÚtest_abstractmethod_integration«s(þ   z=test_factory..TestABC.test_abstractmethod_integrationcs´Gdd„dˆd‰| tˆ¡G‡fdd„dˆƒ‰| tˆ¡G‡fdd„dˆƒ}| |ƒjd¡Gd d „d tƒ‰| t¡$G‡fd d „d ˆƒ}Wdƒn1s¦0YdS) Nc@s2eZdZeejdd„ƒƒZejejdd„ƒƒZdS)zMtest_factory..TestABC.test_descriptors_with_abstractmethod..CcSsdSr rrrrrrÉszQtest_factory..TestABC.test_descriptors_with_abstractmethod..C.foocSsdSrr©rÚvalrrrrÌsN)rrrrrr7rÚsetterrrrrrÈs  rrcs$eZdZ”jj‡fdd„ƒZ‡ZS)zMtest_factory..TestABC.test_descriptors_with_abstractmethod..DcstƒjSrrrrrrrÑszQtest_factory..TestABC.test_descriptors_with_abstractmethod..D.foor=rr?rrrÐsrcseZdZ”jjdd„ƒZdS)zMtest_factory..TestABC.test_descriptors_with_abstractmethod..EcSsdSrrrPrrrrÕszQtest_factory..TestABC.test_descriptors_with_abstractmethod..E.fooN©rrrrrRr©rrrrKÔsrKr c@seZdZdd„ZeZdS)zStest_factory..TestABC.test_descriptors_with_abstractmethod..NotBoolcSs tƒ‚dSr)Ú ValueErrorrrrrÚ__bool__Ûsz\test_factory..TestABC.test_descriptors_with_abstractmethod..NotBool.__bool__N)rrrrVÚ__len__rrrrÚNotBoolÚsrXcs$eZdZdd„Z”ƒe_eeƒZdS)zMtest_factory..TestABC.test_descriptors_with_abstractmethod..FcSsdSrrrrrrr àszQtest_factory..TestABC.test_descriptors_with_abstractmethod..F.barN)rrrr r rrr)rXrrrLßsrL)r r!r"rÚobjectrU)rrKrLr%)rrrXrÚ$test_descriptors_with_abstractmethodÇs   zBtest_factory..TestABC.test_descriptors_with_abstractmethodcszG‡fdd„dƒ‰G‡fdd„dˆd‰| tˆ¡G‡fdd„dˆƒ‰| tˆ¡G‡fdd „d ˆƒ}| |jj¡dS) Ncs:eZdZd dd„Z‡fdd„Z‡fdd„Zedd „ƒZdS) z\test_factory..TestABC.test_customdescriptors_with_abstractmethod..DescriptorNcSs||_||_dSr)Ú_fgetÚ_fset)rÚfgetÚfsetrrrÚ__init__èszetest_factory..TestABC.test_customdescriptors_with_abstractmethod..Descriptor.__init__cs ˆ||jƒSr©r[©rÚcallable©Ú Descriptorrrr>ëszctest_factory..TestABC.test_customdescriptors_with_abstractmethod..Descriptor.gettercs ˆ|j|ƒSrr`rarcrrrRíszctest_factory..TestABC.test_customdescriptors_with_abstractmethod..Descriptor.settercSst|jddƒpt|jddƒS)Nr F)r#r[r\rrrrr ïs ÿzqtest_factory..TestABC.test_customdescriptors_with_abstractmethod..Descriptor.__isabstractmethod__)N)rrrr_r>rRrr rrcrrrdçs    rdcs2eZdZ”ejdd„ƒƒZejejdd„ƒƒZdS)zStest_factory..TestABC.test_customdescriptors_with_abstractmethod..CcSsdSr rrrrrrôszWtest_factory..TestABC.test_customdescriptors_with_abstractmethod..C.foocSsdSrrrPrrrr÷sN)rrrrr7rrRrrcrrrós  rrcs$eZdZ”jj‡fdd„ƒZ‡ZS)zStest_factory..TestABC.test_customdescriptors_with_abstractmethod..DcstƒjSrrrrrrrüszWtest_factory..TestABC.test_customdescriptors_with_abstractmethod..D.foor=rr?rrrûsrcseZdZ”jjdd„ƒZdS)zStest_factory..TestABC.test_customdescriptors_with_abstractmethod..EcSsdSrrrPrrrrszWtest_factory..TestABC.test_customdescriptors_with_abstractmethod..E.fooNrSrrTrrrKÿsrK)r r!rrr )rrKr%)rrrdrÚ*test_customdescriptors_with_abstractmethodæs   zHtest_factory..TestABC.test_customdescriptors_with_abstractmethodcsJGdd„dˆd}| |jdh¡Gdd„dt|ƒ}Gdd„d|d}dS) Nc@seZdZejdd„ƒZdS)z;test_factory..TestABC.test_metaclass_abc..AcSsdSrrrrrrÚxsz=test_factory..TestABC.test_metaclass_abc..A.xN)rrrrr7rfrrrrÚAsrgrrfc@seZdZdd„ZdS)z>test_factory..TestABC.test_metaclass_abc..metacSsdS©Nérrrrrrf sz@test_factory..TestABC.test_metaclass_abc..meta.xN)rrrrfrrrrÚmeta srjc@s eZdZdS)z;test_factory..TestABC.test_metaclass_abc..CN©rrrrrrrrsr)r"rMr9)rrgrjrr%rrÚtest_metaclass_abcsz0test_factory..TestABC.test_metaclass_abccs Gdd„dˆd}Gdd„dtƒ}|ƒ}| t||ƒ¡| t||fƒ¡| ||¡| ||f¡| |¡}| t||ƒ¡| t||fƒ¡| ||¡| ||f¡| ||¡Gdd„d|ƒ}|ƒ}| t||ƒ¡| t||fƒ¡| ||¡| ||f¡dS)Nc@s eZdZdS)zAtest_factory..TestABC.test_registration_basics..ANrkrrrrrgsrgrc@s eZdZdS)zAtest_factory..TestABC.test_registration_basics..BNrkrrrrÚBsrmc@s eZdZdS)zAtest_factory..TestABC.test_registration_basics..CNrkrrrrr!sr)rYrÚ issubclassZassertNotIsInstanceÚregisterrÚassertIsInstanceÚassertIs)rrgrmÚbÚB1rÚcr%rrÚtest_registration_basicss&     z6test_factory..TestABC.test_registration_basicscsØGdd„dˆd}|jGdd„dtƒƒ}|ƒ}| t||ƒ¡| t||fƒ¡| ||¡| ||f¡|jGdd„d|ƒƒ}|ƒ}| t||ƒ¡| t||fƒ¡| ||¡| ||f¡| || |¡¡dS)Nc@s eZdZdS)zDtest_factory..TestABC.test_register_as_class_deco..ANrkrrrrrg*srgrc@s eZdZdS)zDtest_factory..TestABC.test_register_as_class_deco..BNrkrrrrrm,srmc@s eZdZdS)zDtest_factory..TestABC.test_register_as_class_deco..CNrkrrrrr4sr)rorYrrnrprq)rrgrmrrrrtr%rrÚtest_register_as_class_deco)s   z9test_factory..TestABC.test_register_as_class_decocsGdd„dˆd}Gdd„dƒ}|ƒ}| t||ƒ¡| t||fƒ¡ˆƒ}| |¡ˆƒ}| ||¡| t||ƒ¡| t||fƒ¡dS)Nc@s eZdZdS)zEtest_factory..TestABC.test_isinstance_invalidation..ANrkrrrrrg?srgrc@s eZdZdS)zEtest_factory..TestABC.test_isinstance_invalidation..BNrkrrrrrmAsrm)rÚ isinstanceroZ assertGreaterr)rrgrmrrZ token_oldZ token_new©r&Úabc_get_cache_tokenrrÚtest_isinstance_invalidation>s  z:test_factory..TestABC.test_isinstance_invalidationcsäGdd„dˆd}| t¡| d|¡| d|f¡| tt|ƒ¡| tt|fƒ¡Gdd„d|ƒ}| t¡Gdd„dtƒ}| d |¡| d |f¡| tt|ƒ¡| tt|fƒ¡| t||ƒ¡| t||fƒ¡dS) Nc@s eZdZdS)zCtest_factory..TestABC.test_registration_builtins..ANrkrrrrrgNsrgré*c@s eZdZdS)zCtest_factory..TestABC.test_registration_builtins..BNrkrrrrrmUsrmc@s eZdZdS)zCtest_factory..TestABC.test_registration_builtins..CNrkrrrrrXr rÚ)roÚintrprrnÚstr)rrgrmrr%rrÚtest_registration_builtinsMs    z8test_factory..TestABC.test_registration_builtinscs˜Gdd„dˆd}| |¡Gdd„d|ƒ}| t|j|¡Gdd„dtƒ}| |¡| |¡Gdd „d |ƒ}| |¡| t|j|¡| |¡dS) Nc@s eZdZdS)zEtest_factory..TestABC.test_registration_edge_cases..ANrkrrrrrgasrgrc@s eZdZdS)zFtest_factory..TestABC.test_registration_edge_cases..A1NrkrrrrÚA1dsr€c@s eZdZdS)zEtest_factory..TestABC.test_registration_edge_cases..BNrkrrrrrmgsrmc@s eZdZdS)zEtest_factory..TestABC.test_registration_edge_cases..CNrkrrrrrksr)ror Ú RuntimeErrorrY)rrgr€rmrr%rrÚtest_registration_edge_cases`s    z:test_factory..TestABC.test_registration_edge_casescs(Gdd„dˆd}| td|jd¡dS)Nc@s eZdZdS)z@test_factory..TestABC.test_register_non_class..ANrkrrrrrgrsrgrzCan only register classesr1)rBr!ro)rrgr%rrÚtest_register_non_classqsÿz5test_factory..TestABC.test_register_non_classcsöGdd„dˆd}| t||ƒ¡| t||fƒ¡Gdd„dˆd}| t||ƒ¡| t||fƒ¡| t||ƒ¡| t||fƒ¡Gdd„dˆd}| |¡Gdd „d |ƒ}| t||ƒ¡| t||fƒ¡Gd d „d |ƒ}| |¡| t||ƒ¡| t||fƒ¡| t||ƒ¡| t||fƒ¡| t||ƒ¡| t||fƒ¡| t||ƒ¡| t||fƒ¡| t||ƒ¡| t||fƒ¡| t¡Gd d „d tƒ}| t||ƒ¡| t||fƒ¡| d|¡| d|f¡dS)Nc@s eZdZdS)zItest_factory..TestABC.test_registration_transitiveness..ANrkrrrrrgxsrgrc@s eZdZdS)zItest_factory..TestABC.test_registration_transitiveness..BNrkrrrrrm|srmc@s eZdZdS)zItest_factory..TestABC.test_registration_transitiveness..CNrkrrrrr‚src@s eZdZdS)zJtest_factory..TestABC.test_registration_transitiveness..B1Nrkrrrrrs…srsc@s eZdZdS)zJtest_factory..TestABC.test_registration_transitiveness..C1NrkrrrrÚC1‰sr„c@s eZdZdS)zMtest_factory..TestABC.test_registration_transitiveness..MyIntNrkrrrrÚMyInt—sr…r{)rrnrror}rp)rrgrmrrsr„r…r%rrÚ test_registration_transitivenessws>    z>test_factory..TestABC.test_registration_transitivenessc sÄGdd„dˆd}| t¡ti|ƒWdƒn1s<0Y| t¡td|ƒWdƒn1sp0YGdd„dƒ}| t¡t|ƒ|ƒWdƒn1s´0Yddd„d d„d d„g}t|ƒD]‚\}‰G‡fd d „d ˆd}|j|d F| t¡tt|ƒWdƒn1s60YWdƒqÞ1sV0YqÞd‰‡fdd„‰G‡fdd „d ˆd}| tˆ¡tt|ƒWdƒn1s¶0YdS)Nc@s eZdZdS)zFtest_factory..TestABC.test_issubclass_bad_arguments..ANrkrrrrrgŸsrgrr{c@seZdZdZdS)zFtest_factory..TestABC.test_issubclass_bad_arguments..Cr{N)rrrÚ__mro__rrrrrªsrcSsgSrr)rfrrrÚ´r zMtest_factory..TestABC.test_issubclass_bad_arguments..cSsdS©Nr{rrrrrrˆµr cSsdgSr‰rrrrrrˆ¶r cseZdZ”ZdS©zFtest_factory..TestABC.test_issubclass_bad_arguments..SN©rrrÚ__subclasses__r)ÚfuncrrÚSºsrŽ)Úizexception from __subclasses__cs tˆƒ‚dSr)Ú Exceptionr)Úexc_msgrrÚ raise_excÅszNtest_factory..TestABC.test_issubclass_bad_arguments..raise_exccseZdZ”ZdSrŠr‹r)r’rrrŽÈs)r r!rnÚ enumerateZsubTestr}rBr)rrgrZbogus_subclassesrrŽr%)r‘rr’rÚtest_issubclass_bad_argumentsžs. ( ( *ü L z;test_factory..TestABC.test_issubclass_bad_argumentscsžG‡fdd„dtjd‰| tˆˆƒ¡| tˆˆfƒ¡Gdd„dƒ}| t|ˆƒ¡| t|ˆfƒ¡Gdd„dƒ}| t|ˆƒ¡| t|ˆfƒ¡dS)NcseZdZe‡fdd„ƒZdS)z:test_factory..TestABC.test_subclasshook..Acs|ˆurd|jvStS)Nr)Ú__dict__ÚNotImplemented)r)r©rgrrÚ__subclasshook__Ðs zKtest_factory..TestABC.test_subclasshook..A.__subclasshook__N)rrrr-r˜rr—rrrgÏsrgrc@seZdZdZdS)z:test_factory..TestABC.test_subclasshook..Br{NrJrrrrrm×srmc@seZdZdZdS)z:test_factory..TestABC.test_subclasshook..Cr{N)rrrZspamrrrrrÛsr)rr:rrnr)rrmrrr—rÚtest_subclasshookÎsz/test_factory..TestABC.test_subclasshookcs^Gdd„dˆd}G‡fdd„dtƒ‰Gdd„d|ˆƒ}| ˆjd¡|ƒ| ˆjd ¡dS) Nc@s eZdZdS)zHtest_factory..TestABC.test_all_new_methods_are_called..ANrkrrrrrgásrgrcs"eZdZdZ‡‡fdd„Z‡ZS)zHtest_factory..TestABC.test_all_new_methods_are_called..Brcsˆjd7_tƒ |¡Srh)ÚcounterrÚ__new__r()rmrrrr›åszPtest_factory..TestABC.test_all_new_methods_are_called..B.__new__)rrrršr›rr©rmrrrmãsrmc@s eZdZdS)zHtest_factory..TestABC.test_all_new_methods_are_called..CNrkrrrrrèsrrri)rYr"rš)rrgrr%rœrÚtest_all_new_methods_are_calledàs z=test_factory..TestABC.test_all_new_methods_are_calledcSs| ttjdƒ¡dS)NÚ __slots__)rrrr8rrrrÚtest_ABC_has___slots__îsz4test_factory..TestABC.test_ABC_has___slots__csNdd„}Gdd„dƒ}Gdd„dƒ}Gdd„d|ˆ||ƒƒ}| |jˆ¡dS) Ncs&G‡‡fdd„dtƒ}t |ddi¡S)NcseZdZ‡‡fdd„ZdS)z^test_factory..TestABC.test_tricky_new_works..with_metaclass..metaclasscs ˆ|ˆ|ƒSrr)r)ÚnameZ this_basesÚd©Úbasesrjrrr›ôszftest_factory..TestABC.test_tricky_new_works..with_metaclass..metaclass.__new__N)rrrr›rr¢rrrósrZtemporary_classr)r9r›)rjr£rrr¢rÚwith_metaclassòszKtest_factory..TestABC.test_tricky_new_works..with_metaclassc@s eZdZdS)z>test_factory..TestABC.test_tricky_new_works..ANrkrrrrrg÷r rgc@s eZdZdS)z>test_factory..TestABC.test_tricky_new_works..BNrkrrrrrmør rmc@s eZdZdS)z>test_factory..TestABC.test_tricky_new_works..CNrkrrrrrùsr)r"r)rr¤rgrmrr%rrÚtest_tricky_new_worksñs z3test_factory..TestABC.test_tricky_new_worksN)rrrr;r<r'r.r4rErGrOrZrerlrurvrzrr‚rƒr†r”r™rrŸr¥rrxrrÚTestABCHs.              ' 0 r¦cseZdZ‡fdd„ZdS)z-test_factory..TestABCWithInitSubclassc s\Gdd„dˆd}i‰G‡fdd„dƒ}Gdd„d||dd d d }| ˆtdd d d ¡dS) Nc@seZdZdZdS)z\test_factory..TestABCWithInitSubclass.test_works_with_init_subclass..abc_ABCrN)rrrržrrrrÚabc_ABCsr§rcseZdZ‡‡fdd„Z‡ZS)zhtest_factory..TestABCWithInitSubclass.test_works_with_init_subclass..ReceivesClassKwargscstƒ ¡ˆ |¡dSr)rÚ__init_subclass__Úupdate)r)Úkwargs)rÚ saved_kwargsrrr¨s zztest_factory..TestABCWithInitSubclass.test_works_with_init_subclass..ReceivesClassKwargs.__init_subclass__)rrrr¨rr©r«rrÚReceivesClassKwargssr­c@s eZdZdS)z]test_factory..TestABCWithInitSubclass.test_works_with_init_subclass..ReceiverNrkrrrrÚReceiversr®riér )rfÚyÚz)r"Údict)rr§r­r®r%r¬rÚtest_works_with_init_subclassÿs zKtest_factory..TestABCWithInitSubclass.test_works_with_init_subclassN)rrrr³rr%rrÚTestABCWithInitSubclassþsr´)ÚunittestZTestCase)r&ryr5r¦r´rrxrÚ test_factorys89 r¶Ú__main__)Ú__doc__rµrZ_py_abcÚinspectrr¶r:Úget_cache_tokenZTestLegacyAPI_PyZ TestABC_PyZTestABCWithInitSubclass_PyZTestLegacyAPI_CZ TestABC_CZTestABCWithInitSubclass_CrÚmainrrrrÚs" ÿ ÿ