a zed&@sddlZGdddZGdddeZGdddeZGdd d eeZGd d d eZGd d d eZGdddeZGdddejZ e dkre dS)Nc@s eZdZddZeddZdS)AcCsdSNrselfrrC/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_super.pyfszA.fcCs|dfSrrclsrrrcm szA.cmN)__name__ __module__ __qualname__r classmethodr rrrrrsrcs,eZdZfddZefddZZS)BcstdSNrsuperrr __class__rrrszB.fcs|tdfSrrr r rrrr szB.cmr r rrrr __classcell__rrrrr s rcs,eZdZfddZefddZZS)CcstdSNrrrrrrrszC.fcs|tdfSrrr rrrr szC.cmrrrrrrs rcs(eZdZfddZfddZZS)DcstdSNrrrrrrrszD.fcs|tdfSrrr rrrr szD.cm)r r rrr rrrrrrs rc@s eZdZdS)ENr r rrrrrr!src@seZdZejZdS)FN)r r rrrrrrrr$src@s eZdZdS)GNrrrrrr 'sr cseZdZfddZddZddZddZd d Zd d Zd dZ ddZ fddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zfd'd(Zd)d*Zfd+d,ZZS)- TestSupercstdSN)r!rrrrtearDown-szTestSuper.tearDowncCs|tddSNZABCD assertEqualrrrrrrtest_basics_working2szTestSuper.test_basics_workingcCs|ttddSr$r%rrrrtest_class_getattr_working5sz$TestSuper.test_class_getattr_workingcCs*|td|ttddSr$)r&rrrrrr!test_subclass_no_override_working8sz+TestSuper.test_subclass_no_override_workingcCs*|td|ttddSr$)r&rrrrrr$test_unbound_method_transfer_working<sz.TestSuper.test_unbound_method_transfer_workingcCsX|ttdf|ttdf|ttdf|ttdfdSr)r&rr r rrrr test_class_methods_still_working@sz*TestSuper.test_class_methods_still_workingcCs\t}|||tttdfdfdfdft}|||tttdfdfdfdfdS)Nrrrr)rr&r r)rderrr#test_super_in_class_methods_workingFs&z-TestSuper.test_super_in_class_methods_workingcCs&Gdddt}||ddS)NcseZdZfddZZS)z,TestSuper.test_super_with_closure..Ecsfdd}tdS)NcsdSr"rrrrrnestedQsz>TestSuper.test_super_with_closure..E.f..nestedrr)rr/rrrrPs z.TestSuper.test_super_with_closure..E.fr r rrrrrrrrOsrZAE)rr&r)rrrrrtest_super_with_closureLsz!TestSuper.test_super_with_closurecsGdddt}|}||d||jdGfddd}||jt||t}t dt iWdn1s0Y|t|j tGddd}|t dd t d=| d|j Gfd dd}|d dS) Ncs eZdZfddZdZZS)7TestSuper.test_various___class___pathologies..Xcs tSr"rrrrrrZs9TestSuper.test_various___class___pathologies..X.f)r r rrrrrrrrXYs r5rr4cs eZdZZfddZZS)r2csdSr"rrrrrrbsr3)r r rxrrrrrrr5`szYclass X: __class__ def f(): __class__cs eZdZdafddZZS)r2*csdSr"rrrrrrnsr3)r r rrrrrrrrr5ksrr7cs eZdZdfddZZS)r2r7csdSr"rrrrrrvsr3r0rrrrr5ss)rr&rrassertIsr6type assertRaises NameErrorexecglobals exception assertNotIn__dict__)rr5r6r-rrr"test_various___class___pathologiesWs" "z,TestSuper.test_various___class___pathologiescCs$Gddd}|||dS)NcseZdZfddZZS)z2TestSuper.test___class___instancemethod..XcsSr"rrrrrr}sz4TestSuper.test___class___instancemethod..X.fr0rrrrr5|sr5r8rrr5rrrtest___class___instancemethodzsz'TestSuper.test___class___instancemethodcCs"Gddd}|||dS)Ncs eZdZefddZZS)z/TestSuper.test___class___classmethod..XcsSr"rr rrrrsz1TestSuper.test___class___classmethod..X.f)r r rrrrrrrrr5sr5rBrCrrrtest___class___classmethodsz$TestSuper.test___class___classmethodcCs"Gddd}|||dS)Ncs eZdZefddZZS)z0TestSuper.test___class___staticmethod..XcsSr"rrrrrrsz2TestSuper.test___class___staticmethod..X.fr r r staticmethodrrrrrrr5sr5rBrCrrrtest___class___staticmethodsz%TestSuper.test___class___staticmethodcs:dGfdddt}Gddd|d}||dS)NcseZdZfddZZS)z*TestSuper.test___class___new..Metacst||||}||Sr")r__new__r)r namebases namespacerr test_classrrrIsz2TestSuper.test___class___new..Meta.__new__r r rrIrrrNrrMetasrQcs eZdZefddZZS)z'TestSuper.test___class___new..AcsSr"rrrrrrsz)TestSuper.test___class___new..A.frFrrrrrsr metaclassr9r8rrQrrrPrtest___class___newszTestSuper.test___class___newcsVdGfdddt}Gddd|d}||dtdd}|||dS)NcseZdZfddZdS)z.TestSuper.test___class___delayed..Metacs|dSr"rr rJrKrLZtest_namespacerrrIsz6TestSuper.test___class___delayed..Meta.__new__N)r r rrIrrXrrrQsrQcs eZdZefddZZS)z+TestSuper.test___class___delayed..AcsSr"rrrrrrsz-TestSuper.test___class___delayed..A.frFrrrrrsrrRrr)r9r8r)rrQrrrrXrtest___class___delayeds   z TestSuper.test___class___delayedcs:dGdddt}Gfddd|d}||dS)NcseZdZfddZZS)z*TestSuper.test___class___mro..Metacs|jdtS)Nr)r@rmrorrrrrZs z.TestSuper.test___class___mro..Meta.mro)r r rrZrrrrrrQsrQcseZdZfddZZS)z'TestSuper.test___class___mro..AcsdSr"rrrMrrrsz)TestSuper.test___class___mro..A.fr0rrPrrrsrrRrTrUrrPrtest___class___mroszTestSuper.test___class___mrocsGfdddt}dGddd|d}|ddGddd|d}d}|jj}|t|d |||d |t|j Wdn1s0YdS) NcseZdZfddZZS)z=TestSuper.test___classcell___expected_behaviour..Metacs|t||||Sr")copyrrIrW)rnamespace_snapshotrrrIszETestSuper.test___classcell___expected_behaviour..Meta.__new__rOrr]rrrQsrQc@s eZdZdS)zHTestSuper.test___classcell___expected_behaviour..WithoutClassRefNrrrrrWithoutClassRefsr_rRrcseZdZfddZZS)zETestSuper.test___classcell___expected_behaviour..WithClassRefcsSr"rrrrrrszGTestSuper.test___classcell___expected_behaviour..WithClassRef.fr0rrrr WithClassRefsr`r) r9r?r __closure__r&lenr8r:AttributeErrorr)rrQr_r`Z class_cellZmethod_closurerr^r%test___classcell___expected_behaviours  z/TestSuper.test___classcell___expected_behaviourcCshGdddt}Gddd|d}d}|t|"Gddd|d}Wdn1sZ0YdS) NcseZdZfddZZS)z2TestSuper.test___classcell___missing..Metacs|ddt||||SNr)poprrIrWrrrrIs z:TestSuper.test___classcell___missing..Meta.__new__rOrrrrrQsrQc@s eZdZdS)z=TestSuper.test___classcell___missing..WithoutClassRefNrrrrrr_sr_rRz+__class__ not set.*__classcell__ propagatedcseZdZfddZZS)z:TestSuper.test___classcell___missing..WithClassRefcsSr"rrrrrrsz.WithClassRef.fr0rrrrr`sr`)r9ZassertRaisesRegex RuntimeError)rrQr_Zexpected_errorr`rrrtest___classcell___missings z$TestSuper.test___classcell___missingc CsGdddt}dddtfD]n}|j|dN|t$Gddd||d}Wdn1sd0YWdq1s0YqdS) NcseZdZfddZZS)z4TestSuper.test___classcell___overwrite..Metacs||d<t||||Srf)rrI)r rJrKrLcellrrrrIsz.Meta.__new__rOrrrrrQsrQr)bad_cellc@s eZdZdS)z1TestSuper.test___classcell___overwrite..ANrrrrrr sr)rSrj)r9objectZsubTestr: TypeError)rrQrlrrrrtest___classcell___overwrites  z&TestSuper.test___classcell___overwritecCsPGdddt}|t"Gddd|d}Wdn1sB0YdS)NcseZdZfddZZS)z5TestSuper.test___classcell___wrong_cell..Metacs"t||||}tdd|}|S)Nrr)rrIr9)r rJrKrLrrrrrIs z=TestSuper.test___classcell___wrong_cell..Meta.__new__rOrrrrrQsrQcseZdZfddZZS)z2TestSuper.test___classcell___wrong_cell..AcsSr"rrrrrrsz4TestSuper.test___classcell___wrong_cell..A.fr0rrrrrsrrR)r9r:rnrUrrrtest___classcell___wrong_cell s z'TestSuper.test___classcell___wrong_cellcsTfdd}|t|fdd}|t|dGddd}|t|jdS)Ncs tdSr"rrrrrrsz.TestSuper.test_obscure_super_errors..fcs ~tdSr"rqr6rrrrscseZdZfddZZS)z.TestSuper.test_obscure_super_errors..Xcs tdSr"rqrrrrrr$sz0TestSuper.test_obscure_super_errors..X.fr0rrrrr5#sr5)r:rhr)rrr5rrrtest_obscure_super_errorss    z#TestSuper.test_obscure_super_errorscs:Gdddfdd}|jd}|tj|dS)NcseZdZfddZZS)z&TestSuper.test_cell_as_self..Xcs tdSr"rqrrrrmeth,sz+TestSuper.test_cell_as_self..X.meth)r r rrtrrrrrr5+sr5csfdd}|S)NcsSr"rrkrrg1sz1TestSuper.test_cell_as_self..f..gr)rwr5rurr/s z&TestSuper.test_cell_as_self..fr)rbr:rnrt)rrcrrxrtest_cell_as_self*s  zTestSuper.test_cell_as_selfcs*ttd}tdD]}t|t|qdS)Ng?i)rfloatrange__init__int)rspirrrtest_super_init_leaks7s  zTestSuper.test_super_init_leaks)r r rr#r'r(r)r*r+r.r1rArDrErHrVrYr[rerirorprsrzrrrrrrr!+s,  #  r!__main__) Zunittestrrrrrrr ZTestCaser!r mainrrrrs