a zeA.@sddlZddlZddlmZGdddejZGdddejZGdddeZGd d d eZ ed d Z ee fd Z Gd ddZ Gddde Z GdddejZddZedkredS)N)supportc@s4eZdZddZddZddZddZd d Zd S) TestIsInstanceExceptionscCs:Gdddt}Gdddt}|dt||dS)Nc@seZdZddZeeZdS)z;TestIsInstanceExceptions.test_class_has_no_bases..IcSsdSNselfrrH/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_isinstance.pygetclassszDTestIsInstanceExceptions.test_class_has_no_bases..I.getclassN__name__ __module__ __qualname__r property __class__rrrrIsrc@seZdZddZeeZdS)z;TestIsInstanceExceptions.test_class_has_no_bases..CcSsdSNrrrrrrgetbases"szDTestIsInstanceExceptions.test_class_has_no_bases..C.getbasesNr r r rr __bases__rrrrC!srF)object assertEqual isinstancerrrrrrtest_class_has_no_basessz0TestIsInstanceExceptions.test_class_has_no_basescsLGdddtGfdddt}Gdddt}|tt||dS)Nc@seZdZddZeeZdS)zPTestIsInstanceExceptions.test_bases_raises_other_than_attribute_error..EcSstdSr RuntimeErrorrrrrr,szYTestIsInstanceExceptions.test_bases_raises_other_than_attribute_error..E.getbasesNrrrrrE+srcs eZdZfddZeeZdS)zPTestIsInstanceExceptions.test_bases_raises_other_than_attribute_error..IcsSrrrrrrr 1szYTestIsInstanceExceptions.test_bases_raises_other_than_attribute_error..I.getclassNr rrrrr0s rc@seZdZddZeeZdS)zPTestIsInstanceExceptions.test_bases_raises_other_than_attribute_error..CcSsdSrrrrrrr6szYTestIsInstanceExceptions.test_bases_raises_other_than_attribute_error..C.getbasesNrrrrrr5srr assertRaisesrrrrrr,test_bases_raises_other_than_attribute_error*szETestIsInstanceExceptions.test_bases_raises_other_than_attribute_errorcCs6Gddd}Gdddt}|tt||dS)Nc@s eZdZdS)zFTestIsInstanceExceptions.test_dont_mask_non_attribute_error..INr r r rrrrr?rc@seZdZddZeeZdS)zFTestIsInstanceExceptions.test_dont_mask_non_attribute_error..CcSstdSrrrrrrrBszOTestIsInstanceExceptions.test_dont_mask_non_attribute_error..C.getbasesNrrrrrrAsrrrrrr"test_dont_mask_non_attribute_error>sz;TestIsInstanceExceptions.test_dont_mask_non_attribute_errorcCs6Gddd}Gdddt}|tt||dS)Nc@s eZdZdS)z=TestIsInstanceExceptions.test_mask_attribute_error..INr"rrrrrKr#rc@seZdZddZeeZdS)z=TestIsInstanceExceptions.test_mask_attribute_error..CcSstdSrAttributeErrorrrrrrNszFTestIsInstanceExceptions.test_mask_attribute_error..C.getbasesNrrrrrrMsr)rr TypeErrorrrrrrtest_mask_attribute_errorJsz2TestIsInstanceExceptions.test_mask_attribute_errorcCsHGdddt}|}|tt|tGddd}|tt||dS)Nc@seZdZddZeeZdS)zQTestIsInstanceExceptions.test_isinstance_dont_mask_non_attribute_error..CcSstdSrrrrrrr XszZTestIsInstanceExceptions.test_isinstance_dont_mask_non_attribute_error..C.getclassNr rrrrrWsrc@s eZdZdS)zQTestIsInstanceExceptions.test_isinstance_dont_mask_non_attribute_error..DNr"rrrrD`r#r))rr rrbool)rrcr)rrr-test_isinstance_dont_mask_non_attribute_errorVs zFTestIsInstanceExceptions.test_isinstance_dont_mask_non_attribute_errorN)r r r rr!r$r(r,rrrrr s   rc@s,eZdZddZddZddZddZd S) TestIsSubclassExceptionscCs8Gdddt}Gddd|}|tt||dS)Nc@seZdZddZeeZdS)zFTestIsSubclassExceptions.test_dont_mask_non_attribute_error..CcSstdSrrrrrrrjszOTestIsSubclassExceptions.test_dont_mask_non_attribute_error..C.getbasesNrrrrrrisrc@s eZdZdS)zFTestIsSubclassExceptions.test_dont_mask_non_attribute_error..SNr"rrrrSnr#r.rr r issubclassrrr.rrrr$hsz;TestIsSubclassExceptions.test_dont_mask_non_attribute_errorcCs8Gdddt}Gddd|}|tt||dS)Nc@seZdZddZeeZdS)z=TestIsSubclassExceptions.test_mask_attribute_error..CcSstdSrr%rrrrrtszFTestIsSubclassExceptions.test_mask_attribute_error..C.getbasesNrrrrrrssrc@s eZdZdS)z=TestIsSubclassExceptions.test_mask_attribute_error..SNr"rrrrr.xr#r.rr r'r0r1rrrr(rsz2TestIsSubclassExceptions.test_mask_attribute_errorcCs4Gddd}Gdddt}|tt||dS)Nc@s eZdZdS)zQTestIsSubclassExceptions.test_dont_mask_non_attribute_error_in_cls_arg..BNr"rrrrBr#r3c@seZdZddZeeZdS)zQTestIsSubclassExceptions.test_dont_mask_non_attribute_error_in_cls_arg..CcSstdSrrrrrrrszZTestIsSubclassExceptions.test_dont_mask_non_attribute_error_in_cls_arg..C.getbasesNrrrrrrsrr/rr3rrrr-test_dont_mask_non_attribute_error_in_cls_argszFTestIsSubclassExceptions.test_dont_mask_non_attribute_error_in_cls_argcCs4Gddd}Gdddt}|tt||dS)Nc@s eZdZdS)zHTestIsSubclassExceptions.test_mask_attribute_error_in_cls_arg..BNr"rrrrr3r#r3c@seZdZddZeeZdS)zHTestIsSubclassExceptions.test_mask_attribute_error_in_cls_arg..CcSstdSrr%rrrrrszQTestIsSubclassExceptions.test_mask_attribute_error_in_cls_arg..C.getbasesNrrrrrrsrr2r4rrr$test_mask_attribute_error_in_cls_argsz=TestIsSubclassExceptions.test_mask_attribute_error_in_cls_argN)r r r r$r(r5r6rrrrr-gs  r-c@s,eZdZddZddZeeZddZdS) AbstractClasscCs ||_dSrbases)rr9rrr__init__szAbstractClass.__init__cCs|jSrr8rrrrrszAbstractClass.getbasescCst|Sr)AbstractInstancerrrr__call__szAbstractClass.__call__N)r r r r:rrrr<rrrrr7sr7c@s$eZdZddZddZeeZdS)r;cCs ||_dSrklass)rr>rrrr:szAbstractInstance.__init__cCs|jSrr=rrrrr szAbstractInstance.getclassN)r r r r:r rrrrrrr;sr;rr8c@s eZdZdS)SuperNr"rrrrr?sr?c@s eZdZdS)ChildNr"rrrrr@sr@c@sleZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS)TestIsInstanceIsSubclasscCs||dttt|dttt|dttt|dttt|dttt|dtttdSNTF)rrr?r@ AbstractSuper AbstractChildrrrrtest_isinstance_normals z/TestIsInstanceIsSubclass.test_isinstance_normalcCs|dttt|dttt|dttt|dttt|dttt|dttt|dttt|dtttdSrB)rrrCrDr?r@rrrrtest_isinstance_abstractsz1TestIsInstanceIsSubclass.test_isinstance_abstractcCsp|dttt|dttt|dttt|dttt|dttt|dtttdSrB)rr0r?rCr@rrrrtest_subclass_normals z-TestIsInstanceIsSubclass.test_subclass_normalcCs|dttt|dttt|dttt|dttt|dttt|dttt|dtttdSrB)rr0rCrDr@r?rrrrtest_subclass_abstractsz/TestIsInstanceIsSubclass.test_subclass_abstractcCs|dtttf|dtttf|dtttf|dttttf|dttd|dttttff|dtttttff|dtttttffdS)NTFr)rr0r@r?intfloatstrrrrrtest_subclass_tuplesz,TestIsInstanceIsSubclass.test_subclass_tuplecCs>t"|tttttWdn1s00YdSr)rinfinite_recursionr RecursionError blowstackr0rKrrrrtest_subclass_recursion_limits z6TestIsInstanceIsSubclass.test_subclass_recursion_limitcCs>t"|tttdtWdn1s00YdS)N)rrMr rNrOrrKrrrrtest_isinstance_recursion_limits z8TestIsInstanceIsSubclass.test_isinstance_recursion_limitcs8GdddGfddd}|dt|tdS)Nc@seZdZeddZdS)zETestIsInstanceIsSubclass.test_issubclass_refcount_handling..AcSstfSr)rIrrrrrszOTestIsInstanceIsSubclass.test_issubclass_refcount_handling..A.__bases__Nr r r rrrrrrAsrTcs$eZdZddZefddZdS)zETestIsInstanceIsSubclass.test_issubclass_refcount_handling..BcSs d|_dS)N)xrrrrr: szNTestIsInstanceIsSubclass.test_issubclass_refcount_handling..B.__init__csfSrrrrTrrrszOTestIsInstanceIsSubclass.test_issubclass_refcount_handling..B.__bases__N)r r r r:rrrrWrrr3 sr3T)rr0rI)rr3rrWr!test_issubclass_refcount_handlings z:TestIsInstanceIsSubclass.test_issubclass_refcount_handlingcCspGddd}tF|tt|t|ttt||ttd|Wdn1sb0YdS)Nc@seZdZeddZdS)zDTestIsInstanceIsSubclass.test_infinite_recursion_in_bases..XcSs|jSr)rrrrrrszNTestIsInstanceIsSubclass.test_infinite_recursion_in_bases..X.__bases__NrSrrrrXsrYrU)rrMr rNr0rIrrrYrrr test_infinite_recursion_in_basess  z9TestIsInstanceIsSubclass.test_infinite_recursion_in_basesc CsrGdddt}tF|tt|tWdn1sF0YWdn1sd0YdS)Regression test for bpo-30570.c@seZdZddZdS)zQTestIsInstanceIsSubclass.test_infinite_recursion_via_bases_tuple..FailurecSs|dfSrr)rattrrrr __getattr__"sz]TestIsInstanceIsSubclass.test_infinite_recursion_via_bases_tuple..Failure.__getattr__Nr r r r^rrrrFailure!sr`N)rrrMr rNr0rI)rr`rrr'test_infinite_recursion_via_bases_tuples  z@TestIsInstanceIsSubclass.test_infinite_recursion_via_bases_tuplecCsLGddd}t"|tt|tWdn1s>0YdS)r\c@seZdZeddZdS)z@TestIsInstanceIsSubclass.test_infinite_cycle_in_bases..XcSs |||fSrrrrrrr+szJTestIsInstanceIsSubclass.test_infinite_cycle_in_bases..X.__bases__NrSrrrrrY*srYNrrMr rNr0rIrZrrrtest_infinite_cycle_in_bases(s z5TestIsInstanceIsSubclass.test_infinite_cycle_in_basescsPGfdddt"|tttWdn1sB0YdS)r\cseZdZfddZdS)z>TestIsInstanceIsSubclass.test_infinitely_many_bases..XcsB||dGddd}Gddd}j|_|_||fS)Nrc@s eZdZdS)zUTestIsInstanceIsSubclass.test_infinitely_many_bases..X.__getattr__..ANr"rrrrrT6srTc@s eZdZdS)zUTestIsInstanceIsSubclass.test_infinitely_many_bases..X.__getattr__..BNr"rrrrr38sr3)rr^)rr]rTr3rYrrr^4s  zJTestIsInstanceIsSubclass.test_infinitely_many_bases..X.__getattr__Nr_rrdrrrY3srYNrbrrrdrtest_infinitely_many_bases1s z3TestIsInstanceIsSubclass.test_infinitely_many_basesN)r r r rErFrGrHrLrPrRrXr[rarcrerrrrrAs        rAcCs0|f}ttdD]}|f}|||qdS)N)rangesysgetrecursionlimit)fxnargZ compare_toZ tuple_argZcntrrrrO@srO__main__)ZunittestrhtestrZTestCaserr-rr7r;rCrDr?r@rArOr mainrrrrs \0