3 ,๒ฟWใ@sNdZddlZGdd„dejƒZGdd„dejƒZGdd„dejƒZd d „ZdS) z!Test adapter declaration helpers ้Nc@sDeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dS)ฺ Test_adaptercCsddlm}|S)Nr)ฺadapter)ฺzope.component._declarationr)ฺselfrฉr๚'/usr/lib/python3.6/test__declaration.pyฺ_getTargetClasss zTest_adapter._getTargetClasscGs |jƒ|ŽS)N)r)rฺ interfacesrrrฺ_makeOneszTest_adapter._makeOnecCs|jƒ}|jt|jƒgƒdS)N)r ฺ assertEqualฺlistr )rฺdecorrrฺtest_ctor_no_interfacessz$Test_adapter.test_ctor_no_interfacescCsRddlm}Gdd„d|ƒ}Gdd„d|ƒ}|j||ƒ}|jt|jƒ||gƒdS)Nr)ฺ Interfacec@s eZdZdS)z1Test_adapter.test_ctor_w_interfaces..IFooN)ฺ__name__ฺ __module__ฺ __qualname__rrrrฺIFoo!src@s eZdZdS)z1Test_adapter.test_ctor_w_interfaces..IBarN)rrrrrrrฺIBar#sr)ฺzope.interfacerr r r r )rrrrr rrrฺtest_ctor_w_interfacess   z#Test_adapter.test_ctor_w_interfacescCs^ddlm}Gdd„d|ƒ}Gdd„d|ƒ}|j||ƒGdd„dtƒƒ}|j|j||fƒdS) Nr)rc@s eZdZdS)z/Test_adapter.test__call___w_class..IFooN)rrrrrrrr*src@s eZdZdS)z/Test_adapter.test__call___w_class..IBarN)rrrrrrrr,src@s eZdZdS)z.Test_adapter.test__call___w_class..BazN)rrrrrrrฺBaz.sr)rrr ฺobjectr ฺ__component_adapts__)rrrrrrrrฺtest__call___w_class(s  z!Test_adapter.test__call___w_classcCsbddlm}Gdd„d|ƒ}Gdd„d|ƒ}|j||ƒGdd„dtƒƒ}|ƒ}|jtt|d ƒdS) Nr)rc@s eZdZdS)zATest_adapter.test__call___w_inst_of_decorated_class..IFooN)rrrrrrrr5src@s eZdZdS)zATest_adapter.test__call___w_inst_of_decorated_class..IBarN)rrrrrrrr7src@s eZdZdS)z@Test_adapter.test__call___w_inst_of_decorated_class..BazN)rrrrrrrr9srZ__component_adapts_)rrr rฺ assertRaisesฺAttributeErrorฺgetattr)rrrrrฺbazrrrฺ&test__call___w_inst_of_decorated_class3s z3Test_adapter.test__call___w_inst_of_decorated_classcCshddlm}Gdd„d|ƒ}Gdd„d|ƒ}Gdd„dtƒ}|j||ƒ}||ƒƒ}|j|j||fƒdS) Nr)rc@s eZdZdS)z3Test_adapter.test__call___w_non_class..IFooN)rrrrrrrrBsrc@s eZdZdS)z3Test_adapter.test__call___w_non_class..IBarN)rrrrrrrrDsrc@s eZdZdS)z2Test_adapter.test__call___w_non_class..BazN)rrrrrrrrFsr)rrrr r r)rrrrrr rrrrฺtest__call___w_non_class@s   z%Test_adapter.test__call___w_non_classN) rrrrr rrrrr rrrrrs   rc@s6eZdZd dd„Zdd„Zdd„Zdd „Zd d „Zd S)ฺ Test_adaptsTcCsˆddl}d}|jddf}|jƒ|sFt|||ƒ|jt|ƒdƒdSyt|||ƒWntk rjdSX|rz|jdƒWdQRXdS)NrFT)ฺrecordzDidn't raise TypeError)ฺwarningsฺcatch_warningsฺ resetwarningsฺexecr ฺlenฺ TypeErrorฺfail)rฺcodeฺglobsฺlocsZfails_under_py3kr#ฺPYTHON3ฺlogrrrฺ_run_generated_codeOs zTest_adapts._run_generated_codecsJddlm‰G‡fdd„dtƒ‰|jˆjfƒ‡fdd„}|jt|ƒdS)Nr)ฺadaptscseZdZ”ƒdS)z2Test_adapts.test_instances_not_affected..CN)rrrr)r0rrฺCfsr1csˆƒjS)N)rr)r1rrฺ_tryjsz5Test_adapts.test_instances_not_affected.._try)rr0rr rrr)rr2r)r1r0rฺtest_instances_not_affectedds   z'Test_adapts.test_instances_not_affectedc Csคddl}ddlm}ddlm}Gdd„d|ƒ}||dœ}i}djdd gƒ}|j|||d ƒr |d }|jd d *} |jƒ|j t |ƒ|j t | ƒdƒWdQRXdS)Nr)r0)rc@s eZdZdS)z3Test_adapts.test_called_from_function..IFooN)rrrrrrrrrsr)r0rฺ z def foo():z adapts(IFoo)FฺfooT)r") r#rr0rrฺjoinr/r$r%rr(r r') rr#r0rrr+r,ฺCODEr5r.rrrฺtest_called_from_functionns    z%Test_adapts.test_called_from_functionc Csิddl}ddlm}ddlm}ddlm}Gdd„d|ƒ}Gdd„d|ƒ}|||d œ}i}d jd d d gƒ} |jddR} |j ƒyt | ||ƒWn(t k rบ|sถ|j t | ƒdƒYn X|jdƒWdQRXdS)Nr)r0)r)r-c@s eZdZdS)z6Test_adapts.test_called_twice_from_class..IFooN)rrrrrrrr†src@s eZdZdS)z6Test_adapts.test_called_twice_from_class..IBarN)rrrrrrrrˆsr)r0rrr4zclass Foo(object):z adapts(IFoo)z adapts(IBar)T)r"zDidn't raise TypeError)r#rr0rrZzope.interface._compatr-r6r$r%r&r(r r'r)) rr#r0rr-rrr+r,r7r.rrrฺtest_called_twice_from_classs(    z(Test_adapts.test_called_twice_from_classc Csvddlm}ddlm}Gdd„d|ƒ}||dœ}i}djdd gƒ}|j|||ƒrr|d }|j}|jt|ƒ|gƒdS) Nr)r0)rc@s eZdZdS)z5Test_adapts.test_called_once_from_class..IFooN)rrrrrrrržsr)r0rr4zclass Foo(object):z adapts(IFoo)ฺFoo) rr0rrr6r/rr r ) rr0rrr+r,r7r:ฺspecrrrฺtest_called_once_from_class›s   z'Test_adapts.test_called_once_from_classN)T)rrrr/r3r8r9r<rrrrr!Ms   r!c@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) ฺTest_adaptedBycCsddlm}||ƒS)Nr)ฺ adaptedBy)rr>)rฺobjr>rrrฺ_callFUTฎs zTest_adaptedBy._callFUTcCs|j|jtƒƒdƒdS)N)r r@r)rrrrฺtest_obj_w_no_attrฒsz!Test_adaptedBy.test_obj_w_no_attrcs\ddlm}Gdd„d|ƒ‰Gdd„d|ƒ‰G‡‡fdd„dtƒ}|j|j|ƒˆˆfƒdS) Nr)rc@s eZdZdS)z1Test_adaptedBy.test__call___w_class..IFooN)rrrrrrrrทsrc@s eZdZdS)z1Test_adaptedBy.test__call___w_class..IBarN)rrrrrrrrนsrcseZdZ””fZdS)z0Test_adaptedBy.test__call___w_class..BazN)rrrrr)rrrrrปsr)rrrr r@)rrrr)rrrrตs  z#Test_adaptedBy.test__call___w_classcslddlm}ddlm‰Gdd„d|ƒ‰Gdd„d|ƒ‰G‡‡‡fdd „d tƒ}|ƒ}|j|j|ƒdƒdS) Nr)r)ฺ _adapts_descrc@s eZdZdS)zCTest_adaptedBy.test__call___w_inst_of_decorated_class..IFooN)rrrrrrrrยsrc@s eZdZdS)zCTest_adaptedBy.test__call___w_inst_of_decorated_class..IBarN)rrrrrrrrฤsrcseZdZ”””fƒZdS)zBTest_adaptedBy.test__call___w_inst_of_decorated_class..BazN)rrrrr)rrrBrrrฦsr)rrrrBrr r@)rrrrr)rrrBrrฟs  z5Test_adaptedBy.test__call___w_inst_of_decorated_classcCsfddlm}Gdd„d|ƒ}Gdd„d|ƒ}Gdd„dtƒ}|ƒ}||f|_|j|j|ƒ||fƒdS) Nr)rc@s eZdZdS)z5Test_adaptedBy.test__call___w_non_class..IFooN)rrrrrrrrอsrc@s eZdZdS)z5Test_adaptedBy.test__call___w_non_class..IBarN)rrrrrrrrฯsrc@s eZdZdS)z4Test_adaptedBy.test__call___w_non_class..BazN)rrrrrrrrัsr)rrrrr r@)rrrrrrrrrr หs  z'Test_adaptedBy.test__call___w_non_classN)rrrr@rArrr rrrrr=ฌs   r=cCs"tjtjtƒtjtƒtjtƒfƒS)N)ฺunittestZ TestSuiteZ makeSuiterr!r=rrrrฺ test_suiteุsrD)ฺ__doc__rCZTestCaserr!r=rDrrrrฺs ;_,