e@8dZddlZddlmZddlmZddlmZGddZGdd ejZ Gd d ejZ Gd d e Z Gdde Z GddeejZ GddejZGddeeZGddZGddeejZGddeejZGddeZGddejZGd d!eZGd"d#eZGd$d%ejZGd&d'eZGd(d)ejZGd*d+ejZGd,d-ejZGd.d/ejZGd0d1ejZGd2d3ejZGd4d5eeZGd6d7ejZ Gd8d9e Z!Gd:d;ejZ"Gd<d=ejZ#Gd>d?ejZ$Gd@dAejZ%GdBdCejZ&GdDdEe&eZ'GdFdGejZ(GdHdIe(eZ)GdJdKejZ*GdLdMe*eZ+GdNdOZ,GdPdQZ-y)Rz@Test the new API for making and checking interface declarations N)OptimizationTestMixin)MissingSomeAttrs)!NameAndModuleComparisonTestsMixinceZdZ ddZy)_Py3ClassAdvicecddl}|jd5}|j t||||r|j d dddy#t $r YdddywxYw#1swYyxYw)NrT)recordzDidn't raise TypeErrorF)warningscatch_warnings resetwarningsexecfail TypeError)selfcodeglobslocsfails_under_py3kr logs H/usr/lib/python3/dist-packages/zope/interface/tests/test_declarations.py_run_generated_codez#_Py3ClassAdvice._run_generated_codes   $ $D $ 1 S  " " $ 8T5$'$II67          s-A+ AA+ A(A+'A((A++A4N)T)__name__ __module__ __qualname__rrrrs .2rrceZdZdZdZdZy) NamedTestscrddlm}|dGdd}|j|jdy)Nrnamedfooc eZdZy)"NamedTests.test_class..FooNrrrrrrFoor$2 rr&zope.interface.declarationsr! assertEqual__component_name__)rr!r&s r test_classzNamedTests.test_class/s85 u     //7rcdddlm}|dd}|j|jdy)Nrr r"ctNNotImplementedError)os rdoFooz'NamedTests.test_function..doFoo;s %' 'rr()rr!r3s r test_functionzNamedTests.test_function8s35 u (  ( 1159rcddlm}Gdd}|}|d||j|jdy)Nrr c eZdZy)%NamedTests.test_instance..FooNr%rrrr&r7D rr&r"r()rr!r&r"s r test_instancezNamedTests.test_instanceAs:5  ee S //7rN)rrrr,r4r9rrrrr-s8:8rrcHeZdZdZdZdZdZdZdZdZ dZ d Z d Z y ) EmptyDeclarationTestscddlm}|SNr) Declarationr)r>rr>s r _getEmptyzEmptyDeclarationTests._getEmptyPs ;}rcZ|j}|jt|gyr/)rAr*listrdecls rtest___iter___emptyz)EmptyDeclarationTests.test___iter___emptyTs"~~ dR(rcddlm}|j}|jt |j |gyNr Interface)zope.interface.interfacerJrAr*rC flattenedrrJrEs rtest_flattened_emptyz*EmptyDeclarationTests.test_flattened_emptyXs/6~~ dnn./)=rcTddlm}|j}|j||yrH)rKrJrA assertNotInrMs rtest___contains___emptyz-EmptyDeclarationTests.test___contains___empty]s!6~~ D)rcddlm}|j}|j|j ||j|j |dy)NrrITstrict)rKrJrA assertTrueextendsrMs rtest_extends_emptyz(EmptyDeclarationTests.test_extends_emptybs?6~~  Y/0  Yt <=rcz|j}t|j}|j|gyr/)rArC interfacesr*)rrEls rtest_interfaces_emptyz+EmptyDeclarationTests.test_interfaces_emptyhs/~~ " # Brclddlm}|j}|j|j||fyrH)rKrJrAr*__sro__rMs r test___sro___z#EmptyDeclarationTests.test___sro___ms*6~~ i'9:rcjddlm}|j}|j|j|fyrH)rKrJrAr*__iro__rMs r test___iro___z#EmptyDeclarationTests.test___iro___rs'6~~  |4rc|j}|j|jd|j|jddd|j |j y)Nattrabcdef)rA assertIsNonegetr* assertFalse_v_attrsrDs rtest_getzEmptyDeclarationTests.test_getwsT~~ $((6*+ %/7 'rc|j}t|_|j||j |jyr/)rAobjectrichangedrhrDs r test_changed_w_existing__v_attrsz6EmptyDeclarationTests.test_changed_w_existing__v_attrss5~~  T 'rN) rrrrArFrNrQrWr[r^rarjrnrrrr;r;Ls4)> * >  ; 5 ((rr;ceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZy)DeclarationTestscddlm}|Sr=r?r@s r_getTargetClassz DeclarationTests._getTargetClass ;rc.|j|i|Sr/rrrargskws r_makeOnezDeclarationTests._makeOne%t##%t2r22rcn|j}|jt|jgyr/)ryr*rC __bases__rDs rtest_ctor_no_basesz#DeclarationTests.test_ctor_no_basess&}} dnn-r2rcddlm}|d}|j|}|jt |j |gyNrInterfaceClassIFoo)rKrryr*rCr|rrrrEs rtest_ctor_w_interface_in_basesz/DeclarationTests.test_ctor_w_interface_in_basess8;f%}}T" dnn-v6rcddlm}|}|j|}|jt |j |gyNr Implements)r)rryr*rCr|)rrimplrEs rtest_ctor_w_implements_in_basesz0DeclarationTests.test_ctor_w_implements_in_basess5:|}}T" dnn-v6rc||j}|j||j|jyr/)ryrmrfrirDs r!test_changed_wo_existing__v_attrsz2DeclarationTests.test_changed_wo_existing__v_attrss+}} T $--(rcH|j}|j||yr/)ryrPrDs rtest___contains__w_selfz(DeclarationTests.test___contains__w_selfs}} t$rcdddlm}|d}|j}|j||yr)rKrryrPrs r"test___contains__w_unrelated_ifacez3DeclarationTests.test___contains__w_unrelated_ifaces*;f%}} t$rcfddlm}|d}|j|}|j||yr)rKrryassertInrs r!test___contains__w_base_interfacez2DeclarationTests.test___contains__w_base_interfaces+;f%}}T" dD!rczddlm}|d}|j|}|jt ||gyrrKrryr*rCrs rtest___iter___single_basez*DeclarationTests.test___iter___single_bases3;f%}}T" ddV,rcddlm}|d}|d}|j||}|jt |||gyNrrrIBarrrrrrrEs rtest___iter___multiple_basesz-DeclarationTests.test___iter___multiple_basessA;f%f%}}T4( ddD\2rcddlm}|d}|d|f}|j|}|jt ||gyrrrs rtest___iter___inheritancez*DeclarationTests.test___iter___inheritancesA;f%ftg.}}T" ddV,rcddlm}|d}|d}|j|||f}|jt |||gyrrrs r'test___iter___w_nested_sequence_overlapz8DeclarationTests.test___iter___w_nested_sequence_overlapsE;f%f%}}TD$<0 ddD\2rcddlm}ddlm}|d}|j|}|j t |j ||gy)NrrIrrrKrJrryr*rCrL)rrJrrrEs rtest_flattened_single_basez+DeclarationTests.test_flattened_single_basesA6;f%}}T" dnn./$ 1BCrcddlm}ddlm}|d}|d}|j||}|j t |j |||gyNrrIrrrrrrJrrrrEs rtest_flattened_multiple_basesz.DeclarationTests.test_flattened_multiple_basessO6;f%f%}}T4( dnn./$i1HIrcddlm}ddlm}|d}|d|f}|j|}|j t |j |||gyrrrs rtest_flattened_inheritancez+DeclarationTests.test_flattened_inheritancesQ6;f%ftg.}}T" dnn./$i1HIrcddlm}ddlm}|d}|d}|j|||f}|j t |j |||gyrrrs r(test_flattened_w_nested_sequence_overlapz9DeclarationTests.test_flattened_w_nested_sequence_overlapsU6;f%f% }}TD$<0 dnn./$i1HIrcddlm}|d}|d}|j|}||z }|j||j |j t ||gyrrKrryassertIsInstancerrr*rCrrrrbeforeafters r test___sub___unrelated_interfacez1DeclarationTests.test___sub___unrelated_interfaces_;f%f%t$  eT%9%9%;< etf-rcddlm}|d}|j|}||z }|jt |gyrr)rrrrrs rtest___sub___related_interfacez/DeclarationTests.test___sub___related_interfaces:;f%t$  eb)rcddlm}|d}|d|f}|j|}||z }|jt |gyrrrs r-test___sub___related_interface_by_inheritancez>DeclarationTests.test___sub___related_interface_by_inheritancesH;f%ftg.t$  eb)rcddlm}|d}|d}|j|}||z}|j||j |j t |||gyrrrs r test___add___unrelated_interfacez1DeclarationTests.test___add___unrelated_interface sa;f%f%t$  eT%9%9%;< etTl3rcddlm}|d}|d}|d}|j||}|j||}||z}|jt ||||gy)NrrrrIBazr)rrrrrrotherrs rtest___add___related_interfacez/DeclarationTests.test___add___related_interfacesg;f%f%f%tT* dD) etT4&89rcddlm}ddlm}ddlm}ddlm}|d}|d|f}||jjd5|j|}||z}ddd|jj|||f|j|j||f|jt|||gy#1swYdxYw) NrrIr C3SettingroIBaseIDerivedT)zope.interfacerJrKrzope.interface.tests.test_rorrC3 STRICT_IROryr*r`r|rC) rrJrrrrrbasers r"test___add___overlapping_interfacez3DeclarationTests.test___add___overlapping_interfaces -;:%w'!*uh7 ruu'' . $=='D8OE $ 5)(DE 8U*;< ex&78  $ $s CC cddlm}ddlm}ddlm}ddlm}ddlm}Gdd|}Gd d |}||Gd d }||jjd 5|||z} ddd|j j| |||f|j| j||f|jt| ||gy#1swYexYw)NrrI implementedBy implementerrrc eZdZy)PDeclarationTests.test___add___overlapping_interface_implementedBy..IBaseNr%rrrrr?r8rrc eZdZy)SDeclarationTests.test___add___overlapping_interface_implementedBy..IDerivedNr%rrrrrBr8rrc eZdZy)ODeclarationTests.test___add___overlapping_interface_implementedBy..BaseNr%rrrBaserEr'rrT) rrJrrrrrrrr*r]r|rC) rrJrrrrrrrrs r0test___add___overlapping_interface_implementedByzADeclarationTests.test___add___overlapping_interface_implementedBy4s -0.:% I  u  U     ruu'' . 3!$'(2E 3 %(KL 8U*;< ex&78  3 3s ' CC N)rrrrrryr}rrrrrrrrrrrrrrrrrrrrrrrrrprps~337 7 ) %% " - 3-3DJJ J.**4:9,9rrpcNeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z y ) TestImmutableDeclarationcddlm}|S)Nr)_ImmutableDeclaration)r)r)rrs rrrz(TestImmutableDeclaration._getTargetClassSs E$$rcddlm}|S)Nr)_empty)r)r)rrs rrAz"TestImmutableDeclaration._getEmptyWs 6 rcddl}|j|j|j}|j ||jy)Nr)pickleloadsdumpsrAassertIs)rrcopieds r test_picklez$TestImmutableDeclaration.test_pickle[s8fll4>>+;<= fdnn./rcj|j|j|jyr/)rrrrArs rtest_singletonz'TestImmutableDeclaration.test_singleton`s) "D " $ NN  rcX|j|jjdy)Nr)r*rAr|rs r test__bases__z&TestImmutableDeclaration.test__bases__fs )33R8rc|j}d|_|j|jjd|jt5d|_dddy#1swYyxYw)Nr))rAr|r* assertRaisesr)remptys rtest_change__bases__z-TestImmutableDeclaration.test_change__bases__is\  )33R8   y ) #"EO # # #s A((A1c|j}|j}|ji|d|d<|ji|jy)Nr)rA dependentsr*)rrdepss rtest_dependentsz(TestImmutableDeclaration.test_dependentsqsH  T"Q U--.rcB|jjdyr/)rArmrs r test_changedz%TestImmutableDeclaration.test_changedys   &rc |j|jj||j|jj|d|j|jj|dy)NTrSF)rhrArVrs rtest_extends_always_falsez2TestImmutableDeclaration.test_extends_always_false}sl )11$78 )11$t1DE )11$u1EFrc|j|jjd|j|jjdddy)Nname*)rfrArgr*rs rtest_get_always_defaultz0TestImmutableDeclaration.test_get_always_defaultsF $..*..v67 )--fb92>rc|j}|j|jid|jd<|j|ji|j|j dix}|_d|d<|j|ji|j|j dy)Nrrc)rAr*rirfrg)rrEattrss r test_v_attrsz%TestImmutableDeclaration.test_v_attrss~~ + " f + $((6*+ "" f  + $((6*+rN)rrrrrrArrrrrrrrrrrrrrQs:%0  9#/'G ? ,rrcHeZdZdZdZdZdZdZdZdZ dZ d Z d Z y ) TestImplementscddlm}|Sr)r)r)rrs rrrzTestImplements._getTargetClass :rc.|j|i|Sr/rurvs rryzTestImplements._makeOnerzrc2ddlm}Gdd}||S)Nrrc eZdZy)+TestImplements._makeOneToCompare..ANr%rrrArr8rrr)r)rrrs r_makeOneToComparez TestImplements._makeOneToCompares=  Qrc|j}|j|jd|j|jd|j|jd|jt |j gy)Nr?)ryr*inheritdeclaredrrCr|rrs rr}z!TestImplements.test_ctor_no_basessb}} t, + , dnn-r2rch|j}d|_|jt|dy)NTestingzclassImplements(Testing))ryrr*reprr s r test___repr__zTestImplements.test___repr__s)}}!  d%?@rctddlm}|j}|j|j |dfy)Nrrr/)r)rryr* __reduce__)rrrs rtest___reduce__zTestImplements.test___reduce__s,=}} *]G,DErctddlm}Gdd}Gdd}ddlm}|d}|j |||||j t ||t |||j ||dk|j d||kD|j ||||k|j |||kD|j ||||k|j |||k\|j |||k7y) Nrrc eZdZy)#TestImplements.test_sort..ANr%rrrrrr8rrc eZdZy)#TestImplements.test_sort..BNr%rrrBrr8rrrr)r)rrKrr*hashrU)rrrrrrs r test_sortzTestImplements.test_sorts=    ;f% q)=+;< mA./mA6F1GH  a(4/0 }Q//0  a(=+;;<  a(4/0  a(M!,<<=  a(D01  a(D01rcGdd}ddlm}Gdd}Gdd}||}||}||}|j||k(|j||k7|j||k7|j||k(|j||k(|j||k7|j||k7|j||k7|j||k7y) Nc$eZdZdZdZdZdZy)1TestImplements.test_proxy_equality..Proxyc||_yr/_wrapped)rwrappeds r__init__z:TestImplements.test_proxy_equality..Proxy.__init__s ' rctr/r0rrs r __getattr__z=TestImplements.test_proxy_equality..Proxy.__getattr__ )++rc |j|k(Sr/r rrs r__eq__z8TestImplements.test_proxy_equality..Proxy.__eq__}}--rc |j|k7Sr/r r)s r__ne__z8TestImplements.test_proxy_equality..Proxy.__ne__r+rN)rrrr#r&r*r-rrrProxyrs ( , . .rr.rrc eZdZy)-TestImplements.test_proxy_equality..ANr%rrrrr0r8rrc eZdZy)-TestImplements.test_proxy_equality..BNr%rrrrr2r8rr)r)rrUrh)rr.rrrimplementedByAimplementedByBproxys rtest_proxy_equalityz"TestImplements.test_proxy_equalitys . . >    'q)&q)n% .89 .89 .89 /0 %/0 .01 501 /0 %/0rch|j}|j|j|jd|jd|_|j d|j|j d|j|j|jd|jy)N _super_cacher)ryrfr8rP__dict__rrmr s r test_changed_deletes_super_cachez/TestImplements.test_changed_deletes_super_caches}} $++, 7 ndmm4 T $++, 7rc"|j}|j|j|jd|j|j d|j|j|jd|jy)Nr8)ryrfr8rPr9rmr s r%test_changed_does_not_add_super_cachez4TestImplements.test_changed_does_not_add_super_cachesi}} $++, 7 T $++, 7rN) rrrrrryrr}rrrr6r:r<rrrrrs73 3A F 2&&1P 88rrceZdZdZeZdZdZdZdZdZ dZ dZ d Z d Z d Zd Zd ZdZdZdZfdZfdZfdZfdZfdZfdZxZS)Test_implementedByFallbackcddlm}|S)Nr)implementedByFallback)r)r@)rr@s rrrz*Test_implementedByFallback._getTargetClass s E$$rc.|j|i|Sr/rurvs r_callFUTz#Test_implementedByFallback._callFUTrzrcGdd}|}d|_|jt|j|gy)NceZdZdZy)]Test_implementedByFallback.test_dictless_wo_existing_Implements_wo_registrations..Foo__implemented__Nrrr __slots__rrrr&rE,Irr&)rGr*rCrBrr&r"s r5test_dictless_wo_existing_Implements_wo_registrationszPTest_implementedByFallback.test_dictless_wo_existing_Implements_wo_registrationss9 - -e" dmmC0126rchGdd}|}|jt|j|y)Nc0eZdZdZdZeeeZdZy)hTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__..Fooctr/r0rs r _get_implzrTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__..Foo._get_implr'rctr/)r)rvals r _set_implzrTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__..Foo._set_implsrctr/r0rs r__call__zqTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__..Foo.__call__!s )++rN)rrrrQrTpropertyrGrVrrrr&rOs , &y).FoorFNrHrrrr&r^)rJrr&#BuiltinImplementationSpecifications)rr\rGrl _MonkeyDictrUrB)rr\r&r"regspecss r4test_dictless_wo_existing_Implements_w_registrationszOTest_implementedByFallback.test_dictless_wo_existing_Implements_w_registrations'sn/ - -e"h >@ 7CHE#J OODMM#.#5 6 7 7 7s (A&&A/cddlm}|}Gdd}|}||_|j|j ||uy)NrrceZdZdZy)KTest_implementedByFallback.test_dictless_w_existing_Implements..FoorFNrHrrrr&rf6rJrr&)r)rrGrUrB)rrrr&r"s r#test_dictless_w_existing_Implementsz>Test_implementedByFallback.test_dictless_w_existing_Implements3s?:| - -e"  c*d23rcddlm}Gdd}|}|d}|f|_|jt |j ||gy)NrrceZdZdZy)OTest_implementedByFallback.test_dictless_w_existing_not_Implements..FoorFNrHrrrr&rj>rJrr&r)rKrrGr*rCrB)rrr&r"rs r'test_dictless_w_existing_not_ImplementszBTest_implementedByFallback.test_dictless_w_existing_not_Implements<sJ; - -ef%#g dmmC01D6:rc|ddlm}|Gfdd}|j|j|uy)NrrceZdZWZy)JTest_implementedByFallback.test_w_existing_attr_as_Implements..FooNrrrrGrsrr&rnH"Orr&r)rrUrBrrr&rs @r"test_w_existing_attr_as_Implementsz=Test_implementedByFallback.test_w_existing_attr_as_ImplementsE1:| # #  c*d23rc ddlm}ddlm}t |d5}|j t |jtg|j t |jt g|j t |jtgtt tfD]B}||}|j|||j t|d|jdD dddy#1swYyxYw)Nrr[rr_zclassImplements()) rr\r)rr`r*rCrBtupledictrrr)rr\rrbtypspecs rtest_builtins_added_to_cachez7Test_implementedByFallback.test_builtins_added_to_cacheLs/: >@ 4CH   T$--"67 <   T$--"56 ;   T$--"56 ;tT* 4Sz%%dJ7  d$'LL"34 4 4 4 4s C!DD cddlm}ttt}}}t|d5}||t<||t <||t <|j|jt|u|j|jt |u|j|jt |udddy#1swYyxYw)Nrr[r_) rr\rlr`rxrCryrUrB)rr\t_specl_specd_specrbs rtest_builtins_w_existing_cachez9Test_implementedByFallback.test_builtins_w_existing_cache[s/!'68VX >@ ;CH!E%L E$K E$K OODMM%0F: ; OODMM$/69 : OODMM$/69 : ; ; ;s BCCclGdd}|jt|j|gy)Nc eZdZy)ITest_implementedByFallback.test_oldstyle_class_no_assertions..FooNr%rrrr&rir8rr&r*rCrBrr&s r!test_oldstyle_class_no_assertionsz.FooNr%rrrr&ror8rr&rrs rtest_no_assertionsz-Test_implementedByFallback.test_no_assertionsmrrchGdd}|}|jt|j|y)NceZdZdZy)HTest_implementedByFallback.test_w_None_no_bases_not_factory..FooNrorrrr&rt"Orr&rXrKs r test_w_None_no_bases_not_factoryz;Test_implementedByFallback.test_w_None_no_bases_not_factoryss) # #e )T]]C8rczddlm}Gdd}|}d|_|j|}|j |jd|j |j ||j |j||j |j||jd|jy)Nr)objectSpecificationDescriptorceZdZdZdZy)FTest_implementedByFallback.test_w_None_no_bases_w_factory..FooNctr/r0rs rrVzOTest_implementedByFallback.test_w_None_no_bases_w_factory..Foo.__call__}r'r)rrrrGrVrrrr&r{s "O ,rr&r"z*zope.interface.tests.test_declarations.foo __provides__) r)rrrBr*rr rG__providedBy__rPr9)rrr&r"r{s rtest_w_None_no_bases_w_factoryz9Test_implementedByFallback.test_w_None_no_bases_w_factoryysM , , e }}S! E G dllC( c))40 c((*GH 6rcddlm}Gdd}|j|}|j|jd|j |j ||j |j||j|j||j|j||j|j|jy)Nr ClassProvidesceZdZdZy)DTest_implementedByFallback.test_w_None_no_bases_w_class..FooNrorrrr&rrrr&z*zope.interface.tests.test_declarations.Foo) r)rrBr*rrr rGrrr)rrr&r{s rtest_w_None_no_bases_w_classz7Test_implementedByFallback.test_w_None_no_bases_w_classs= # #}}S! E G dllC( c))40 c00-@ c.. > ))3+=+=>rc|ddlm}|Gfdd}|j|j|uy)NrrceZdZWZy)BTest_implementedByFallback.test_w_existing_Implements..FooNrorpsrr&rrqrr&rrrss @rtest_w_existing_Implementsz5Test_implementedByFallback.test_w_existing_Implementsrurcfddlm}ddlm}Gdd|}Gdd|}||Gdd }||Gd d |}|j t |j |||gt||}|j t |j ||gy) NrrIrc eZdZy)STest_implementedByFallback.test_super_when_base_implements_interface..IBaseNr%rrrrrr8rrc eZdZy)VTest_implementedByFallback.test_super_when_base_implements_interface..IDerivedNr%rrrrrr8rrc eZdZy)RTest_implementedByFallback.test_super_when_base_implements_interface..BaseNr%rrrrrr'rrc eZdZy)UTest_implementedByFallback.test_super_when_base_implements_interface..DerivedNr%rrrDerivedrr'rrrrJr)rr*rCrBsuper rrJrrrrrsup __class__s r)test_super_when_base_implements_interfacezDTest_implementedByFallback.test_super_when_base_implements_interfaces,; I  u  U      X  d    dmmG45%7HIGW% dmmC01E7;rcddlm}ddlm}Gdd|}Gdd|}||Gdd }Gd d |}Gd d |}||Gdd||}|j t |j |||gt||} |j t |j | |gy)NrrIrc eZdZy)[Test_implementedByFallback.test_super_when_base_implements_interface_diamond..IBaseNr%rrrrrr8rrc eZdZy)^Test_implementedByFallback.test_super_when_base_implements_interface_diamond..IDerivedNr%rrrrrr8rrc eZdZy)ZTest_implementedByFallback.test_super_when_base_implements_interface_diamond..BaseNr%rrrrrr'rrc eZdZy)\Test_implementedByFallback.test_super_when_base_implements_interface_diamond..Child1Nr%rrrChild1rr8rrc eZdZy)\Test_implementedByFallback.test_super_when_base_implements_interface_diamond..Child2Nr%rrrChild2rr8rrc eZdZy)]Test_implementedByFallback.test_super_when_base_implements_interface_diamond..DerivedNr%rrrrrr'rrr) rrJrrrrrrrrrs r1test_super_when_base_implements_interface_diamondzLTest_implementedByFallback.test_super_when_base_implements_interface_diamonds,; I  u  U      T  T  X  ff    dmmG45%7HIGW% dmmC01E7;rcddlm}ddlm}Gdd|}Gdd|}Gdd }Gd d |}||Gd d |}||Gdd||}|j |j ||||t f|j t|j|||gt||} |j| } |j t| |g|j| jy)NrrIrc eZdZy)]Test_implementedByFallback.test_super_when_parent_implements_interface_diamond..IBaseNr%rrrrrr8rrc eZdZy)`Test_implementedByFallback.test_super_when_parent_implements_interface_diamond..IDerivedNr%rrrrrr8rrc eZdZy)\Test_implementedByFallback.test_super_when_parent_implements_interface_diamond..BaseNr%rrrrrr8rrc eZdZy)^Test_implementedByFallback.test_super_when_parent_implements_interface_diamond..Child1Nr%rrrrrr8rrc eZdZy)^Test_implementedByFallback.test_super_when_parent_implements_interface_diamond..Child2Nr%rrrrrr'rrc eZdZy)_Test_implementedByFallback.test_super_when_parent_implements_interface_diamond..DerivedNr%rrrrrr'rr) rrJr)rr*__mro__rlrCrBrrf _dependents) rrJrrrrrrrrfutrs r3test_super_when_parent_implements_interface_diamondzNTest_implementedByFallback.test_super_when_parent_implements_interface_diamonds,; I  u    T  U  T    X  ff    7FFD&*QR dmmG45%7HIGW%mmC  cUG, #//*rcLddlm}ddlm}Gdd|}Gdd|}Gdd }||Gd d |}|j t |j ||gt||}|j t |j |gy) NrrIrc eZdZy)YTest_implementedByFallback.test_super_when_base_doesnt_implement_interface..IBaseNr%rrrrrr8rrc eZdZy)\Test_implementedByFallback.test_super_when_base_doesnt_implement_interface..IDerivedNr%rrrrrr8rrc eZdZy)XTest_implementedByFallback.test_super_when_base_doesnt_implement_interface..BaseNr%rrrrrr8rrc eZdZy)[Test_implementedByFallback.test_super_when_base_doesnt_implement_interface..DerivedNr%rrrrrr'rrrrs r/test_super_when_base_doesnt_implement_interfacezJTest_implementedByFallback.test_super_when_base_doesnt_implement_interfaces,; I  u    X  d    dmmG45zBGW% dmmC0126rc6ddlm}ddlm}Gdd|}Gdd|}||Gdd }|j t |j ||gt||}|j t |j |gy) NrrIrc eZdZy)HTest_implementedByFallback.test_super_when_base_is_object..IBaseNr%rrrrr r8rrc eZdZy)KTest_implementedByFallback.test_super_when_base_is_object..IDerivedNr%rrrrr r8rrc eZdZy)JTest_implementedByFallback.test_super_when_base_is_object..DerivedNr%rrrrrr'rrr)rrJrrrrrrs rtest_super_when_base_is_objectz9Test_implementedByFallback.test_super_when_base_is_objects,; I  u  X      dmmG45zBGW% dmmC0126rcddlm}ddlm}Gdd|}Gdd|}Gdd |}Gd d |}Gd d |}||Gdd}||Gdd|} ||Gdd|} |||Gdd| | } | } t | | } t | | }t | | }|j t |j| |||||g|j t |j| |||g|j t |j|||g|j t |j||gy)NrrrIc eZdZy)RTest_implementedByFallback.test_super_multi_level_multi_inheritance..IBaseNr%rrrrrr8rrc eZdZy)PTest_implementedByFallback.test_super_multi_level_multi_inheritance..IM1Nr%rrrIM1rr8rrc eZdZy)PTest_implementedByFallback.test_super_multi_level_multi_inheritance..IM2Nr%rrrIM2r"r8rrc eZdZy)UTest_implementedByFallback.test_super_multi_level_multi_inheritance..IDerivedNr%rrrrr%r8rrc eZdZy)WTest_implementedByFallback.test_super_multi_level_multi_inheritance..IUnrelatedNr%rrr IUnrelatedr(r8rrc eZdZy)QTest_implementedByFallback.test_super_multi_level_multi_inheritance..BaseNr%rrrrr+r'rrc eZdZy)OTest_implementedByFallback.test_super_multi_level_multi_inheritance..M1Nr%rrrM1r/r'rrc eZdZy)OTest_implementedByFallback.test_super_multi_level_multi_inheritance..M2Nr%rrrM2r3r'rrc eZdZy)TTest_implementedByFallback.test_super_multi_level_multi_inheritance..DerivedNr%rrrrr7r'rrr)rrrJrr*rCrBrrrJrrrrrrrrrdsdsm1sm2rs r(test_super_multi_level_multi_inheritancezCTest_implementedByFallback.test_super_multi_level_multi_inheritances;, I  )  )  u    U      S      S      Xz * b"  +   7G $B B  dmmA./"JUC@ B dmmB/0uc* , dmmC01u ' dmmC01 "r)rrrrr_getFallbackClassrBrLrYrcrgrkrtr|rrrrrrrrrrrrr __classcell__rs@rr>r>s% (37 9 74;4 4 ;7 7 9 7" ?4<,<8+@7,7$/"/"rr>ceZdZdZy)Test_implementedBycddlm}|S)Nrrr)rrs rrrz"Test_implementedBy._getTargetClassN =rNrrrrrrrrr r Jsrr c0eZdZdZdZdedzdfdZdZy)_ImplementsTestMixinTctr/r0)rclsifaces rrBz_ImplementsTestMixin._callFUTVs!!rNz.Foo not givencHddlm}ddlm}|d}|j ||}|j |||j } ||j | ||j| j||dk(r|n|}|j | j||j |j | |jr^|j|j||j|j||j|j|j||fS)Nrrrrr)r)rrKrrBrrGr*rr FUT_SETS_PROVIDED_BYrrr) rr& orig_spec spec_namer rrrreturnedr{s r_check_implementerz'_ImplementsTestMixin._check_implementerZs >;f%==d+ h$""  MM$ * " $ K/#W dllG, c))40  $ $  ! !#"4"4m D  ! !#"2"2M B   S--s/A/A BDyrc:Gdd}|j|y)Nc eZdZy),_ImplementsTestMixin.test_class..FooNr%rrrr&rvr8rr&)rrs rr,z_ImplementsTestMixin.test_classus   $r)rrrrrBrr,rrrrrSs'" &*%-%6#.6%rrc(eZdZdZdZdZdZdZy)Test_classImplementsOnlyFc$ddlm}||||S)Nr)classImplementsOnly)r)r )rrrr s rrBz!Test_classImplementsOnly._callFUT}sCC' rcTddlm}ddlm}|d}|d}|||f_Gfdd}|_|j |||j|ju|jj d|jj|fy)NrrrrrceZdZWZy)@Test_classImplementsOnly.test_w_existing_Implements..FooNrorpsrr&r#rqrr&) r)rrKrr r rBrUrGr*rrrrrr&rs @rrz3Test_classImplementsOnly.test_w_existing_Implementss:;f%f%$  # #  c4  ++t34 t, 0rcddlm}ddlm}|d}||Gfdd}|j |ddy) NrrrrceZdZWZy)0Test_classImplementsOnly.test_class..FooNro)old_specsrr&r's&Orr&r r )r)rrKrr)rrrrr&r(s @rr,z#Test_classImplementsOnly.test_classs>:;f%d# ' ' XsDArc|jtdtfid\}}Gdd|}|j|||j |j |y)Nr&r)c eZdZy)RTest_classImplementsOnly.test_redundant_with_super_still_implements..ChildNr%rrrChildr,r8rr-)rtyperlrBrUr)rrrr-s r*test_redundant_with_super_still_implementszCTest_classImplementsOnly.test_redundant_with_super_still_implementss_--  2 &. e  D  eU# ++E23rN)rrrrrBrr,r/rrrrrzs  1 B 4rrc6eZdZdZdZdZdZdZdZdZ y) Test_classImplementscFddlm}|||}|j||S)NrclassImplements)r)r4rf)rrrr4results rrBzTest_classImplements._callFUTs$? e, &! rc|j|\}}Gdd|}|j||}|jd|j|j d|j|jd|j|j }|j |jd|j |j||j|j|y)Nc eZdZy)ATest_classImplements.__check_implementer_redundant..ChildNr%rrrr-r8r8rr-rGrrr) rrBrr9rPrGr*r r rU providedBy)rrrr-rr{s r__check_implementer_redundantz2Test_classImplements.__check_implementer_redundants--d3 e D ==. '):):; )8+<+<= nh&7&78$$ + u- ((12rc:Gdd}|j|y)Nc eZdZy)UTest_classImplements.test_redundant_implementer_empty_class_declarations..FooNr%rrrr&r=r8rr&)2_Test_classImplements__check_implementer_redundantrs r3test_redundant_implementer_empty_class_declarationszHTest_classImplements.test_redundant_implementer_empty_class_declarationss   **3/rcddlm}ddlm}ddlm}ddlm}Gdd}||j jd5|j|||jt|||gGd d |}|j|||jt|||gdddy#1swYyxYw) NrrIrrrc eZdZy)FTest_classImplements.test_redundant_implementer_Interface..FooNr%rrrr&rBr8rr&Fc eZdZy)FTest_classImplements.test_redundant_implementer_Interface..BazNr%rrrBazrDrrE) rrJrrrrrrrBr*rC)rrJrrrr&rEs r$test_redundant_implementer_Interfacez9Test_classImplements.test_redundant_implementer_Interfaces,0%:  ruu'' / D MM#y )   T-"45 { C c  MM#y )   T-"45 { C D D Ds A4B==Cc ||fSr/rr applied_firstapplied_seconds r_order_for_twoz#Test_classImplements._order_for_twos ~..rcpddlm}ddlm}|d}|d}|||f_Gfdd}|_|j |||j|j|jj ||jj|j||y)NrrrrrceZdZWZy).FooNrorpsrr&rOrqrr&) r)rrKrr r rBrrGr*rLr$s @rrz/Test_classImplements.test_w_existing_Implementss:;f%f%$  # #  c4  c))40 s+ ,,T48 :rcb ddlm}ddlm}|d}|d}|d|f}|j d| |f _G fdd }G fd d }|j d | |f _G fd d||}| _|j|||j|j |j j ||j j |j|||j j|j|| fzy)NrrrIRoot ISecondRoot IExtendsRootRootceZdZWZy)FTest_classImplements.test_w_existing_Implements_w_bases..Root1Nro impl_rootsrRoot1rV'OrrYceZdZWZy)FTest_classImplements.test_w_existing_Implements_w_bases..Root2NrorWsrRoot2r\rZrr] ExtendsRoot1ceZdZWZy)LTest_classImplements.test_w_existing_Implements_w_bases..ExtendsRootNro)impl_extends_rootsr ExtendsRootr`s/Orrb) r)rrKrr!r r rBrrGr*rLr|) rrrrQrRrSrYr]rbrarXs @@r"test_w_existing_Implements_w_basesz7Test_classImplements.test_w_existing_Implements_w_basess#:;w'$]3 %nuh? $$VU3 #X  ( ( ( (',,^\J&2_" 0% 0$/! k;/ k113DE *22K@ *33,,\;H J *44,,\;G9,V XrN) rrrrBr>r?rGrLrrcrrrr1r1s' 3&0 D&/:"Xrr1ceZdZdZdZy)Test_classImplementsFirstcFddlm}|||}|j||S)Nr)classImplementsFirst)r)rgrf)rrrrgr5s rrBz"Test_classImplementsFirst._callFUTs$D%c51 &! rc ||fSr/rrIs rrLz(Test_classImplementsFirst._order_for_twos  ..rN)rrrrBrLrrrreres  /rreceZdZdZdZy)Test__implements_advicecddlm}||i|S)Nr)_implements_advice)r)rl)rrwrxrls rrBz Test__implements_advice._callFUTB!4.2..rc4ddlmddlm}ddlm}|dGfdd}|j ||j d|j|j|j||jt|jgy) Nrr3rrrceZdZWfWfZy)@Test__implements_advice.test_no_existing_implements..FooN)rrr__implements_advice_data__)rr4srr&rp's+/'?)C &rr&rq) r)r4rrKrrBrPr9rrGr*rC)rrrr&rr4s @@rtest_no_existing_implementsz3Test__implements_advice.test_no_existing_implements"sv?:;f% D D c 5s||D c11:> c112TF;rN)rrrrBrrrrrrjrjs / .FooNr%rrrr&rEr8rr&z(zope.interface.tests.test_declarations.?) rKrryrUrGr*rrfr r)rrrr&r"rzrr{s rtest_nonclass_can_assign_attrz.Test_implementer.test_nonclass_can_assign_attrBs;f%  eMM$' S> C("" (RS $,,( c))40rc2ddl}ddlm}|d}t|j }t dD]}Gdd}|j || |jt|j }d}|j|||zy)Nrrrilc eZdZy)HTest_implementer.test_does_not_leak_on_unique_classes..TestClassNr%rrr TestClassr]rFrr) gcrKrlen get_objectsrangerBcollectassertLessEqual) rrrr begin_count_r end_count fudge_factors r$test_does_not_leak_on_unique_classesz5Test_implementer.test_does_not_leak_on_unique_classesPs ;f%"..*+ t +A   MM)T *  + ()   Y l(BCrN) rrrrrryrBr|rrrrrrtrt/s!3: 1Drrtc*eZdZdZdZdZdZdZy)Test_implementer_onlycddlm}|S)Nr)implementer_only)r)r)rrs rrrz%Test_implementer_only._getTargetClassqs @rc.|j|i|Sr/rurvs rryzTest_implementer_only._makeOneurzrc4|j|}||Sr/rx)rrrrzs rrBzTest_implementer_only._callFUTxsMM%( ~rcvddlm}|d}|j|}d}|jt||y)Nrrrctr/r0rrr _functionz6Test_implementer_only.test_function.._function %' 'r)rKrryr ValueError)rrrrzrs rr4z#Test_implementer_only.test_function|s4;f%MM$'  ( *i;rcddlm}|d}|j|}Gdd}|jt||j y)NrrrceZdZdZy).Test_implementer_only.test_method..Barctr/r0rs r_methodz6Test_implementer_only.test_method..Bar._methodr'rN)rrrrrrrBarrs ,rr)rKrryrrr)rrrrzrs r test_methodz!Test_implementer_only.test_methods?;f%MM$'  , , *i=rN)rrrrrryrBr4rrrrrros 3<>rrc0eZdZdZdZdZdZdZdZy)ProvidesClassTestscddlm}|SNr ProvidesClassr)rrrs rrrz"ProvidesClassTests._getTargetClassr rc.|j|i|Sr/rurvs rryzProvidesClassTests._makeOnerzrcddlm}|d}Gdd}|j||}|jt ||gy)Nrrrc eZdZy)?ProvidesClassTests.test_simple_class_one_interface..FooNr%rrrr&rr8rr&rrrrr&r{s rtest_simple_class_one_interfacez2ProvidesClassTests.test_simple_class_one_interfaces?;f%  }}S$' ddV,rcddlm}ddlm}|d}Gdd}|j ||}|j \}}|j |||j|||fy)NrProvidesrrc eZdZy)/ProvidesClassTests.test___reduce__..FooNr%rrrr&rr8rr&)r)rrKrryrrr*)rrrrr&r{klassrws rrz"ProvidesClassTests.test___reduce__s^8;f%  }}S$'oo' t eX& T{+rcddlm}|d}Gdd}|j||}||_|j |j|y)Nrrrc eZdZy)2ProvidesClassTests.test___get___class..FooNr%rrrr&rr8rr&rKrryrrrs rtest___get___classz%ProvidesClassTests.test___get___classsE;f%  }}S$' c&&-rcddlm}|d}Gdd|j|}|_fd}|j t |y)Nrrrc eZdZy)5ProvidesClassTests.test___get___instance..FooNr%rrrr&rr8rr&c*}|jSr/)r)r"r&s r_testz7ProvidesClassTests.test___get___instance.._tests%C## #r)rKrryrrAttributeError)rrrr{rr&s @rtest___get___instancez(ProvidesClassTests.test___get___instancesI;f%  }}S$' $ .%0rN) rrrrrryrrrrrrrrrs 3- ,. 1rrc$eZdZfdZdZxZS)ProvidesClassStrictTestsc@t|Gfdd}|S)NceZdZfdZy)@ProvidesClassStrictTests._getTargetClass..StrictProvidesc,j||dSNT) base_mrosrT_do_calculate_ro)rrrs rrzQProvidesClassStrictTests._getTargetClass..StrictProvides._do_calculate_ro$55diX\5]]rNrrrrrsrStrictProvidesr  ^rrrrr)rrrrs @rrrz(ProvidesClassStrictTests._getTargetClasss&/1  ^] ^rc ddlm}ddlm}ddlm}Gdd|}||Gdd}|j ||}|j |j |||||t|fy) NrrrIrc eZdZy)MProvidesClassStrictTests.test_overlapping_interfaces_corrected..IBaseNr%rrrrrr8rrc eZdZy)LProvidesClassStrictTests.test_overlapping_interfaces_corrected..BaseNr%rrrrrr'rr)rrrJrryr*r]rl)rrrJrrrr{s r%test_overlapping_interfaces_correctedz>ProvidesClassStrictTests.test_overlapping_interfaces_correcteds{ 1,. I  U     }}T5)   $   & !  (  rrrrrrrrrs@rrrs  rrcZeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd Zy)TestProvidesClassReprcddlm}|Srrrs rrrz%TestProvidesClassRepr._getTargetClassr rc.|j|i|Sr/rurvs rryzTestProvidesClassRepr._makeOnerzrc0ddlm}|d}|jdk(sJ|jtk(sJt |dj tk(sJ|d}|j t|||}|jt |dy)Nrrrzrz3directlyProvides(TestProvidesClassRepr, IFoo, IBar)) rKrrrrformatryr.r*)rrrrinsts r test__repr__z"TestProvidesClassRepr.test__repr__s;f%}}&&&(***Dz7>>xHHHHf%}}T$Zt4  J A rc^ddlm}|j}|jt |dy)NrdummyzIdirectlyProvides(sys.modules['zope.interface.tests.dummy'], IDummyModule))zope.interface.testsrrr*r)rrprovidess r'test__repr__module_provides_typical_usez=TestProvidesClassRepr.test__repr__module_provides_typical_uses* /%%  N W rcddl}ddlm}|j}t |j dzD]8}|j |j5|j||ddd:y#1swYExYw)Nrrr) rrrrrHIGHEST_PROTOCOLr PicklingErrorr)rrrrprotos rtest__repr__module_after_picklez5TestProvidesClassRepr.test__repr__module_after_picklesn.%%622Q67 .E""6#7#78 . Xu- . . . . .s A++A4 cZddl}ddlm}ddlm}ddlm}ddlm}|d}|d}|j}|`|jt|d|||||j} |jt| d ||||j} |jt| d |jt} t| drJ|| |||jt | d|j#| j| |jt| d y) NrrdirectlyProvides alsoProvidesrrrrzAdirectlyProvides(sys.modules['zope.interface.tests.dummy'], IFoo)zGdirectlyProvides(sys.modules['zope.interface.tests.dummy'], IFoo, IBar)zfdirectlyProvides(('zope.interface.tests.dummy', 'zope.interface.tests.test_declarations'), IFoo, IBar))sysrrr)rrrKrr addCleanupsetattrr*rmodulesrhasattrdelattrr) rrrrrrrr orig_providesr my_modules r#test__repr__directlyProvides_modulez9TestProvidesClassRepr.test__repr__directlyProvides_modules.@<;f%f%**    F%%%  N O UD!%%  N U KK) 9n555D$/ N; i,,h7  N  rcddlm}ddlm}|d}|j ||}|xj dz c_|xj dz c_|j t|dy)Nrr) ModuleTyper)z some.module)zanother.modulez9directlyProvides(('some.module', 'another.module'), IFoo))rKrr)rry_v_module_namesr*r)rrrrrs r)test__repr__module_provides_cached_sharedz?TestProvidesClassRepr.test__repr__module_provides_cached_shared=s^;:f%}}Z.  00  33  J G rcddlm}|dd}|dd}|d}|jt||||}|j t |dy) Nrrrmod1rmod2rz>directlyProvides(TestProvidesClassRepr, IFoo, IBaz, mod2.IFoo)rKrryr.r*rrrrIFoo2rrs rtest__repr__duplicate_namesz1TestProvidesClassRepr.test__repr__duplicate_namesJsW;f8v&9f%}}T$ZtU;  J L rcddlm}ddlm}Gdd|}Gdd}|t|}|j |||}|j t |dy) NrrIrceZdZdZy)KTestProvidesClassRepr.test__repr__implementedBy_in_interfaces..IFoo Does nothingNrrr__doc__rrrrrY rrceZdZdZy)JTestProvidesClassRepr.test__repr__implementedBy_in_interfaces..BarrNr rrrrr \r rrzCdirectlyProvides(Bar, IFoo, classImplements(TestProvidesClassRepr)))rrJrr.ryr*r)rrJrrrrrs r'test__repr__implementedBy_in_interfacesz=TestProvidesClassRepr.test__repr__implementedBy_in_interfacesVsX,0 9   T$Z(}}S$-  J Q rcn|jt|}|jt|dy)Nz'directlyProvides(TestProvidesClassRepr)ryr.r*rrrs rtest__repr__empty_interfacesz2TestProvidesClassRepr.test__repr__empty_interfacesgs,}}T$Z(  J 5 rcGfdd}j|}jt|dy)Nc"eZdZdZfdZdZy);TestProvidesClassRepr.test__repr__non_class..Objectrc&jdS)NzShould not call str)r)rrs rzDTestProvidesClassRepr.test__repr__non_class..Object.qs *? @rcy)Nzrrs r__repr__zDTestProvidesClassRepr.test__repr__non_class..Object.__repr__ss!rN)rrrr|__str__rrsrObjectrosI@G "rrzdirectlyProvides())ryr*r)rrrs` rtest__repr__non_classz+TestProvidesClassRepr.test__repr__non_classns7 " " }}VX&  J ( rcddlm}ddlm}ddlm}|d}||Gdd}||}|j t |dy) Nrrr9rrc eZdZy)DTestProvidesClassRepr.test__repr__providedBy_from_class..FooNr%rrrr&r r'rr&classImplements(Foo, IFoo))r)rr9rKrr*r)rrr9rrr&rs r!test__repr__providedBy_from_classz7TestProvidesClassRepr.test__repr__providedBy_from_class{sW;:;f% T     #%   J ( rcddlm}ddlm}ddlm}ddlm}|d}|d}||Gdd }|}|||||} |j t| d y) Nrrrrrrrc eZdZy)FTestProvidesClassRepr.test__repr__providedBy_alsoProvides..FooNr%rrrr&r%r'rr&z7directlyProvides(Foo, IBar, classImplements(Foo, IFoo)))r)rr9rrKrr*r) rrr9rrrrr&r"rs r#test__repr__providedBy_alsoProvidesz9TestProvidesClassRepr.test__repr__providedBy_alsoProvidessr;:<;f%f% T     eS$#  J E rN)rrrrrryrrrrrrrrrr"r&rrrrrsD3   .+ Z     "     rrceZdZdZdZdZy) Test_Providescddlm}||i|S)Nrr)r)r)rrwrxrs rrBzTest_Provides._callFUTs8$$$rcddlm}ddlm}|d}i}Gdd}t ||5|j ||}ddd|j t|g|j|||f|uy#1swY>xYw)Nrr[rrc eZdZy).Test_Provides.test_no_cached_spec..FooNr%rrrr&r,r8rr&InstanceDeclarations) rr\rKr_MonkeyrBr*rCrU)rr\rrcacher&r{s rtest_no_cached_specz!Test_Provides.test_no_cached_specs/;f%   \ > ,==d+D , ddV, sDk*d23 , ,s A>>Bcddlm}ddlm}|d}t }Gdd}||f|i}t ||5|j ||}ddd|j|uy#1swYxYw)Nrr[rrc eZdZy)-Test_Provides.test_w_cached_spec..FooNr%rrrr&r4r8rr&r-)rr\rKrrlr/rBrU)rr\rrpriorr&r0r{s rtest_w_cached_specz Test_Provides.test_w_cached_specsp/;f%  te$ \ > ,==d+D ,  & , ,s A++A4N)rrrrBr1r6rrrr(r(s% 4 'rr(c$eZdZdZdZdZdZy)Test_directlyProvidescddlm}||i|S)Nrr)r)r)rrwrxrs rrBzTest_directlyProvides._callFUT@,,,rcddlm}ddlm}|d}Gdd}|}|j |||j |j ||jt|j |gy)Nrrrrc eZdZy)7Test_directlyProvides.test_w_normal_object..FooNr%rrrr&r=r8rr& r)rrKrrBrrr*rCrrrrr&objs rtest_w_normal_objectz*Test_directlyProvides.test_w_normal_objectd=;f%  e c4  c.. > c../$8rcddlm}ddlm}|d}Gdd}|j |||j |j ||jt|j |gy)Nrrrrc eZdZy)/Test_directlyProvides.test_w_class..FooNr%rrrr&rEr8rr&) r)rrKrrBrrr*rCrrrrr&s r test_w_classz"Test_directlyProvides.test_w_classs]=;f%   c4  c.. > c../$8rcddlm}ddlm}|d}iGfdd}|}|j |||j d||j td|gy)NrrrrceZdZdZfdZy):Test_directlyProvides.test_w_classless_object..Fooc$|dk(ryt|Nrr0r%s r__getattribute__zKTest_directlyProvides.test_w_classless_object..Foo.__getattribute__s;&)$//rc||<yr/r)rrvaluethe_dicts r __setattr__zFTest_directlyProvides.test_w_classless_object..Foo.__setattr__s !&rNrrrrMrQrPsrr&rJs  0  'rr&r)r)rrKrrBrr*rC)rrrrr&r@rPs @rtest_w_classless_objectz-Test_directlyProvides.test_w_classless_objectsj=;f% ' 'e c4  h~6 F h~67$@rN)rrrrBrArGrTrrrr8r8s- 99Arr8ceZdZdZdZdZy)Test_alsoProvidescddlm}||i|S)Nrr)r)r)rrwrxrs rrBzTest_alsoProvides._callFUTs<T(R((rcddlm}ddlm}|d}Gdd}|}|j |||j |j ||jt|j |gy)Nrrrrc eZdZy)8Test_alsoProvides.test_wo_existing_provides..FooNr%rrrr&rZr8rr&r>r?s rtest_wo_existing_providesz+Test_alsoProvides.test_wo_existing_providesrBrc&ddlm}ddlm}ddlm}|d}|d}Gdd}|}||||j |||j |j||jt|j||gy) Nrrrrrrc eZdZy)7Test_alsoProvides.test_w_existing_provides..FooNr%rrrr&r^r8rr&) r)rrrKrrBrrr*rC)rrrrrrr&r@s rtest_w_existing_providesz*Test_alsoProvides.test_w_existing_providess}@=;f%f%  ed# c4  c.. > c../$>rN)rrrrBr[r_rrrrVrVs) 9 ?rrVc*eZdZdZdZdZdZdZy)Test_noLongerProvidescddlm}||i|S)Nr)noLongerProvides)r)rc)rrwrxrcs rrBzTest_noLongerProvides._callFUTr:rcddlm}|d}Gdd}|}|j|||jt |j gy)Nrrrc eZdZy).FooNr%rrrr&rfr8rr&)rKrrBr*rCr)rrrr&r@s rr[z/Test_noLongerProvides.test_wo_existing_providessI;f%  e c4  c../4rcddlm}ddlm}|d}Gdd}|}||||j |||j t |jgy)Nrrrrc eZdZy)?Test_noLongerProvides.test_w_existing_provides_hit..FooNr%rrrr&ri"r8rr&r)rrKrrBr*rCr)rrrrr&r@s rtest_w_existing_provides_hitz2Test_noLongerProvides.test_w_existing_provides_hitsV@;f%  ed# c4  c../4rcddlm}ddlm}|d}|d}Gdd}|}||||j |||j t |j|gy)Nrrrrrc eZdZy)@Test_noLongerProvides.test_w_existing_provides_miss..FooNr%rrrr&rn.r8rr&rj)rrrrrr&r@s rtest_w_existing_provides_missz3Test_noLongerProvides.test_w_existing_provides_miss)sb@;f%f%  ed# c4  c../$8rcddlm}ddlm}|d}||Gdd}|}|j t |j ||y)Nrrrrc eZdZy)DTest_noLongerProvides.test_w_iface_implemented_by_class..FooNr%rrrr&rr9r'rr&)r)rrKrrrrB)rrrrr&r@s r!test_w_iface_implemented_by_classz7Test_noLongerProvides.test_w_iface_implemented_by_class5sM;;f% T     e *dmmS$?rN)rrrrBr[rkrorsrrrraras-5 5 9@rrac*eZdZdZdZdZdZdZy)ClassProvidesBaseFallbackTestscddlm}|SNr)ClassProvidesBaseFallbackr)rxrrxs rrrz.ClassProvidesBaseFallbackTests._getTargetClassB I((rcFGdd|j}|||S)NceZdZdZy)8ClassProvidesBaseFallbackTests._makeOne..Derivedc ||_||_yr/)_cls _implements)rkis rr#zAClassProvidesBaseFallbackTests._makeOne..Derived.__init__Ks #$ rN)rrrr#rrrrr~Js %rrru)rr implementsrs rryz'ClassProvidesBaseFallbackTests._makeOneGs& %d**, %uj))rcddlm}|d}Gdd}|j||x}|_|j |j|uy)Nrrrc eZdZy)GClassProvidesBaseFallbackTests.test_w_same_class_via_class..FooNr%rrrr&rSr8rr&)rKrryrrU)rrrr&cpbps rtest_w_same_class_via_classz:ClassProvidesBaseFallbackTests.test_w_same_class_via_classPsH;f%  "&--T"::s ((D01rcddlm}|d}Gdd}|}|j|||_|j |j|y)Nrrrc eZdZy)JClassProvidesBaseFallbackTests.test_w_same_class_via_instance..FooNr%rrrr&r[r8rr&r)rrrr&r"s rtest_w_same_class_via_instancez=ClassProvidesBaseFallbackTests.test_w_same_class_via_instanceXsG;f%  e==d3 c&&-rcddlm}|d}Gdd}Gdd|}|}|j|||_|j t t |d|j t t |dy) Nrrrc eZdZy)BClassProvidesBaseFallbackTests.test_w_different_class..FooNr%rrrr&rdr8rr&c eZdZy)BClassProvidesBaseFallbackTests.test_w_different_class..BarNr%rrrrrfr8rrr)rKrryrrrgetattr)rrrr&rbars rtest_w_different_classz5ClassProvidesBaseFallbackTests.test_w_different_classasg;f%   # e==d3 .'3G .'3GrN)rrrrrryrrrrrrruru@s) *2. HrruceZdZdZdZy)ClassProvidesBaseTestscddlm}|S)Nr)ClassProvidesBase)r)r)rrs rrrz&ClassProvidesBaseTests._getTargetClassrs A  rcddlm}|Srwryrzs rrz(ClassProvidesBaseTests._getFallbackClassvr{rN)rrrrrrrrrrrns !)rrc$eZdZdZdZdZdZy)ClassProvidesTestscddlm}|SNrrr)rrrs rrrz"ClassProvidesTests._getTargetClass~r rc.|j|i|Sr/rurvs rryzClassProvidesTests._makeOnerzrc<ddlm}ddlm}|d}|d}||Gdd}|j |t ||x}|_|j|j |u|jt|j |gy)Nrrrrrc eZdZy)7ClassProvidesTests.test_w_simple_metaclass..FooNr%rrrr&rr'rr&) r)rrKrryr.rrUr*rCrrrrrr&cps rtest_w_simple_metaclassz*ClassProvidesTests.test_w_simple_metaclasss;;f%f% T      $ c49d CCS  ((B./ ce001D6:rcddlm}ddlm}|d}|d}||Gdd}|j |t ||x}|_|j|jt ||t ||ffy)Nrrrrrc eZdZy)/ClassProvidesTests.test___reduce__..FooNr%rrrr&rr'rr&) r)rrKrryr.rr*rrs rrz"ClassProvidesTests.test___reduce__s;;f%f% T      $ c49d CCS  r(S$s)T$:; =rN)rrrrrryrrrrrrr|s3 ; =rrc$eZdZfdZdZxZS)ClassProvidesStrictTestsc@t|Gfdd}|S)NceZdZfdZy)EClassProvidesStrictTests._getTargetClass..StrictClassProvidesc,j||dSrr)rrrs rrzVClassProvidesStrictTests._getTargetClass..StrictClassProvides._do_calculate_rorrNrrsrStrictClassProvidesrrrrr)rrrrs @rrrz(ClassProvidesStrictTests._getTargetClasss&/1  ^- ^#"rc .ddlm}ddlm}ddlm}Gdd|}||Gddt}|d t fi}|j |||}|j|j|||||t|t |fy) NrrrIrc eZdZy)MClassProvidesStrictTests.test_overlapping_interfaces_corrected..IBaseNr%rrrrrr8rrc eZdZy)QClassProvidesStrictTests.test_overlapping_interfaces_corrected..metaclassNr%rrr metaclassrr'rrr) rrrJrr.rlryr*r])rrrJrrrrr{s rrz>ClassProvidesStrictTests.test_overlapping_interfaces_correcteds 1,. I  U       I   }}S)U3   ) $  $  & !  (  rrrs@rrrs # rrc6eZdZdZdZdZdZdZdZdZ y) TestClassProvidesReprcddlm}|Srrrs rrrz%TestClassProvidesRepr._getTargetClassr rc.|j|i|Sr/rurvs rryzTestClassProvidesRepr._makeOnerzrcx|jt|t}|jt|dy)Nz'directlyProvides(TestClassProvidesRepr)rrs rtest__repr__emptyz'TestClassProvidesRepr.test__repr__emptys.}}T$Z.  J 5 rcddlm}Gdd|}|jt|t|}|j t |dy)NrrIceZdZdZy)=TestClassProvidesRepr.test__repr__providing_one..IFoorNr rrrrrr rrz-directlyProvides(TestClassProvidesRepr, IFoo))rrJryr.r*r)rrJrrs rtest__repr__providing_onez/TestClassProvidesRepr.test__repr__providing_onesA, 9 }}T$Zt4  J ; rcddlm}|dd}|dd}|d}|jt|t|||}|j t |dy) Nrrrrrrrz>directlyProvides(TestClassProvidesRepr, IFoo, IBaz, mod2.IFoo)rrs rrz1TestClassProvidesRepr.test__repr__duplicate_namessY;f8v&9f%}}T$ZtT5A  J L rcddlm}ddlm}ddlm}|d}||Gdd}||}|j t |dy) Nrrrrrc eZdZy).FooNr%rrrr&rr'rr&r!)r)rrrKrr*r)rrrrrr&rs rtest__repr__implementedByz/TestClassProvidesRepr.test__repr__implementedBysU;=;f% T     S!  J ( rcddlm}Gdd}||}|jt|dj t |}d|_||}|jt|dy)NrrceZdZdZy)RTestClassProvidesRepr.test__repr__implementedBy_generic_callable..Callablec|Sr/rrs rrVz[TestClassProvidesRepr.test__repr__implementedBy_generic_callable..Callable.__call__s rN)rrrrVrrrCallablers rrzclassImplements({}.?)zclassImplements(Callable))r)rr*rrr)rrrrcs r*test__repr__implementedBy_generic_callablez@TestClassProvidesRepr.test__repr__implementedBy_generic_callablesr=  XZ(  J # * *8 4 J Q  J ' rN) rrrrrryrrrrrrrrrrs%3       rrc*eZdZdZdZdZdZdZy)Test_directlyProvidedBycddlm}||i|S)Nr)directlyProvidedBy)r)r)rrwrxrs rrBz Test_directlyProvidedBy._callFUTrmrczGdd}|}|jt|j|gy)Nc eZdZy)NTest_directlyProvidedBy.test_wo_declarations_in_class_or_instance..FooNr%rrrr&rr8rr&rrKs r)test_wo_declarations_in_class_or_instancezATest_directlyProvidedBy.test_wo_declarations_in_class_or_instances1  e dmmC0126rcddlm}ddlm}|d}||Gdd}|}|j t |j |gy)Nrrrrc eZdZy)RTest_directlyProvidedBy.test_w_declarations_in_class_but_not_instance..FooNr%rrrr&r%r'rr&)r)rrKrr*rCrB)rrrrr&r"s r-test_w_declarations_in_class_but_not_instancezETest_directlyProvidedBy.test_w_declarations_in_class_but_not_instance!sS;;f% T     e dmmC0126rcddlm}ddlm}|d}Gdd}|}||||j t |j ||gy)Nrrrrc eZdZy)RTest_directlyProvidedBy.test_w_declarations_in_instance_but_not_class..FooNr%rrrr&r/r8rr&)r)rrKrr*rCrB)rrrrr&r"s r-test_w_declarations_in_instance_but_not_classzETest_directlyProvidedBy.test_w_declarations_in_instance_but_not_class+sM@;f%  ed# dmmC01D6:rcddlm}ddlm}ddlm}|d}|d}||Gdd}|}||||j t |j||gy) Nrrrrrrc eZdZy)NTest_directlyProvidedBy.test_w_declarations_in_instance_and_class..FooNr%rrrr&r;r'rr&)r)rrrKrr*rCrB)rrrrrrr&r"s r)test_w_declarations_in_instance_and_classzATest_directlyProvidedBy.test_w_declarations_in_instance_and_class5sl@;;f%f% T     ed# dmmC01D6:rN)rrrrBrrrrrrrrrs/7 7; ;rrceZdZdZdZdZy) Test_providercddlm}|S)Nr)provider)r)r)rrs rrrzTest_provider._getTargetClassEs 8rc.|j|i|Sr/rurvs rryzTest_provider._makeOneIrzrcddlm}ddlm}|d}|j |Gdd}|j |j ||jt|j |gy)Nrrrrc eZdZy)'Test_provider.test_w_class..FooNr%rrrr&rPr'rr&) r)rrKrryrrr*rCrFs rrGzTest_provider.test_w_classLse=;f% t      c.. > c../$8rN)rrrrrryrGrrrrrCs39rrc$eZdZdZdZdZdZy)Test_moduleProvidescddlm}ddlm}|d}d||d}i}dj dd g}t ||||d }|j t|y) NrmoduleProvidesrrzope.interface.tests.foorrr z def foo(): moduleProvides(IFoo)r")r)rrKrjoinr rr)rrrrrrCODEr"s rtest_called_from_functionz-Test_moduleProvides.test_called_from_functionZsg>;f%7#14Ayy  & T5$5k )S)rcddlm}ddlm}|d}d||d}i}dj dd g}|j t 5t|||dddy#1swYyxYw) Nrrrrrrrzclass Foo(object):rr)rrKrrrrr )rrrrrrrs rtest_called_from_classz*Test_moduleProvides.test_called_from_classisq>;f%7#14Ayy &  y ) $ ud # $ $ $s AA%cddlm}ddlm}|d}d||d}dj dg}t |||d }|j t||gy) NrrrrrrrmoduleProvides(IFoo)r)r)rrKrrr r*rC)rrrrrrr{s r"test_called_once_from_module_scopez6Test_moduleProvides.test_called_once_from_module_scopewsd>;f%7#14Ayy " T5^$ ddV,rcddlm}ddlm}|d}d||d}dj ddg}|j t 5t||dddy#1swYyxYw) Nrrrrrrrrr)rrrrrrs r#test_called_twice_from_module_scopez7Test_moduleProvides.test_called_twice_from_module_scopesl>;f%7#14Ayy " "  y )  u    s  AA"N)rrrrrrrrrrrrWs * $ - rrcXeZdZdZeZdZdZdZdZdZ dZ dZ d Z d Z d Zd Zy )#Test_getObjectSpecificationFallbackcddlm}|S)Nr)getObjectSpecificationFallback)r)r)rrs rrz5Test_getObjectSpecificationFallback._getFallbackClasss N--rc.|j|i|Sr/rurvs rrBz,Test_getObjectSpecificationFallback._callFUTrzrciGfdd}|}|j|}|jt|gy)NceZdZfdZdZy)TTest_getObjectSpecificationFallback.test_wo_existing_provides_classless..Fooc`|dk(r t| |S#t$r t|wxYwrL)rKeyError)rrrPs rrMzeTest_getObjectSpecificationFallback.test_wo_existing_provides_classless..Foo.__getattribute__s?;&(../#D>)/(../s-ctr/r0)rrrOs rrQz`Test_getObjectSpecificationFallback.test_wo_existing_provides_classless..Foo.__setattr__r'rNrRrSsrr&rs  / ,rr&rBr*rC)rr&r"r{rPs @r#test_wo_existing_provides_classlesszGTest_getObjectSpecificationFallback.test_wo_existing_provides_classlesss= , ,e}}S! dR(rcddlm}ddlm}|d}d}||||j |}|j ||j y)Nrrrrctr/r0rrrr"zOTest_getObjectSpecificationFallback.test_existing_provides_is_spec..foorr)r)rrKrrBrr)rrrrr"r{s rtest_existing_provides_is_speczBTest_getObjectSpecificationFallback.test_existing_provides_is_specsC@;f% (d#}}S! dC,,-rcd}t|_|j|}|jt |gy)Nctr/r0rrrr"zSTest_getObjectSpecificationFallback.test_existing_provides_is_not_spec..foorr)rlrrBr*rC)rr"r{s r"test_existing_provides_is_not_speczFTest_getObjectSpecificationFallback.test_existing_provides_is_not_specs3 (!8}}S! dR(rcddlm}ddlm}|d}Gdd}|}||||j |}|j t ||gy)Nrrrrc eZdZy)GTest_getObjectSpecificationFallback.test_existing_provides..FooNr%rrrr&rr8rr&)r)rrKrrBr*rC)rrrrr&r"r{s rtest_existing_providesz:Test_getObjectSpecificationFallback.test_existing_providessQ@;f%  ed#}}S! ddV,rcddlm}ddlm}|d}||Gdd}|}|j |}|j t ||gy)Nrrrrc eZdZy)WTest_getObjectSpecificationFallback.test_wo_provides_on_class_w_implements..FooNr%rrrr&rr'rr&)r)rrKrrBr*rCrrrrr&r"r{s r&test_wo_provides_on_class_w_implementszJTest_getObjectSpecificationFallback.test_wo_provides_on_class_w_implementssY;;f% T     e}}S! ddV,rc~Gdd}|}|j|}|jt|gy)Nc eZdZy)XTest_getObjectSpecificationFallback.test_wo_provides_on_class_wo_implements..FooNr%rrrr&rr8rr&r rr&r"r{s r'test_wo_provides_on_class_wo_implementszKTest_getObjectSpecificationFallback.test_wo_provides_on_class_wo_implements5  e}}S! dR(rcHtj||jdy)Nrexpected_missingr test_raisesrBrs r,test_catches_only_AttributeError_on_provideszPTest_getObjectSpecificationFallback.test_catches_only_AttributeError_on_providess$$T4==>ZrcJtj||jddy)Nr)r"rr#rs r)test_catches_only_AttributeError_on_classzMTest_getObjectSpecificationFallback.test_catches_only_AttributeError_on_classs$$T4==;26 8rcDGdd}|j|y)NceZdZeeZy)yTest_getObjectSpecificationFallback.test_raises_AttributeError_when_provides_fails_type_check_AttributeError..FooN)rrrrrrrrrr&r*s +N;Lrr&)rBrs rHtest_raises_AttributeError_when_provides_fails_type_check_AttributeErrorzlTest_getObjectSpecificationFallback.test_raises_AttributeError_when_provides_fails_type_check_AttributeErrors < < cercGdd}|jt5}|j|ddd|jdjj dy#1swY3xYw)NceZdZeeZy)wTest_getObjectSpecificationFallback.test_raises_AttributeError_when_provides_fails_type_check_RuntimeError..FooN)rrrr RuntimeErrorrrrrr&r.s +L9Lrr&rr)rr/rBr* exceptionrw)rr&excs rFtest_raises_AttributeError_when_provides_fails_type_check_RuntimeErrorzjTest_getObjectSpecificationFallback.test_raises_AttributeError_when_provides_fails_type_check_RuntimeErrorsb : :  | , ! MM#%  ! cmm&8&8&;< ! !s A))A2N)rrrrrrrBr r rrrrr%r'r+r2rrrrrsF. (O3)".) - -)[8 =rrceZdZdZy)Test_getObjectSpecificationcddlm}|S)Nr)getObjectSpecification)r)r6)rr6s rrrz+Test_getObjectSpecification._getTargetClasss F%%rNr rrrr4r4s&rr4ceZdZdZeZdZdZdZdZdZ dZ dZ d Z fd Z fd Zfd Zfd ZfdZdZdZxZS)Test_providedByFallbackcddlm}|S)Nr)providedByFallback)r)r:)rr:s rrz)Test_providedByFallback._getFallbackClasss B!!rc.|j|i|Sr/rurvs rrBz Test_providedByFallback._callFUT rzrc~Gdd}|}|j|}|jt|gy)Nc eZdZy)NTest_providedByFallback.test_wo_providedBy_on_class_wo_implements..FooNr%rrrr&r>r8rr&r rs r)test_wo_providedBy_on_class_wo_implementszATest_providedByFallback.test_wo_providedBy_on_class_wo_implementsrrcddlm}ddlm}|d}Gdd}|}||||_|j |}|j t||gy)Nrrrrc eZdZy)ATest_providedByFallback.test_w_providedBy_valid_spec..FooNr%rrrr&rBr8rr&)r)rrKrrrBr*rC)rrrrr&r"r{s rtest_w_providedBy_valid_specz4Test_providedByFallback.test_w_providedBy_valid_specsV8;f%  e%c40}}S! ddV,rcGdd}|}t|_|j|}|jt |gy)Nc eZdZy)CTest_providedByFallback.test_w_providedBy_invalid_spec..FooNr%rrrr&rF#r8rr&)rlrrBr*rCrs rtest_w_providedBy_invalid_specz6Test_providedByFallback.test_w_providedBy_invalid_spec"s?  e#X}}S! dR(rcddlm}ddlm}|d}||Gdd}|}t |_|j |}|jt||gy)Nrrrrc eZdZy)VTest_providedByFallback.test_w_providedBy_invalid_spec_class_w_implements..FooNr%rrrr&rJ.r'rr&) r)rrKrrlrrBr*rCrs r1test_w_providedBy_invalid_spec_class_w_implementszITest_providedByFallback.test_w_providedBy_invalid_spec_class_w_implements*sc;;f% T     e#X}}S! ddV,rcGdd}|}t|_tx}|_|j|}|j ||uy)Nc eZdZy)cTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_no_provides_on_class..FooNr%rrrr&rN7r8rr&rlrrrBrUrr&r"expectedr{s r>test_w_providedBy_invalid_spec_w_provides_no_provides_on_classzVTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_no_provides_on_class6sK  e#X&,h.3#}}S! ()rcGdd}|}t|_tx}|_t|_|j|}|j ||uy)Nc eZdZy)eTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_diff_provides_on_class..FooNr%rrrr&rU@r8rr&rOrPs r@test_w_providedBy_invalid_spec_w_provides_diff_provides_on_classzXTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_diff_provides_on_class?sU  e#X&,h.3#!8}}S! ()rcddlm}ddlm}|d}||Gdd}|}t |_t x|_|_|j|}|jt||gy)Nrrrrc eZdZy)eTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_same_provides_on_class..FooNr%rrrr&rYMr'rr&) r)rrKrrlrrrBr*rCrs r@test_w_providedBy_invalid_spec_w_provides_same_provides_on_classzXTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_same_provides_on_classIsu;;f% T     e#X.4h63+}}S! ddV,rcddlm}ddlm}Gdd|}Gdd|}||Gdd }||Gd d |}|}|j t |j |||gt||}|j |} |j| j|j t | |gy) NrrIrc eZdZy)PTest_providedByFallback.test_super_when_base_implements_interface..IBaseNr%rrrrr]Zr8rrc eZdZy)STest_providedByFallback.test_super_when_base_implements_interface..IDerivedNr%rrrrr_]r8rrc eZdZy)OTest_providedByFallback.test_super_when_base_implements_interface..BaseNr%rrrrra`r'rrc eZdZy)RTest_providedByFallback.test_super_when_base_implements_interface..DerivedNr%rrrrrcdr'rr rrJr)rr*rCrBrrfr) rrJrrrrrderivedrrrs rrzATest_providedByFallback.test_super_when_base_implements_interfaceVs,; I  u  U      X  d   ) dmmG45%7HIGW%mmC  #//* cUG,rcZddlm}ddlm}Gdd|}Gdd|}Gdd }||Gd d |}|}|j t |j ||gt||}|j t |j |gy) NrrIrc eZdZy)VTest_providedByFallback.test_super_when_base_doesnt_implement_interface..IBaseNr%rrrrrhtr8rrc eZdZy)YTest_providedByFallback.test_super_when_base_doesnt_implement_interface..IDerivedNr%rrrrrjwr8rrc eZdZy)UTest_providedByFallback.test_super_when_base_doesnt_implement_interface..BaseNr%rrrrrlzr8rrc eZdZy)XTest_providedByFallback.test_super_when_base_doesnt_implement_interface..DerivedNr%rrrrrn}r'rrr) rrJrrrrrrerrs rrzGTest_providedByFallback.test_super_when_base_doesnt_implement_interfaceps,; I  u    X  d   ) dmmG45zBGW% dmmC0126rc~ddlm}ddlm}Gdd|}Gdd|}||Gdd }|}|j t |j ||gt||}|j |}|j|j|j t |gy) NrrIrc eZdZy)ETest_providedByFallback.test_super_when_base_is_object..IBaseNr%rrrrrqr8rrc eZdZy)HTest_providedByFallback.test_super_when_base_is_object..IDerivedNr%rrrrrsr8rrc eZdZy)GTest_providedByFallback.test_super_when_base_is_object..DerivedNr%rrrrrur'rrrd) rrJrrrrrerrrs rrz6Test_providedByFallback.test_super_when_base_is_objects,; I  u  X     ) dmmG45zBGW%mmC  #//* cB'rc ddlm}ddlm}ddlm}Gdd|}Gdd|}||Gd d }Gd d |}|}|j t |j||g||||j t |j|||gt||} |j| } |j| j|j t | |gy) NrrIrrc eZdZy)OTest_providedByFallback.test_super_when_object_directly_provides..IBaseNr%rrrrrxr8rrc eZdZy)RTest_providedByFallback.test_super_when_object_directly_provides..IDerivedNr%rrrrrzr8rrc eZdZy)NTest_providedByFallback.test_super_when_object_directly_provides..BaseNr%rrrrr|r'rrc eZdZy)QTest_providedByFallback.test_super_when_object_directly_provides..DerivedNr%rrrrr~r8rr) rrJr)rrr*rCrBrrfr) rrJrrrrrrrerrrs r(test_super_when_object_directly_providesz@Test_providedByFallback.test_super_when_object_directly_providess,;@ I  u  U      d ) dmmG45w?(+ dmmG45%7HIGW%mmC  #//* cUG,rcddlm}ddlm}Gdd|}Gdd|}Gdd |}Gd d |}Gd d |}||Gdd}||Gdd|} ||Gdd|} |||Gdd| | } | } t | | } t | | }t | | }|j t |j| |||||g|j t |j| |||g|j t |j|||g|j t |j||gy)NrrrIc eZdZy)OTest_providedByFallback.test_super_multi_level_multi_inheritance..IBaseNr%rrrrrr8rrc eZdZy)MTest_providedByFallback.test_super_multi_level_multi_inheritance..IM1Nr%rrrrrr8rrc eZdZy)MTest_providedByFallback.test_super_multi_level_multi_inheritance..IM2Nr%rrrrrr8rrc eZdZy)RTest_providedByFallback.test_super_multi_level_multi_inheritance..IDerivedNr%rrrrrr8rrc eZdZy)TTest_providedByFallback.test_super_multi_level_multi_inheritance..IUnrelatedNr%rrrrrr8rrc eZdZy)NTest_providedByFallback.test_super_multi_level_multi_inheritance..BaseNr%rrrrrr'rrc eZdZy)LTest_providedByFallback.test_super_multi_level_multi_inheritance..M1Nr%rrrrrr'rrc eZdZy)LTest_providedByFallback.test_super_multi_level_multi_inheritance..M2Nr%rrrrrr'rrc eZdZy)QTest_providedByFallback.test_super_multi_level_multi_inheritance..DerivedNr%rrrrrr'rrrrs rrz@Test_providedByFallback.test_super_multi_level_multi_inheritances;, I  )  )  u    U      S      S      Xz * b"  +  I 7A BlBl dmmA./"JUC@ B dmmB/0uc* , dmmC01u ' dmmC01 "rcRtj||jdty)Nr)r"r)rr$rBrlrs r.test_catches_only_AttributeError_on_providedByzFTest_providedByFallback.test_catches_only_AttributeError_on_providedBys$$T4==6F/5 7rcHtj||jdy)Nrr!r#rs rr'zATest_providedByFallback.test_catches_only_AttributeError_on_classs $$ $--+ ?r)rrrrrrrBr?rCrGrKrRrVrZrrrrrrr'rrs@rr8r8s[" (O3) -) -** --47.(,-:/"b7 ?rr8ceZdZdZy)Test_providedBycddlm}|S)Nrr)r)r9)rr9s rrrzTest_providedBy._getTargetClassrrNr rrrrrsrrc@eZdZdZeZdZdZdZdZdZ dZ dZ y ) *ObjectSpecificationDescriptorFallbackTestscddlm}|S)Nr)%ObjectSpecificationDescriptorFallback)r)r)rrs rrz.FooNr%rrrr&r r8rr&) r)rrKrrryrr*rC)rrrrr&s rtest_accessed_via_classzBObjectSpecificationDescriptorFallbackTests.test_accessed_via_class sV8;f%  #C.!]]_ c001D6:rcddlm}ddlm}ddlm}|d}|d}||Gdd}||||_|j |_|}|jt|j|gy) Nrrrrrrc eZdZy)ZObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_wo_provides..FooNr%rrrr&r r'rr&) r)rrrKrrryrr*rC)rrrrrrr&r"s r"test_accessed_via_inst_wo_provideszMObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_wo_provides s|;8;f%f% T     #C.!]]_e c001D6:rcBddlm}ddlm}ddlm}ddlm}|d}|d}|d}||Gd d }||||_|j|_|} || ||jt| j||gy) Nrrrrrrrrc eZdZy)YObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_w_provides..FooNr%rrrr&r. r'rr&) r)rrrrKrrryrr*rC) rrrrrrrrr&r"s r!test_accessed_via_inst_w_provideszLObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_w_provides& s@;8;f%f%f% T     #C.!]]_ed# c001D$<@rcGddtGfdd}|}j5t|ddddy#1swYyxYw)Nc eZdZy)vObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught..MyExceptionNr%rrr MyExceptionr9 r8rrcDeZdZWjZefdZy)nObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught..Foocr/r)rrs rrz{ObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught..Foo.__provides__? s !!rNrrrryrrWr)rrsrr&r< s !]]_N  " "rr&r) Exceptionrr)rr&r"rs` @r6test_arbitrary_exception_accessing_provides_not_caughtzaObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught7 sP )  " "e   { + + C) * + + +s A  AcGddt}Gfdd}|}t|d}j|y)Nc eZdZy)mObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caught..MyExceptionNr%rrrrrI r8rrc@eZdZWjZedZy)eObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caught..Fooctr/)rrs rrzrObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caught..Foo.__provides__O s$$rNrrsrr&rL s !]]_N  % %rr&r)rrassertIsNotNone)rrr&r"provideds` r-test_AttributeError_accessing_provides_caughtzXObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caughtG s= )  % %e3 01 X&rcddlm}ddlm}Gdd|}||Gdd}|j|_t |d}|j |y) NrrIrc eZdZy)ZObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides..IFooNr%rrrrr[ r8rrceZdZedZy)YObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides..Foocyr/rrs rrzfObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides..Foo.__provides__a srN)rrrrWrrrrr&r^ s  rr&r)rrJrryrrrf)rrJrrr&rs r!test_None_in__provides__overrideszLObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overridesW s_,. 9  T      "]]_35"23 (#rN) rrrrrrryrrrrrrrrrrr s25 (O3; ;A"+ ' $rrceZdZdZy)"ObjectSpecificationDescriptorTestscddlm}|S)Nr)ObjectSpecificationDescriptor)r)r)rrs rrrz2ObjectSpecificationDescriptorTests._getTargetClasso s M,,rNr rrrrrj s -rrceZdZdZdZdZy)r/c ||_|Dcic]}|t||c}|_|jD]\}}t |||ycc}wr/)moduler to_restoreitemsr)rrrxkeyrOs rr#z_Monkey.__init__y sR @BC3 44C((* (JC FC ' (DsAc|Sr/rrs r __enter__z_Monkey.__enter__ s rcv|jjD]\}}t|j||yr/)rrrr)rexc_typeexc_valexc_tbrrOs r__exit__z_Monkey.__exit__ s2////1 -JC DKKe , -rNrrrr#rrrrrr/r/w s( -rr/ceZdZdZdZdZy)r`c ||_t|||_|jj|_|jj |jj |yr/)rrtargetcopyrclearupdate)rrattrnamerxs rr#z_MonkeyDict.__init__ sM fh/ ++**,  2rc|jSr/)rrs rrz_MonkeyDict.__enter__ s {{rc|jj|jj|jyr/)rrrr)rrrrs rrz_MonkeyDict.__exit__ s(  4??+rNrrrrr`r` s,rr`).r unittestrrr#zope.interface.tests.test_interfacerrTestCaserr;rprrr>r rrr1rerjrtrrrrr(r8rVrarurrrrrrrrr4r8rrrr/r`rrrrs61Q (8""8>7(H--7(tH9,H9V@,4@,Fp86&&p8f@"!2!2@"F 3.%%%%N-43X5F5F-4`cX/1B1BcXL / 4 /4>D/1**/1d 1 Dy H--y z'H%%'>+AH--+A\?))?@.@H--.@b+HX%6%6+H\ )2; )=**=D& 1& RK H--K \+;h//+;\9H%%9(9(++9xe=(*;*;e=P&"E"7&p?h//p?h-+g$1B1Bg$R-2- - - ,,r