eJdZddlZddlZGddejZdZGddejZGdd ejZGd d ejZy) asTests for advice This module was adapted from 'protocols.tests.advice', part of the Python Enterprise Application Kit (PEAK). Please notify the PEAK authors (pje@telecommunity.com and tsarna@sarna.org) if bugs are found or Zope-specific changes are required, so that the PEAK version of this module can be kept in sync. PEAK is a Python application framework that interoperates with (but does not require) Zope 3 and Twisted. It provides tools for manipulating UML models, object-relational persistence, aspect-oriented programming, and more. Visit the PEAK home page at http://peak.telecommunity.com for more information. Nc$eZdZdZdZdZdZy) FrameInfoTestcddlm}|j\}}}}|j|d|j||fD]}|j ||j u!y)Nradvisory_testingmodule)zope.interface.testsrmoduleLevelFrameInfo assertEqual__dict__ assertTrue my_globalsselfrkindrf_locals f_globalsds B/usr/lib/python3/dist-packages/zope/interface/tests/test_advice.py test_w_modulezFrameInfoTest.test_w_module"s^9 0 E E v 9 x((I5 >A OOA!1!cddlm}|jj\}}}}|j |d|j |fD]}|j ||ju!y)Nrrclass)r r NewStyleClassclassLevelFrameInfor r r rrs r test_w_classzFrameInfoTest.test_w_class*sf9'44HH     w')+ >A OOA!1!rcddlm}|tj\}}}}|j |d|j |t u|j|fD]}|j |tuy)Nr getFrameInfoz function call) zope.interface.advicersys _getframer r localsr globals)rrrrrrrs rtest_inside_function_callz'FrameInfoTest.test_inside_function_call5sk6,8,I)fh  / FH,-)+ ,A OOAN + ,rcddlm}d|i}i}tt|||j |dd|j |d|u|j |ddu|j |d|uy) Nrrrrexecrrr)r rr' _FUNKY_EXECr r )rr_globals_localss rtest_inside_execzFrameInfoTest.test_inside_exec=sv6"L1 [(G, &1  +w67 )T12  ,89rN)__name__ __module__ __qualname__rrr%r+rrrr s> >,:rrzMimport sys kind, module, f_locals, f_globals = getFrameInfo(sys._getframe()) c$eZdZdZdZdZdZy)Test_isClassAdvisorcddlm}||i|S)Nr)isClassAdvisor)r r3)rargskwr3s r_callFUTzTest_isClassAdvisor._callFUTOs8t*r**rcF|j|j|dy)NFr r6rs rtest_w_non_functionz'Test_isClassAdvisor.test_w_non_functionSs t,e4rcLd}|j|j|dy)NctNNotImplementedErrorr/rrfooz7Test_isClassAdvisor.test_w_normal_function..fooW %' 'rFr8)rr@s rtest_w_normal_functionz*Test_isClassAdvisor.test_w_normal_functionVs  ( s+U3rcjd}t|_|j|j|dy)Nctr=r>r/rrbarz8Test_isClassAdvisor.test_w_advisor_function..bar\rArT)objectpreviousMetaclassr r6)rrEs rtest_w_advisor_functionz+Test_isClassAdvisor.test_w_advisor_function[s* ( & s+T2rN)r,r-r.r6r:rBrHr/rrr1r1Ms+54 3rr1c0eZdZdZdZdZdZdZdZy)Test_determineMetaclasscddlm}||i|S)Nr)determineMetaclass)r rL)rr4r5rLs rr6z Test_determineMetaclass._callFUTds<!4.2..rcfGddt}|j|jd||y)Nc eZdZy)DTest_determineMetaclass.test_empty_w_explicit_metatype..MetaNr,r-r.r/rrMetarOi rrQr/typer r6rrQs rtest_empty_w_explicit_metatypez6Test_determineMetaclass.test_empty_w_explicit_metatypehs) 4  r40$7rcnGddt}|j|j|fty)Nc eZdZy)1Test_determineMetaclass.test_single..MetaNrPr/rrrQrYnrRrrQrSrUs r test_singlez#Test_determineMetaclass.test_singlems) 4  w/6rcGddt}Gddt|}|j|j|tf|y)Nc eZdZy).MetametaNrPr/rrMetametar]srRrr^c eZdZy)8Test_determineMetaclass.test_meta_of_class..MetaNrPr/rrrQr`urRrrQ metaclassrS)rr^rQs rtest_meta_of_classz*Test_determineMetaclass.test_meta_of_classrs; t  48  d|4h?rcGddt}Gdd|}Gddt|}Gdd t|}|j|j||f|y) Nc eZdZy)GTest_determineMetaclass.test_multiple_in_hierarchy_py3k..Meta_ANrPr/rrMeta_Arf{rRrrgc eZdZy)GTest_determineMetaclass.test_multiple_in_hierarchy_py3k..Meta_BNrPr/rrMeta_Bri~rRrrjc eZdZy)BTest_determineMetaclass.test_multiple_in_hierarchy_py3k..ANrPr/rrArlrRrrmrac eZdZy)BTest_determineMetaclass.test_multiple_in_hierarchy_py3k..BNrPr/rrBrorRrrprSrrgrjrmrps rtest_multiple_in_hierarchy_py3kz7Test_determineMetaclass.test_multiple_in_hierarchy_py3kzsU T  V      1v.7rcGddt}Gddt}Gddt|}Gdd t|}|jt|j||fy) Nc eZdZy)KTest_determineMetaclass.test_multiple_not_in_hierarchy_py3k..Meta_ANrPr/rrrgrurRrrgc eZdZy)KTest_determineMetaclass.test_multiple_not_in_hierarchy_py3k..Meta_BNrPr/rrrjrwrRrrjc eZdZy)FTest_determineMetaclass.test_multiple_not_in_hierarchy_py3k..ANrPr/rrrmryrRrrmrac eZdZy)FTest_determineMetaclass.test_multiple_not_in_hierarchy_py3k..BNrPr/rrrpr{rRrrp)rT assertRaises TypeErrorr6rqs r#test_multiple_not_in_hierarchy_py3kz;Test_determineMetaclass.test_multiple_not_in_hierarchy_py3ksR T  T      )T]]QF;rN) r,r-r.r6rVrZrcrrr~r/rrrJrJbs!/8 7 @ 8 .CNrPr/rrCrrRrrr8)rrs rtest_w_newstyle_classz'Test_minimalBases.test_w_newstyle_classs)   s+aS1rcGdd}Gdd|}Gdd|}Gdd}|j|j|||g|g|j|j||g|g|j|j||g|g|j|j||g|g|j|j|||g||gy) Nc eZdZy)@Test_minimalBases.test_simple_hierarchy_skips_implied..ANrPr/rrrmrrRrrmc eZdZy)@Test_minimalBases.test_simple_hierarchy_skips_implied..BNrPr/rrrprrRrrpc eZdZy)@Test_minimalBases.test_simple_hierarchy_skips_implied..CNrPr/rrrrrRrrc eZdZy)@Test_minimalBases.test_simple_hierarchy_skips_implied..DNrPr/rrDrrRrrr8)rrmrprrs r#test_simple_hierarchy_skips_impliedz5Test_minimalBases.test_simple_hierarchy_skips_implieds         1ay1A37 1v.4 1v.4 1v.4 1ay1Aq6:rcxGdd}Gdd}|j|j|||g||gy)Nc eZdZy)@Test_minimalBases.test_repeats_kicked_to_end_of_queue..ANrPr/rrrmrrRrrmc eZdZy)@Test_minimalBases.test_repeats_kicked_to_end_of_queue..BNrPr/rrrprrRrrpr8)rrmrps r#test_repeats_kicked_to_end_of_queuez5Test_minimalBases.test_repeats_kicked_to_end_of_queues9     1ay1Aq6:rN) r,r-r.r6rrrrrr/rrrrs %082 ;;rr) __doc__unittestr!TestCaserr(r1rJrr/rrrsc  %:H%%%:P 3(++3*5