eJddZddlZGddejZGddeZGddZy) z" zope.interface.verify unit tests NceZdZdZdZedZdZdZdZ dZ dZ d Z d Z d Zd Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"d Z#d!Z$d"Z%d#Z&d$Z'd%Z(y)&Test_verifyClassNc.|j|_yN)_get_FUTverifierselfs B/usr/lib/python3/dist-packages/zope/interface/tests/test_verify.pysetUpzTest_verifyClass.setUps  cddlm}|S)Nr) verifyClass)zope.interface.verifyr)clsrs r rzTest_verifyClass._get_FUTs 5r c|Sr)r xs r zTest_verifyClass. s1r c H|j||j|fi|Sr)r_adjust_object_before_verify)r ifaceklasskwargss r _callFUTzTest_verifyClass._callFUT"s-t}}U!>>uE'%' 'r cddlm}ddlm}Gdd|}Gdd}|j ||j ||y)Nr InterfaceDoesNotImplementc eZdZy)>Test_verifyClass.test_class_doesnt_implement..ICurrentN__name__ __module__ __qualname__rr r ICurrentr"+ r r'c eZdZy)=Test_verifyClass.test_class_doesnt_implement..CurrentNr#rr r Currentr*.r(r r+)zope.interfacerzope.interface.exceptionsr assertRaisesr)r rr r'r+s r test_class_doesnt_implementz,Test_verifyClass.test_class_doesnt_implement's9,> y    *DMM8WMr c|ddlm}ddlm}Gdd|}Gdd}||||j||y)NrrclassImplementsc eZdZy)XTest_verifyClass.test_class_doesnt_implement_but_classImplements_later..ICurrentNr#rr r r'r47r(r r'c eZdZy)WTest_verifyClass.test_class_doesnt_implement_but_classImplements_later..CurrentNr#rr r r+r6:r(r r+)r,rr2r)r rr2r'r+s r 5test_class_doesnt_implement_but_classImplements_laterzFTest_verifyClass.test_class_doesnt_implement_but_classImplements_later3s8,2 y    * h(r cddlm}ddlm}ddlm}Gdd|}||Gdd}|j ||j ||y) Nrr implementerBrokenImplementationceZdZdZy)PTest_verifyClass.test_class_doesnt_have_required_method_simple..ICurrentcy docstringNrrr r methodzWTest_verifyClass.test_class_doesnt_have_required_method_simple..ICurrent.methodGr Nr$r%r&rBrr r r'r>F r r'c eZdZy)OTest_verifyClass.test_class_doesnt_have_required_method_simple..CurrentNr#rr r r+rGJ r r+r,rr:r-r<r.r)r rr:r<r'r+s r -test_class_doesnt_have_required_method_simplez>Test_verifyClass.test_class_doesnt_have_required_method_simpleAsS,.B y  X      .--7 .ICurrentcyr@rrr r rBzOTest_verifyClass.test_class_has_required_method_simple..ICurrent.methodVrCr NrDrr r r'rMUrEr r'ceZdZdZy)GTest_verifyClass.test_class_has_required_method_simple..CurrentctrNotImplementedErrorr s r rBzNTest_verifyClass.test_class_has_required_method_simple..Current.method\ )++r NrDrr r r+rPY ,r r+r,rr:rr rr:r'r+s r %test_class_has_required_method_simplez6Test_verifyClass.test_class_has_required_method_simpleQsB,. y  X  , ,  , h(r cddlm}ddlm}ddlm}Gdd|}Gdd|}||Gd d }|j ||j ||y) Nrrr9r;ceZdZdZy)NTest_verifyClass.test_class_doesnt_have_required_method_derived..IBasecyr@rrr r rBzUTest_verifyClass.test_class_doesnt_have_required_method_derived..IBase.methodgrCr NrDrr r IBaser[frEr r]c eZdZy)QTest_verifyClass.test_class_doesnt_have_required_method_derived..IDerivedNr#rr r IDerivedr_jr(r r`c eZdZy)PTest_verifyClass.test_class_doesnt_have_required_method_derived..CurrentNr#rr r r+rbmrHr r+rI)r rr:r<r]r`r+s r .test_class_doesnt_have_required_method_derivedz?Test_verifyClass.test_class_doesnt_have_required_method_derivedas_,.B I  u  X      .--7 .IBasecyr@rrr r rBzMTest_verifyClass.test_class_has_required_method_derived..IBase.methodyrCr NrDrr r r]rfxrEr r]c eZdZy)ITest_verifyClass.test_class_has_required_method_derived..IDerivedNr#rr r r`ri|r(r r`ceZdZdZy)HTest_verifyClass.test_class_has_required_method_derived..CurrentctrrRr s r rBzOTest_verifyClass.test_class_has_required_method_derived..Current.methodrTr NrDrr r r+rkrUr r+rV)r rr:r]r`r+s r &test_class_has_required_method_derivedz7Test_verifyClass.test_class_has_required_method_derivedtsN,. I  u  X  , ,  , h(r cddlm}ddlm}Gdd|}||Gdd}|j||y)Nrrr9ceZdZdZy)KTest_verifyClass.test_method_takes_wrong_arg_names_but_OK..ICurrentcyr@ras r rBzRTest_verifyClass.test_method_takes_wrong_arg_names_but_OK..ICurrent.methodrCr NrDrr r r'rp r r'ceZdZdZy)JTest_verifyClass.test_method_takes_wrong_arg_names_but_OK..CurrentctrrR)r bs r rBzQTest_verifyClass.test_method_takes_wrong_arg_names_but_OK..Current.methodrTr NrDrr r r+rvrUr r+rVrWs r (test_method_takes_wrong_arg_names_but_OKz9Test_verifyClass.test_method_takes_wrong_arg_names_but_OKsB,. y X  , ,  , h(r cddlm}ddlm}ddlm}Gdd|}||Gdd}|j ||j ||y) Nrrr9BrokenMethodImplementationceZdZdZy)DTest_verifyClass.test_method_takes_not_enough_args..ICurrentcyr@rrrs r rBzKTest_verifyClass.test_method_takes_not_enough_args..ICurrent.methodrCr NrDrr r r'r~rtr r'ceZdZdZy)CTest_verifyClass.test_method_takes_not_enough_args..CurrentctrrRr s r rBzJTest_verifyClass.test_method_takes_not_enough_args..Current.methodrTr NrDrr r r+rrUr r+r,rr:r-r|r.rr rr:r|r'r+s r !test_method_takes_not_enough_argsz2Test_verifyClass.test_method_takes_not_enough_argsS,.H y X  , ,  , 4--7 .ICurrentcyr@rargss r rBzSTest_verifyClass.test_method_doesnt_take_required_starargs..ICurrent.methodrCr NrDrr r r'rrtr r'ceZdZdZy)KTest_verifyClass.test_method_doesnt_take_required_starargs..CurrentctrrRr s r rBzRTest_verifyClass.test_method_doesnt_take_required_starargs..Current.methodrTr NrDrr r r+rrUr r+rrs r )test_method_doesnt_take_required_starargsz:Test_verifyClass.test_method_doesnt_take_required_starargsrr cddlm}ddlm}ddlm}Gdd|}||Gdd}|j ||j ||y) Nrrr9r{ceZdZdZy)OTest_verifyClass.test_method_doesnt_take_required_only_kwargs..ICurrentcyr@r)kws r rBzVTest_verifyClass.test_method_doesnt_take_required_only_kwargs..ICurrent.methodrCr NrDrr r r'rrtr r'ceZdZdZy)NTest_verifyClass.test_method_doesnt_take_required_only_kwargs..CurrentctrrRr s r rBzUTest_verifyClass.test_method_doesnt_take_required_only_kwargs..Current.methodrTr NrDrr r r+rrUr r+rrs r ,test_method_doesnt_take_required_only_kwargsz=Test_verifyClass.test_method_doesnt_take_required_only_kwargsrr cddlm}ddlm}ddlm}Gdd|}||Gdd}|j ||j ||y) Nrrr9r{ceZdZdZy)>Test_verifyClass.test_method_takes_extra_arg..ICurrentcyr@rrrs r rBzETest_verifyClass.test_method_takes_extra_arg..ICurrent.methodrCr NrDrr r r'rrtr r'ceZdZdZy)=Test_verifyClass.test_method_takes_extra_arg..CurrentctrrRr rsrxs r rBzDTest_verifyClass.test_method_takes_extra_arg..Current.methodrTr NrDrr r r+rrUr r+rrs r test_method_takes_extra_argz,Test_verifyClass.test_method_takes_extra_argrr cddlm}ddlm}Gdd|}||Gdd}|j||y)Nrrr9ceZdZdZy)KTest_verifyClass.test_method_takes_extra_arg_with_default..ICurrentcyr@rrrs r rBzRTest_verifyClass.test_method_takes_extra_arg_with_default..ICurrent.methodrCr NrDrr r r'rrtr r'ceZdZddZy)JTest_verifyClass.test_method_takes_extra_arg_with_default..CurrentNctrrRrs r rBzQTest_verifyClass.test_method_takes_extra_arg_with_default..Current.methodrTr rrDrr r r+rs ,r r+rVrWs r (test_method_takes_extra_arg_with_defaultz9Test_verifyClass.test_method_takes_extra_arg_with_defaultB,. y X  , ,  , h(r cddlm}ddlm}Gdd|}||Gdd}|j||y)Nrrr9ceZdZdZy)ITest_verifyClass.test_method_takes_only_positional_args..ICurrentcyr@rrrs r rBzPTest_verifyClass.test_method_takes_only_positional_args..ICurrent.methodrCr NrDrr r r'rrtr r'ceZdZdZy)HTest_verifyClass.test_method_takes_only_positional_args..CurrentctrrRr rs r rBzOTest_verifyClass.test_method_takes_only_positional_args..Current.methodrTr NrDrr r r+rrUr r+rVrWs r &test_method_takes_only_positional_argsz7Test_verifyClass.test_method_takes_only_positional_argsrr cddlm}ddlm}ddlm}Gdd|}||Gdd}|j ||j ||y) Nrrr9r{ceZdZdZy)@Test_verifyClass.test_method_takes_only_kwargs..ICurrentcyr@rrrs r rBzGTest_verifyClass.test_method_takes_only_kwargs..ICurrent.methodrCr NrDrr r r'r rtr r'ceZdZdZy)?Test_verifyClass.test_method_takes_only_kwargs..CurrentctrrRr rs r rBzFTest_verifyClass.test_method_takes_only_kwargs..Current.methodrTr NrDrr r r+rrUr r+rrs r test_method_takes_only_kwargsz.Test_verifyClass.test_method_takes_only_kwargsrr cddlm}ddlm}Gdd|}||Gdd}|j||y)Nrrr9ceZdZdZy)CTest_verifyClass.test_method_takes_extra_starargs..ICurrentcyr@rrrs r rBzJTest_verifyClass.test_method_takes_extra_starargs..ICurrent.method rCr NrDrr r r'rrtr r'ceZdZdZy)BTest_verifyClass.test_method_takes_extra_starargs..CurrentctrrRr rsrs r rBzITest_verifyClass.test_method_takes_extra_starargs..Current.method&rTr NrDrr r r+r#rUr r+rVrWs r test_method_takes_extra_starargsz1Test_verifyClass.test_method_takes_extra_starargsrr cddlm}ddlm}Gdd|}||Gdd}|j||y)Nrrr9ceZdZdZy)NTest_verifyClass.test_method_takes_extra_starargs_and_kwargs..ICurrentcyr@rrrs r rBzUTest_verifyClass.test_method_takes_extra_starargs_and_kwargs..ICurrent.method1rCr NrDrr r r'r/rtr r'ceZdZdZy)MTest_verifyClass.test_method_takes_extra_starargs_and_kwargs..CurrentctrrR)r rsrrs r rBzTTest_verifyClass.test_method_takes_extra_starargs_and_kwargs..Current.method7rTr NrDrr r r+r4rUr r+rVrWs r +test_method_takes_extra_starargs_and_kwargsz.ICurrentcyr@rrsrs r rBzbTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs..ICurrent.methodCrCr NrDrr r r'rArtr r'ceZdZdZy)ZTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs..CurrentctrrRr rss r rBzaTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs..Current.methodIrTr NrDrr r r+rFrUr r+rrs r 8test_method_doesnt_take_required_positional_and_starargszITest_verifyClass.test_method_doesnt_take_required_positional_and_starargs<rr cddlm}ddlm}Gdd|}||Gdd}|j||y)Nrrr9ceZdZdZy)UTest_verifyClass.test_method_takes_required_positional_and_starargs..ICurrentcyr@rrs r rBz\Test_verifyClass.test_method_takes_required_positional_and_starargs..ICurrent.methodUrCr NrDrr r r'rSrtr r'ceZdZdZy)TTest_verifyClass.test_method_takes_required_positional_and_starargs..CurrentctrrRrs r rBz[Test_verifyClass.test_method_takes_required_positional_and_starargs..Current.method[rTr NrDrr r r+rXrUr r+rVrWs r 2test_method_takes_required_positional_and_starargszCTest_verifyClass.test_method_takes_required_positional_and_starargsOrr cddlm}ddlm}Gdd|}||Gdd}|j||y)Nrrr9ceZdZdZy)BTest_verifyClass.test_method_takes_only_starargs..ICurrentcyr@rrs r rBzITest_verifyClass.test_method_takes_only_starargs..ICurrent.methodfrCr NrDrr r r'rdrtr r'ceZdZdZy)ATest_verifyClass.test_method_takes_only_starargs..CurrentctrrRrs r rBzHTest_verifyClass.test_method_takes_only_starargs..Current.methodlrTr NrDrr r r+rirUr r+rVrWs r test_method_takes_only_starargsz0Test_verifyClass.test_method_takes_only_starargs`rr cddlm}ddlm}Gdd|}||Gdd}|j||y)Nrrr9ceZdZdZy)DTest_verifyClass.test_method_takes_required_kwargs..ICurrentcyr@rrs r rBzKTest_verifyClass.test_method_takes_required_kwargs..ICurrent.methodwrCr NrDrr r r'rurtr r'ceZdZdZy)CTest_verifyClass.test_method_takes_required_kwargs..CurrentctrrRrs r rBzJTest_verifyClass.test_method_takes_required_kwargs..Current.method}rTr NrDrr r r+rzrUr r+rVrWs r !test_method_takes_required_kwargsz2Test_verifyClass.test_method_takes_required_kwargsqrr cddlm}ddlm}ddlm}Gdd|}||Gdd}|j ||j ||y) Nrrr9r{ceZdZdZy)VTest_verifyClass.test_method_takes_positional_plus_required_starargs..ICurrentcyr@rrs r rBz]Test_verifyClass.test_method_takes_positional_plus_required_starargs..ICurrent.methodrCr NrDrr r r'rrtr r'ceZdZdZy)UTest_verifyClass.test_method_takes_positional_plus_required_starargs..CurrentctrrRrs r rBz\Test_verifyClass.test_method_takes_positional_plus_required_starargs..Current.methodrTr NrDrr r r+rrUr r+rrs r 3test_method_takes_positional_plus_required_starargszDTest_verifyClass.test_method_takes_positional_plus_required_starargsrr cddlm}ddlm}ddlm}Gdd|}||Gdd}|j ||j ||y) Nrrr9r{ceZdZdZy)JTest_verifyClass.test_method_doesnt_take_required_kwargs..ICurrentcyr@rrs r rBzQTest_verifyClass.test_method_doesnt_take_required_kwargs..ICurrent.methodrCr NrDrr r r'rrtr r'ceZdZdZy)ITest_verifyClass.test_method_doesnt_take_required_kwargs..CurrentctrrRrs r rBzPTest_verifyClass.test_method_doesnt_take_required_kwargs..Current.methodrTr NrDrr r r+rrUr r+rrs r 'test_method_doesnt_take_required_kwargsz8Test_verifyClass.test_method_doesnt_take_required_kwargsrr cddlmddlm}ddlm}Gfdd|}||Gdd}|j ||y) Nr Attributerr9c eZdZWdZy)GTest_verifyClass.test_class_has_method_for_iface_attr..ICurrentThe foo AttributeNr$r%r&attrrsr r'r01Dr r'ceZdZdZy)FTest_verifyClass.test_class_has_method_for_iface_attr..CurrentctrrRr s r r zKTest_verifyClass.test_class_has_method_for_iface_attr..Current.attrrTr Nrrr r r+r rUr r+r,rrr:rr rr:r'r+rs @r $test_class_has_method_for_iface_attrz5Test_verifyClass.test_class_has_method_for_iface_attrsF,,. 2y 2 X  , ,  , h(r cddlm}ddlm}ddlm}Gdd|}||Gdd}|j ||j ||y) Nrrr9r{ceZdZdZy)FTest_verifyClass.test_class_has_nonmethod_for_method..ICurrentcyr@rrr r rBzMTest_verifyClass.test_class_has_nonmethod_for_method..ICurrent.methodrCr NrDrr r r'rrEr r'ceZdZdZy)ETest_verifyClass.test_class_has_nonmethod_for_method..CurrentNrDrr r r+rsFr r+rrs r #test_class_has_nonmethod_for_methodz4Test_verifyClass.test_class_has_nonmethod_for_methodsS,.H y  X      4--7 .ICurrentrNrrsr r'rr r r'ceZdZdZy)HTest_verifyClass.test_class_has_attribute_for_attribute..CurrentrNrrr r r+rs Dr r+rrs @r &test_class_has_attribute_for_attributez7Test_verifyClass.test_class_has_attribute_for_attributesF,,. 2y 2 X      h(r cddlmddlm}ddlm}Gfdd|}||Gdd}|j ||y) Nrrrr9c eZdZWdZy)LTest_verifyClass.test_class_misses_attribute_for_attribute..ICurrentrNrrsr r'r!r r r'c eZdZy)KTest_verifyClass.test_class_misses_attribute_for_attribute..CurrentNr#rr r r+r#rHr r+rrs @r )test_class_misses_attribute_for_attributez:Test_verifyClass.test_class_misses_attribute_for_attributesF,,. 2y 2 X      h(r cddlm}ddlm}ddlm}Gdd|GddGfd d |}||Gfd d }|j ||y) Nr)Methodrr9ceZdZdZy)ETest_verifyClass.test_w_callable_non_func_method..QuasiMethodctrrRr rrs r __call__zNTest_verifyClass.test_w_callable_non_func_method..QuasiMethod.__call__rTr Nr$r%r&r+rr r QuasiMethodr( ,r r-ceZdZdZy)GTest_verifyClass.test_w_callable_non_func_method..QuasiCallablectrrRr*s r r+zPTest_verifyClass.test_w_callable_non_func_method..QuasiCallable.__call__rTr Nr,rr r QuasiCallabler0r.r r2c eZdZWdZy)BTest_verifyClass.test_w_callable_non_func_method..ICurrentzThis is callableNr)r-sr r'r4s12Dr r'ceZdZWZy)ATest_verifyClass.test_w_callable_non_func_method..CurrentNr)r2sr r+r6s  ?Dr r+)zope.interface.interfacer&r,rr:r)r r&rr:r'r+r2r-s @@r test_w_callable_non_func_methodz0Test_verifyClass.test_w_callable_non_func_methods\3,. ,& , , , 3y 3 X  # #  # h(r cddlm}ddlm}dGdd|}||Gfdd}|j||y) Nrrr9c tfdS)Nc&j|Sr)__get__)r funcs r rzMTest_verifyClass.test_w_decorated_method..decorator..sd);r )property)r=s`r decoratorz;Test_verifyClass.test_w_decorated_method..decorators;< .ICurrentcyr@rrrs r rBzATest_verifyClass.test_w_decorated_method..ICurrent.method rCr NrDrr r r'rArtr r'c eZdZWdZy)9Test_verifyClass.test_w_decorated_method..CurrentctrrRrs r rBz@Test_verifyClass.test_w_decorated_method..Current.methods )++r NrD)r?sr r+rD s , ,r r+rV)r rr:r'r+r?s @r test_w_decorated_methodz(Test_verifyClass.test_w_decorated_methodsH,. = y X  , ,  , h(r c@ddlm}|j|tdy)Nr) IFullMappingT tentative)zope.interface.common.mappingrHrdict)r rHs r test_dict_IFullMappingz'Test_verifyClass.test_dict_IFullMappings ? lDD 9r c@ddlm}|j|tdy)Nr) ISequenceTrI)zope.interface.common.sequencerOrlist)r rOs r test_list_ISequencez$Test_verifyClass.test_list_ISequences< i 6r c@ddlm}|j|tdy)Nr) IReadSequenceTrI)rPrTrtuple)r rTs r test_tuple_IReadSequencez)Test_verifyClass.test_tuple_IReadSequence$s@ mUd ;r cddlm}ddlm}ddlm}ddlm}ddlm}Gdd|}Gd d }|j|5}|j||dddj} |jd t| j|j| jd||j| jd ||j| jd ||||d|_|j|5|j||dddy#1swYxYw#1swYyxYw)Nr)MultipleInvalidrr;rr1ceZdZdZdZy)?Test_verifyClass.test_multiple_invalid..ISeveralMethodscy)zMethod 1Nrarg1s r meth1zETest_verifyClass.test_multiple_invalid..ISeveralMethods.meth12rCr cy)zMethod 2Nrr\s r meth2zETest_verifyClass.test_multiple_invalid..ISeveralMethods.meth24rCr N)r$r%r&r^r`rr r ISeveralMethodsrZ1s   r rac eZdZy)>Test_verifyClass.test_multiple_invalid..SeveralMethodsNr#rr r SeveralMethodsrc7r(r rdrcy)NHir)r r]s r rz8Test_verifyClass.test_multiple_invalid..FrCr )r-rXr r<r,rr2r.r exception assertEquallen exceptionsassertIsInstancer^) r rXr r<rr2rardexcexs r test_multiple_invalidz&Test_verifyClass.test_multiple_invalid*s=>B,2 i       / ;3 MM/> : ;]] C ./ bmmA.0@A bmmA.0DE bmmA.0DE 86   3 4 ; MM/> : ; ; ; ; ; ;sD,D8,D58E))r$r%r&rr classmethodrrrr/r7rJrXrcrmryrrrrrrrrrrrrrrrrrrr$r8rFrMrRrVrprr r rrsH($5 ' N )< ) <&)&)$<&<&<&<&)")"<&)")"<&)")")"<(<() < ) )).),:7 < ;r rc:eZdZedZdZdZdZdZdZ y)Test_verifyObjectcddlm}|S)Nr verifyObject)rrv)rrvs r rzTest_verifyObject._get_FUTMs 6r cRt|tttfr|}|Sr) isinstancetypeOldSkool)r targets r rz.Test_verifyObject._adjust_object_before_verifyRs! ftT(^4 5XF r cddlmddlm}ddlm}ddlm}Gfdd|}||Gdd }|j ||j||y) Nrrrr9r;c eZdZWdZy)MTest_verifyObject.test_class_misses_attribute_for_attribute..ICurrentrNrrsr r'r~^r r r'c eZdZy)LTest_verifyObject.test_class_misses_attribute_for_attribute..CurrentNr#rr r r+rarHr r+)r,rrr:r-r<r.r)r rr:r<r'r+rs @r r$z;Test_verifyObject.test_class_misses_attribute_for_attributeWsW,,.B 2y 2 X      .--7 .IDummyModuleNr#rr r rrtr(r r)r,rrrr-r r.r)r rrr rs r test_module_missz"Test_verifyObject.test_module_missns5,.> 9  *--u >r czddlm}ddlm}ddlm}Gdd|}||Gdd}|||y) Nrr)providerruceZdZdZy)>Test_verifyObject.test_staticmethod_hit_on_class..IFoocy)zThe bar methodNrrsrxs r barzBTest_verifyObject.test_staticmethod_hit_on_class..IFoo.barrCr N)r$r%r&rrr r IFoors !r rceZdZedZy)=Test_verifyObject.test_staticmethod_hit_on_class..Fooctd)NzWe're never actually called)AssertionErrorrs r rzATest_verifyObject.test_staticmethod_hit_on_class..Foo.bars$%BCCr N)r$r%r& staticmethodrrr r Foors D Dr r)r,rrrrv)r rrrvrrs r test_staticmethod_hit_on_classz0Test_verifyObject.test_staticmethod_hit_on_classzsC,+6 !9 ! $ D D  D T3r N) r$r%r&rqrrr$rrrrr r rsrsKs- <"+ > r rsc eZdZy)rzNr#rr r rzrzsr rz)__doc__unittestTestCaserrsrzrr r rs<u;x((u;nB (B H  r