e6dZddlZddlmZdZGddZGddeZGd d eZGd d eZGd deZ GddejZ Gdde Z GddejZ Gdde eZGddejZGddeeZGddejZGddejZGdd eZGd!d"ejZy)#zAdapter registry tests N)OptimizationTestMixinc ddlm}Gdd|}Gdd|}Gdd|}Gd d ||}Gd d ||}Gd d|}Gdd|}Gdd|}Gdd|} ||||||||| f S)Nr Interfacec eZdZy)_makeInterfaces..IB0N__name__ __module__ __qualname__C/usr/lib/python3/dist-packages/zope/interface/tests/test_adapter.pyIB0r rrc eZdZy)_makeInterfaces..IB1Nr r rrIB1rrrrc eZdZy)_makeInterfaces..IB2Nr r rrIB2rrrrc eZdZy)_makeInterfaces..IB3Nr r rrIB3r rrrc eZdZy)_makeInterfaces..IB4Nr r rrIB4r"rrrc eZdZy)_makeInterfaces..IF0Nr r rrIF0r%rrr c eZdZy)_makeInterfaces..IF1Nr r rrIF1r"'rrr#c eZdZy)_makeInterfaces..IR0Nr r rrIR0r%*rrr&c eZdZy)_makeInterfaces..IR1Nr r rrIR1r(,rrr))zope.interfacer) rrrrrrr r#r&r)s r_makeInterfacesr+s( i  c  c  c3  c3  i  c  i  c  S#sCc3 66rc:eZdZdZdZdZdZdZdZdZ dZ y) CustomDataTypeBaseNc |j|SN_dataselfnames r __getitem__zCustomDataTypeBase.__getitem__7szz$rc"||j|<yr/r0)r3r4values r __setitem__zCustomDataTypeBase.__setitem__:s  4rc|j|=yr/r0r2s r __delitem__zCustomDataTypeBase.__delitem__=s JJt rc,t|jSr/)lenr1r3s r__len__zCustomDataTypeBase.__len__@s4::rc||jvSr/r0r2s r __contains__zCustomDataTypeBase.__contains__Cstzz!!rcn||uryt|t|k7ry|j|jk(S)NTF)typer1r3others r__eq__zCustomDataTypeBase.__eq__Fs2 D= ;$t* ${{djj((rc,t|jSr/)reprr1r=s r__repr__zCustomDataTypeBase.__repr__NsDJJr) r r r r1r5r8r:r>r@rErHr rrr-r-5s* E !") rr-ceZdZddZy) CustomMappingNci|_|r|jj||jj|_|jj|_yr/)r1updategetitemsrCs r__init__zCustomMapping.__init__Rs>  JJ  e $::>>ZZ%% rr/r r r rOr rrrJrJQs&rrJceZdZddZy)CustomSequenceNcg|_|r|jj||jj|_yr/)r1extendappendrCs rrOzCustomSequence.__init__[s/  JJ  e $jj'' rr/rPr rrrRrRZs(rrRc eZdZy)CustomLeafSequenceNr r rrrWrWarrWc eZdZy)CustomProvidedNr r rrrZrZdrXrrZceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd,d Zd,dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-y)-BaseAdapterRegistryTestsNcddlm}|S)NrBaseAdapterRegistryzope.interface.adapterr_)r3r_s r_getBaseAdapterRegistryz0BaseAdapterRegistryTests._getBaseAdapterRegistryls >""rc|j}Gdd|}|jD]!}t|j|t #|S)Nc eZdZGddZy)6BaseAdapterRegistryTests._getTargetClass.._CUTc,eZdZdxZZdZdZdZdZy)BBaseAdapterRegistryTests._getTargetClass.._CUT.LookupClassr cyr/r )r3regs rrOzKBaseAdapterRegistryTests._getTargetClass.._CUT.LookupClass.__init__usrc0|xj|fz c_yr/_changed)r3origs rchangedzJBaseAdapterRegistryTests._getTargetClass.._CUT.LookupClass.changedwsMMdW,Mrc0|xj|fz c_yr/) _extendorsr3provideds r add_extendorzOBaseAdapterRegistryTests._getTargetClass.._CUT.LookupClass.add_extendorysOO{2Orcht|jDcgc] }||k7r| c}|_ycc}wr/)tuplerp)r3rrxs rremove_extendorzRBaseAdapterRegistryTests._getTargetClass.._CUT.LookupClass.remove_extendor{s3&+-?101X ./-?'@DO-?s/N) r r r rlrprOrnrsrwr rr LookupClassrgss!(**:-3@rrxN)r r r rxr rr_CUTrers @ @rry)rb _delegatedsetattrrxobject)r3r_ryr4s r_getTargetClassz(BaseAdapterRegistryTests._getTargetClasspsP"::< @& @(22 6D D$$dFH 5 6 rc,|jSr/r}r=s r_makeOnez!BaseAdapterRegistryTests._makeOnes%t##%''rctSr/dictr=s r_getMappingTypez(BaseAdapterRegistryTests._getMappingType rctSr/rr=s r_getProvidedTypez)BaseAdapterRegistryTests._getProvidedTyperrctSr/)listr=s r_getMutableListTypez,BaseAdapterRegistryTests._getMutableListTyperrctSr/)rur=s r_getLeafSequenceTypez-BaseAdapterRegistryTests._getLeafSequenceTypes rc|j}|}|jD]2}|jt||t|j|4yr/)r}rzassertIsgetattr _v_lookup)r3CUTregistryr4s rtest_lookup_delegationz/BaseAdapterRegistryTests.test_lookup_delegationsN""$5NN VD MM'(D178;M;Mt3T U Vrc\|j}|j|jdyN)r assertEqual _generationr3rs r"test__generation_on_first_creationz;BaseAdapterRegistryTests.test__generation_on_first_creations#==? --q1rc|j}t}|j||j|jd|j|j j ||fyN)rr|rnrrrrl)r3rrms r&test__generation_after_calling_changedz?BaseAdapterRegistryTests.test__generation_after_calling_changedsY==?x --q1 ++44x6GHrcGdd}|j}|f|_|j|jdy)Nc eZdZy)QBaseAdapterRegistryTests.test__generation_after_changing___bases__.._BaseNr r rr_Baser rrr)r __bases__rr)r3rrs r)test__generation_after_changing___bases__zBBaseAdapterRegistryTests.test__generation_after_changing___bases__s7  ==?#X --q1rc|jt|j||j|j|j |j }|jD]}|j|||j|jd||j|jd||jt|j|dz dyNrr)rr< _adaptersassertIsInstancerrr3rexpected_orderMTmappings r_check_basic_types_of_adaptersz7BaseAdapterRegistryTests._check_basic_types_of_adapterss X//0.A h00$2J2J2LM  ! ! #)) /G  ! !'2 . / ++A.5 h003R8 X//0BCDaHrc|jt|j||j|j|j |j }|jD]}|j|||ro|j|jd||j|jd||jt|j|dz dyyr)rr< _subscribersrrrrs r!_check_basic_types_of_subscribersz:BaseAdapterRegistryTests._check_basic_types_of_subscriberss X223^D h33T5M5M5OP  ! ! #,, /G  ! !'2 . /    X2215rt <  ! !("7"7":B ?   S!6!6~7I!JKQ O rc pt\ }}}}}}}}} |j} | j|g|dd|j| j |g|dd|j| j d|j | |j} |j| jd| || || ddiii|j} |j| j| |dit| j} |j| |f|ddfgy)NA1rr) r+rregisterr registeredrrrrr _providedrallRegistrations)r3rrrrrr r#r&r)rrPTrs r test_registerz&BaseAdapterRegistryTests.test_registersH6E6G3S#sCc3==?3%b$/ ,,cUC.build_adapterss !%R $%)!R $%)!    RRJ!RWdO!4WdO!4!RRJ!    -$$$ r)rrr cD||n t}|j||Sr/rWrUexistingnews raddValuezRBaseAdapterRegistryTests.test_register_multiple_allRegistrations..addValue1##+#7x=O=QH OOC Or)r+rrrrrrsortedrrrJ _mappingTyperW_leafSequenceTyperR _sequenceTyperZ _providedType_addValueToLeafrebuild)r3rr r#rrr registry2argsrrrrrr&r)s @@@@@@r'test_register_multiple_allRegistrationsz@BaseAdapterRegistryTests.test_register_multiple_allRegistrationss6E6G3S#sCc3==?"c2t,"c7D13%b$/3%gt43%b$/3%gt43*c2t43*c7D93*c7D93*c2t4% % N ++'$*B*B*D+/+?+?+AC DH5578   b$  gt $VS"d #VS'4 (VS"d #VS'4 (3Zb$ '3Zgt ,3Zgt ,3Zb$ ' & MMO  &D I   % & ,,h.@.@A ,,h.@.@A!.%7"!/!/ $,  ++'- - rc t\ }}}}}}}}} |j} |jt5| j |g|t ddddy#1swYyxYwNr)r+r assertRaises ValueErrorrr| r3rrrrrr r#r&r)rs rtest_register_with_invalid_namez8BaseAdapterRegistryTests.test_register_with_invalid_name?sc6E6G3S#sCc3==?   z * :   seS&(D 9 : : :s A!!A*c t\ }}}}}}}}} |j} | jdg|dd| jdg|dd|jt | j d|j | j |jt| j} |j| gy)Nrrr) r+rrrr<rrrrr) r3rrrrrr r#r&r)rrs r)test_register_with_value_None_unregisterszBBaseAdapterRegistryTests.test_register_with_value_None_unregistersEs6E6G3S#sCc3==?4&#r404&#r40 X//0!4 h00$2J2J2LM(3356  R(rc "ddlm}t\ }}}}}}}} } |j} t } | j dg| d| | j } | j dg| d| |j| j | |j| |j}|j| jd|||| |d| iiit| j}|j||f| d| fgy)Nrrrr) r*rr+rr|rrrrrrrr)r3rrrrrrr r#r&r)r_value_beforerrs rtest_register_with_same_valuez6BaseAdapterRegistryTests.test_register_with_same_valueOs,6E6G3S#sCc3==?4&#r62&&4&#r62 --w7 ++H5  ! ! # ++A.2RV - 1  (3356   L    ' &  rc|j}|j|jdgdddt|j }|j|gyNr)rrrrr)r3rrs rtest_registered_emptyz.BaseAdapterRegistryTests.test_registered_emptylsQ==? ,,dVT2>E(3356  R(rc t\ }}}}}}}}} |j} | j|gddd|j| j |gdddyNrr)r+rrrrrs rtest_registered_non_empty_missz7BaseAdapterRegistryTests.test_registered_non_empty_missrs_6E6G3S#sCc3==?3%r40 ,,cUD"=tDrc|j}|jdgddd|j|jdgdddyr)rrrrrs rtest_registered_non_empty_hitz6BaseAdapterRegistryTests.test_registered_non_empty_hitxsD==?4&$D1 ,,dVT2>Erc|j}|jdgdd|j|jdgddd|jt |j dy)Nrr)r unregisterrrr<rrs rtest_unregister_emptyz.BaseAdapterRegistryTests.test_unregister_empty}s]==?TFD"- ,,dVT2>E X//0!4rc t\ }}}}}}}}} |j} | j|gddd| j|gdd|j | j |gddd|j | |j} |j | jd| || d| ddiii|j} |j | j| ddiy)Nrrr r+rrrrrrrrrr r3rrrrrr r#r&r)rrrs r*test_unregister_non_empty_miss_on_requiredzCBaseAdapterRegistryTests.test_unregister_non_empty_miss_on_requireds 6E6G3S#sCc3==?3%r40SE4, ,,cUD"=tD ++H5  ! ! # ++A.Rb"dn 1   " " $ ++R !1 .  rc t\ }}}}}}}}} |j} | j|gddd| j|gdd|j | j |gddd|j | |j} |j | jd| || d| ddiii|j} |j | j| ddiy)Nrrnonesuchrrrs r&test_unregister_non_empty_miss_on_namez?BaseAdapterRegistryTests.test_unregister_non_empty_miss_on_names 6E6G3S#sCc3==?3%r40SE44 ,,cUD"=tD ++H5  ! ! # ++A.Rb"dn 1   " " $ ++R !1 .  rc t\ }}}}}}}}} |j} t} t} | j|gdd| | j |gdd| |j | j |gdd| yr)r+rr|rrrr r3rrrrrr r#r&r)rrmnomatchs r(test_unregister_with_value_not_None_misszABaseAdapterRegistryTests.test_unregister_with_value_not_None_misss6E6G3S#sCc3==?x(3%r40SE4W5 h))3%r:DArct\ }}}}}}}}} |j} t} t} | j||gdd| | j||gdd| |j | d|j || j d||j || j d||j} |j| j d| || || d| d| ii|| d| d| iiii|j}|j| j|ddi| j||gdd| |j || j d||j|| j d||j| j d| || || d| d| iiii|j| j|ddiy)Nrrrr) r+rr|rrassertInrrrrrr assertNotIn)r3rrrrrr r#r&r)roneanotherrrs r.test_unregister_hit_clears_empty_subcomponentszGBaseAdapterRegistryTests.test_unregister_hit_clears_empty_subcomponentss-6E6G3S#sCc3==?h(3*dB43*dB8 ++HQ+G c8--a056 c8--a056  ! ! # ++A.RRr2s)} 56Rr2w-'8 9:  1  " " $ ++R !1 .   S#Jb': c8--a056 h003C89 ++A.RRr2s)} 56 1   ++R !1 .  rc|j}|jdgdd|j|jdgddd|j |dy)Nrrr)r unsubscriberrrrs rtest_unsubscribe_emptyz/BaseAdapterRegistryTests.test_unsubscribe_emptysU==?dVT2. ,,dVT2>E ..x.Jrct\ }}}}}}}}} |j} t} | j|gd| |j } |j } |j }|j| |j| jd| || d| d| | fiii|j| j|i| j|gd| |jt| jd|j| j|iy)Nrrr) r+rr| subscriberrrrrrrrr<)r3rrrrrr r#r&r)rrmrrrs rtest_unsubscribe_hitz-BaseAdapterRegistryTests.test_unsubscribe_hits06E6G3S#sCc3==?xC5$-  ! ! #  % % '  " " $ ..x8 ..q12 b4' 7 4   ++RV4cUD$/ X223Q7 ++RV4rc(|j||y)a Implementations may choose to use new, immutable objects instead of mutating existing subscriber leaf objects, or vice versa. The default implementation uses immutable tuples, so they are never the same. Other implementations may use persistent lists so they should be the same and mutated in place. Subclasses testing this behaviour need to override this method. N) assertIsNotr3leaf1leaf2s rassertLeafIdentityz+BaseAdapterRegistryTests.assertLeafIdentitys &rct\ }}}}}}}}} |j} t} t} t} t}| j|gd| | j|gd| | j|g|| | j|g|||j | d|j }|j }|j}|j| jd|||d|d|| | fi||d|| |fiii|j| j||di| jd||d}| jd|dd}| j|gd| | j|g|| |j| jd|||d|d|| fi||d||fiii|j| j||di| jd||d}| jd|dd}|j|||j||| j|gd| | j|g|||jt| jd|jt| jdy)Nrrrrr)r+rr|rrrrrrrrrr r<)r3rrrrrr r#r&r)rfirstsecondthirdfourthrrr IR0_leaf_orig Non_leaf_orig IR0_leaf_new Non_leaf_news rtest_unsubscribe_after_multiplez8BaseAdapterRegistryTests.test_unsubscribe_after_multiple s6E6G3S#sCc3==?C5$.C5$/C5#u-C5#v. ..x.J  ! ! #  % % '  " " $ ..q12 b"a012RQv/017 4  ++R 1 .  !--a05c:2>  --a05d;B? cUD%0cUC/ ..q12 b"a l+,RQy\*+7 4  ++R 1 .   ,,Q/4S9"= ,,Q/4T:2>   |<  |<cUD&1cUC0 X223Q7 X//0!4rct\ }}}}}}}}} |j} t} | j|g|| | j|g|| |j } |j } |j }|j| jd| || || d| | | fiii|j| j||di| j|g|| | j|g|| |jt| jd|j| j|yNrrrr r+rr|rrrrrrrrr<)r3rrrrrr r#r&r)rrrrrs r5test_subscribe_unsubscribe_identical_objects_providedzNBaseAdapterRegistryTests.test_subscribe_unsubscribe_identical_objects_provided=sU6E6G3S#sCc3==?C5#u-C5#u-  ! ! #  % % '  " " $ ..q12 RQu~./07 4  ++R 1 .   cUC/cUC/ X223Q7 ++RT2rct\ }}}}}}}}} |j} t} t} | j|g|| | j|g|| |j } |j }|j }|j| jd| || || d|| | fiii|j| j||di| j|g|| | j|g|| |jt| jd|j| j|yrr)r3rrrrrr r#r&r)rrrrrrs r4test_subscribe_unsubscribe_nonequal_objects_providedzMBaseAdapterRegistryTests.test_subscribe_unsubscribe_nonequal_objects_providedVs\6E6G3S#sCc3==?C5#u-C5#v.  ! ! #  % % '  " " $ ..q12 RQv/017 4  ++R 1 .   cUC/cUC0 X223Q7 ++RT2rc|j}|j|jdgddt|j }|j |gyr)r assertIsNone subscribedrallSubscriptionsr)r3rrs rtest_subscribed_emptyz.BaseAdapterRegistryTests.test_subscribed_emptypsO==? (--tfdB?@(3356  R(rc Ft\ }}}}}}}}} |j} | j|g|d|j| j |g|d|j| j |g|d|j| j |g|dy)Nrr)r+rrrrrs rtest_subscribed_non_empty_missz7BaseAdapterRegistryTests.test_subscribed_non_empty_missvs6E6G3S#sCc3==?C5#t, (--seS"=> (--seS"=> (--seS"=>rc t\ }}}}}}}}} |j} | j|g|d|j| j |g|ddyr)r+rrrrrs rtest_subscribed_non_empty_hitz6BaseAdapterRegistryTests.test_subscribed_non_empty_hits]6E6G3S#sCc3==?C5#t, ,,cUC>Erc Zt\ }}}}}}}}} |j} t} t} | j|gd| | j|gd| |j | d| j |gd|j t| jdy)Nrrr) r+rr|rrrrr<r) r3rrrrrr r#r&r)rrrs r&test_unsubscribe_w_None_after_multiplez?BaseAdapterRegistryTests.test_unsubscribe_w_None_after_multiples6E6G3S#sCc3==?C5$.C5$/ ..x.JcUD) X223Q7rct\ }}}}}}}}} |j} | j|gdd|j| d| j |gdd|j t | jd|j} |j} |j | jd| || d| d| diiiy)Nrrrrrr r+rrrrrr<rrr r3rrrrrr r#r&r)rrrs r+test_unsubscribe_non_empty_miss_on_requiredzDBaseAdapterRegistryTests.test_unsubscribe_non_empty_miss_on_requireds6E6G3S#sCc3==?C5$- ..x.JcUD"- X223Q7  ! ! #  % % ' ..q12 b"aj)*7 4  rct\ }}}}}}}}} |j} | j|gdd|j| d| j |gdd|j t | jd|j} |j} |j | jd| || d| d| diiiy)Nrrrrrrr)r*r+s r(test_unsubscribe_non_empty_miss_on_valuezABaseAdapterRegistryTests.test_unsubscribe_non_empty_miss_on_values6E6G3S#sCc3==?C5$- ..x.JcUD$/ X223Q7  ! ! #  % % ' ..q12 b"aj)*7 4  rc t\ }}}}}}}}} |j} t} t} | j|gd| | j |gd| |j t | jdyr)r+rr|rrrr<rrs r)test_unsubscribe_with_value_not_None_misszBBaseAdapterRegistryTests.test_unsubscribe_with_value_not_None_misssy6E6G3S#sCc3==?x(C5$-cUD'2 X223Q7rc&|jdy)Nz*Example method, not intended to be called.failr=s r_instance_method_notify_targetz7BaseAdapterRegistryTests._instance_method_notify_targets >?rc Xt\ }}}}}}}}} |j} |jt| jd| j |gd|j | j|gd|j |jt| jdyNr)r+rrr<rrr4rrs r test_unsubscribe_instance_methodz9BaseAdapterRegistryTests.test_unsubscribe_instance_methods6E6G3S#sCc3==? X223Q7C5$(K(KLcUD$*M*MN X223Q7rc t\ }}}|j}|jgd|jgd|j gd|j gd|j gd|j gd|j gd|j gd|j gd|j gd fd}|j|j||j |j |jfd}|j|j||jt|j}|j|d dfd df fdf fdf fdf fdf fdf fdf fdf fdfg |j}|D]} |j| |j|j|j|j|j|jt|_ t|_t |_t$|_d } | |_|j+|j|j|t tty) Nrrrrc|||d|ddgii|||d|ddgi|d|ddgiii||||d|dgii||d|dgi|d|dgii||d|dgiiiigS)Nrrrrrr ) rFrrrrrr&r)s rbuild_subscribersz\BaseAdapterRegistryTests.test_subscribe_multiple_allRegistrations..build_subscriberss5AtTlO R4,!R4,!   RRD6O!4!RRD6O!4RD6O!4!RRD6O!4!    '!!! r)rr:rc|ddiS)Nr )Pr&r)s rbuild_providedzYBaseAdapterRegistryTests.test_subscribe_multiple_allRegistrations..build_providedsQQ r)r?r cD||n t}|j||Sr/rrs rrzSBaseAdapterRegistryTests.test_subscribe_multiple_allRegistrations..addValue(rr)r+rrrrrrrrrrr rJrrWrrRrrZrrr)r3rr r#rr;r@rrrrrrrrr&r)s @@@@@@r(test_subscribe_multiple_allRegistrationszABaseAdapterRegistryTests.test_subscribe_multiple_allRegistrationss6E6G3S#sCc3==?2sD)2sD)C5#t,C5#t,C5#t,C5#t,C:sD1C:sD1C:sD1C:sD1" " H ..*#779#88: $ 4 4 6   ++'$*?*?*AB DH5578   dO dOVS$ VS$ VS$ VS$ 3Zd #3Zd #3Zd #3Zd # & MMO  'D I   & ' //1F1FG ,,h.@.@A!.%7"!/!/ $,  ..*-1 - r)r).r r r maxDiffrbr}rrrrrrrrrrrrrrrrrrrrrrrrrrr rrrr!r#r%r'r,r.r0r4r7rBr rrr\r\hsG#$(V 2 I2I P 4cJ: ) :) E F 5  , ,B( TK 5* '25h3234) ?F 8    8@8orr\c4eZdZdZdZdZdZdZdZdZ y) #CustomTypesBaseAdapterRegistryTestsz This class may be extended by other packages to test their own adapter registries that use custom types. (So be cautious about breaking changes.) One known user is ``zope.component.persistentregistry``. ctSr/)rJr=s rrz3CustomTypesBaseAdapterRegistryTests._getMappingTypeAsrctSr/)rZr=s rrz4CustomTypesBaseAdapterRegistryTests._getProvidedTypeDrctSr/)rRr=s rrz7CustomTypesBaseAdapterRegistryTests._getMutableListTypeGrHrctSr/)rWr=s rrz8CustomTypesBaseAdapterRegistryTests._getLeafSequenceTypeJs!!rc2ddlmGfdd}|S)Nrr^ceZdZWjZWj ZWjZWjZ dZ fdZ y)ZCustomTypesBaseAdapterRegistryTests._getBaseAdapterRegistry..CustomAdapterRegistrycL|s|j}|j||Sr/)rrU)r3existing_leaf_sequencenew_items rrzjCustomTypesBaseAdapterRegistryTests._getBaseAdapterRegistry..CustomAdapterRegistry._addValueToLeafUs(--1-C-C-E*&--h7--rcDj|||}||dd||vsJ|Sr/)_removeValueFromLeaf)r3rO to_removewithout_removedr_s rrRzoCustomTypesBaseAdapterRegistryTests._getBaseAdapterRegistry..CustomAdapterRegistry._removeValueFromLeaf[s>"5"J"J*#-<&q) (>>>>--rN) r r r rrrrrrrrrrR)r_r3srCustomAdapterRegistryrMOsF//1L 446M $ 9 9 ;  113M .  .rrUr`)r3rUr_s` @rrbz;CustomTypesBaseAdapterRegistryTests._getBaseAdapterRegistryMs> .$7 .*%$rc(|j||yr/)rr s rr z6CustomTypesBaseAdapterRegistryTests.assertLeafIdentityfs eU#rN) r r r __doc__rrrrrbr r rrrErE8s%"%2$rrEceZdZdZeZ ddZdZdZdZdZ dZ dZ d Z d Z d Zd Zd ZdZdZdZdZdZdZdZdZdZfdZdZdZdZdZdZxZ S)LookupBaseFallbackTestscddlm}|S)Nr)LookupBaseFallback)rar[)r3r[s r_getFallbackClassz)LookupBaseFallbackTests._getFallbackClassls =!!rcndddGfdd|j}|S)Ncyr/r r3requiredrrr4s r uc_lookupz3LookupBaseFallbackTests._makeOne..uc_lookupvrctr/NotImplementedErrorr3r`rrs r uc_lookupAllz6LookupBaseFallbackTests._makeOne..uc_lookupAlly )++rctr/rdrfs ruc_subscriptionsz:LookupBaseFallbackTests._makeOne..uc_subscriptions|rhrc eZdZWZWZWZy)1LookupBaseFallbackTests._makeOne..DerivedN)r r r _uncached_lookup_uncached_lookupAll_uncached_subscriptions)rargrjsrDerivedrl~s( ". &6 #rrpr)r3rargrjrps ``` rrz LookupBaseFallbackTests._makeOnersJ      ,  # , 7 7d**, 7yrcd}|j|}|jt5|jddt dddy#1swYyxYw)Nc&|jdyNzThis should never be calledr2r_s r_lookupzCLookupBaseFallbackTests.test_lookup_w_invalid_name.._lookup II3 4rraAB)rrrlookupr|r3rtlbs rtest_lookup_w_invalid_namez2LookupBaseFallbackTests.test_lookup_w_invalid_namesL 5 ]]W] -   z * - IIfc68 , - - - AAcgfd}|j|}|jddd}|j||jdgy)Nc.j|||fyr/rUr3r`rrr4 _called_withs rrtzDLookupBaseFallbackTests.test_lookup_miss_no_default.._lookup   8T : ;rrvrwryCrwryr)rrzrrr3rtr|foundrs @rtest_lookup_miss_no_defaultz3LookupBaseFallbackTests.test_lookup_miss_no_defaultsS  <]]W] - &#s+ %  (:';._lookuprrrvrwryrrr|rrzrrr3_defaultrtr|rrs @rtest_lookup_miss_w_defaultz2LookupBaseFallbackTests.test_lookup_miss_w_defaults\ 8 <]]W] - &#sH5 eX& (:';._lookup&   8T : ;<<? "rrvrwryrrr r3abcrtr|rrrs @@rtest_lookup_not_cachedz.LookupBaseFallbackTests.test_lookup_not_cacheds (FHfha1q!9 #]]W] - &#s+ eQ (:';< Aq6*rc@gttt}}}|||gfd}|j|}|jddd}|jddd}|j|||j dg|j ||gy)NcNj|||fjdSr6rrs rrtz;LookupBaseFallbackTests.test_lookup_cached.._lookuprrrvrwryrrrrs @@rtest_lookup_cachedz*LookupBaseFallbackTests.test_lookup_cacheds (FHfha1q!9 #]]W] - &#s+ &#s+ eQ (:';< Aq6*rcgttt}}}|||gfd}|j|}|jddd}|j|||j dg|j ||gy)NcNj|||fjdSr6rrs rrtzNLookupBaseFallbackTests.test_lookup_not_cached_multi_required.._lookuprrrvrxDryrrryrrrs @@r%test_lookup_not_cached_multi_requiredz=LookupBaseFallbackTests.test_lookup_not_cached_multi_requireds (FHfha1q!9 #]]W] - *c3/ eQ (>'?@ Aq6*rc@gttt}}}|||gfd}|j|}|jddd}|jddd}|j|||j dg|j ||gy)NcNj|||fjdSr6rrs rrtzJLookupBaseFallbackTests.test_lookup_cached_multi_required.._lookuprrrvrryrrrrs @@r!test_lookup_cached_multi_requiredz9LookupBaseFallbackTests.test_lookup_cached_multi_requireds (FHfha1q!9 #]]W] - *c3/ *c3/ eQ (>'?@ Aq6*rcbgttt}}}|||gfd}|j|}|jddd}|j||jddd}|j |||j ddg|j |gy)NcNj|||fjdSr6rrs rrtzMLookupBaseFallbackTests.test_lookup_not_cached_after_changed.._lookuprrrvrwryrr)r|rrzrnrrrs @@r$test_lookup_not_cached_after_changedz._lookuprurrvrxry)rrrlookup1r|r{s rtest_lookup1_w_invalid_namez3LookupBaseFallbackTests.test_lookup1_w_invalid_namesN 5]]W] -   z * + JJsC * + + +r~cgfd}|j|}|jddd}|j||jdgy)Nc.j|||fyr/rrs rrtzELookupBaseFallbackTests.test_lookup1_miss_no_default.._lookuprrrvrxryrr)rrrrrs @rtest_lookup1_miss_no_defaultz4LookupBaseFallbackTests.test_lookup1_miss_no_defaultsS  <]]W] - 3S) %  (:';._lookuprrrvrxryrrr|rrrrrs @rtest_lookup1_miss_w_defaultz3LookupBaseFallbackTests.test_lookup1_miss_w_defaults\ 8 <]]W] - 3S(3 eX& (:';._lookuprrrvrxryrrrrs @r*test_lookup1_miss_w_default_negative_cachezBLookupBaseFallbackTests.test_lookup1_miss_w_default_negative_caches~ 8 <]]W] - 3S(3 eX& 3S(3 eX& (:';._lookuprrrvrxryrrrrs @@rtest_lookup1_not_cachedz/LookupBaseFallbackTests.test_lookup1_not_cacheds (FHfha1q!9 #]]W] - 3S) eQ (:';< Aq6*rc@gttt}}}|||gfd}|j|}|jddd}|jddd}|j|||j dg|j ||gy)NcNj|||fjdSr6rrs rrtz._lookup!rrrvrxryrrrrs @@rtest_lookup1_cachedz+LookupBaseFallbackTests.test_lookup1_cacheds (FHfha1q!9 #]]W] - 3S) 3S) eQ (:';< Aq6*rcbgttt}}}|||gfd}|j|}|jddd}|j||jddd}|j |||j ddg|j |gy)NcNj|||fjdSr6rrs rrtzNLookupBaseFallbackTests.test_lookup1_not_cached_after_changed.._lookup/rrrvrxryrr)r|rrrnrrrs @@r%test_lookup1_not_cached_after_changedz=LookupBaseFallbackTests.test_lookup1_not_cached_after_changed+s (FHfha1q!9 #]]W] - 3S) 2 3S) eQ ,.@A C A3'rctt}}|j}|jt5|j ||tdddy#1swYyxYwr/)r|rrr adapter_hook)r3reqprvr|s r test_adapter_hook_w_invalid_namez8LookupBaseFallbackTests.test_adapter_hook_w_invalid_name;sO8VXS ]]_   z * 0 OOCfh / 0 0 0s AA(ctt}}|j}|j||d}|j|yr)r|rrr)r3rrr|rs r!test_adapter_hook_miss_no_defaultz9LookupBaseFallbackTests.test_adapter_hook_miss_no_defaultAs:8VXS ]]_S"- % rcttt}}}|j}|j||d|}|j||yr)r|rrr)r3rrrr|rs r test_adapter_hook_miss_w_defaultz8LookupBaseFallbackTests.test_adapter_hook_miss_w_defaultGsB#Xvx(S ]]_S"h7 eX&rcgfdfd}ttt}}}|j|}|j||d|}|j|||j |gy)Nc(j|yr/rcontext_f_called_withs r_factoryzTLookupBaseFallbackTests.test_adapter_hook_hit_factory_returns_None.._factoryOs  ! !' *rcSr/r r3r`rrr4rs rrtzSLookupBaseFallbackTests.test_adapter_hook_hit_factory_returns_None.._lookupROrrvrr|rrrr) r3rtrrrr|adaptedrrs @@r*test_adapter_hook_hit_factory_returns_NonezBLookupBaseFallbackTests.test_adapter_hook_hit_factory_returns_NoneMsi + #Xvx(S ]]W] -//#sC: gx( #/rc  gtfd fd}ttt}}}|j|}|j||d|}|j||j |gy)Nc*j|Sr/rr_adapterrs rrzWLookupBaseFallbackTests.test_adapter_hook_hit_factory_returns_adapter.._factory]  ! !' *OrcSr/r rs rrtzVLookupBaseFallbackTests.test_adapter_hook_hit_factory_returns_adapter.._lookup`rrrvrr r3rtrrrr|rrrrs @@@r-test_adapter_hook_hit_factory_returns_adapterzELookupBaseFallbackTests.test_adapter_hook_hit_factory_returns_adapterZp8  #Xvx(S ]]W] -//#sC: gx( #/rcgfddfd }t}t}|j|}|j||}|j |||j |gy)Nc*j||Sr/rrs rrzILookupBaseFallbackTests.test_adapter_hook_super_unwraps.._factoryjs  ! !' *NrcSr/r rs rrtzHLookupBaseFallbackTests.test_adapter_hook_super_unwraps.._lookupmrrrv)r)superr|rrrr) r3rtr`rrr|rrr __class__s @@rtest_adapter_hook_super_unwrapsz7LookupBaseFallbackTests.test_adapter_hook_super_unwrapshs`  78 ]]W] -//(H5 gt$ $0rc  gtfd fd}ttt}}}|j|}|j||d|}|j||j |gy)Nc*j|Sr/rrs rrz;LookupBaseFallbackTests.test_queryAdapter.._factoryyrrcSr/r rs rrtz:LookupBaseFallbackTests.test_queryAdapter.._lookup|rrrvr)r|r queryAdapterrrrs @@@rtest_queryAdapterz)LookupBaseFallbackTests.test_queryAdaptervrrcgtttgfd}|j|}|jdd}|j|t |jdgy)Nc@j||ftSr/rUrur3r`rrrrs r _lookupAllzCLookupBaseFallbackTests.test_lookupAll_uncached.._lookupAll   8 4 5? "rrgrxryrwryr|r lookupAllrrur3rr|rrrs @@rtest_lookupAll_uncachedz/LookupBaseFallbackTests.test_lookupAll_uncachedsg Hfh1 #]] ] 3 S#& h0  7rcgtttgfd}|j|}|jdd}|jdd}|j|t |jdgy)Nc@j||ftSr/rrs rrzALookupBaseFallbackTests.test_lookupAll_cached.._lookupAllrrrrxryrrrs @@rtest_lookupAll_cachedz-LookupBaseFallbackTests.test_lookupAll_cachedsw Hfh1 #]] ] 3 S#& S#& h0  7rcgtttgfd}|j|}|jdd}|j|t |jdgy)Nc@j||ftSr/rrs r_subscriptionszKLookupBaseFallbackTests.test_subscriptions_uncached.._subscriptionsrrrjrxryrr|r subscriptionsrrur3rr|rrrs @@rtest_subscriptions_uncachedz3LookupBaseFallbackTests.test_subscriptions_uncachedsi Hfh1 #]]N] ;  c* h0  7rcgtttgfd}|j|}|jdd}|jdd}|j|t |jdgy)Nc@j||ftSr/rrs rrzILookupBaseFallbackTests.test_subscriptions_cached.._subscriptionsrrrrxryrrrs @@rtest_subscriptions_cachedz1LookupBaseFallbackTests.test_subscriptions_cacheds{ Hfh1 #]]N] ;  c*  c* h0  7rNNN)!r r r r\r}rr}rrrrrrrrrrrrrrrrrrrrrrrrr __classcell__rs@rrYrYjs"(O48"&$-= = + + + +( += = = + +( 0 ! ' 0 0 1 0 8 8 8 8rrYceZdZdZy)LookupBaseTestscddlm}|S)Nr) LookupBase)rar )r3r s rr}zLookupBaseTests._getTargetClasss 5rNr r r r}r rrr r srr cLeZdZdZeZ d dZdZdZdZdZ dZ d Z d Z y) VerifyingBaseFallbackTestscddlm}|S)Nr)VerifyingBaseFallback)rar)r3rs rr\z,VerifyingBaseFallbackTests._getFallbackClasss @$$rNcdddGfdd|j}||}|j||S)Nctr/rdr_s rraz6VerifyingBaseFallbackTests._makeOne..uc_lookuprhrctr/rdrfs rrgz9VerifyingBaseFallbackTests._makeOne..uc_lookupAllrhrctr/rdrfs rrjz=VerifyingBaseFallbackTests._makeOne..uc_subscriptionsrhrc2eZdZWZWZWZfdZxZS)4VerifyingBaseFallbackTests._makeOne..Derivedc0t|||_yr/)rrO _registry)r3rrs rrOz=VerifyingBaseFallbackTests._makeOne..Derived.__init__s "!)r)r r r rmrnrorOr)rrargrjs@rrprs( ". &6 # * *rrp)r}rn)r3rrargrjrpderiveds ``` rrz#VerifyingBaseFallbackTests._makeOnes]   ,   ,  # , * *d**, *(# rc@GddGfdd}||S)NceZdZdZy)@VerifyingBaseFallbackTests._makeRegistry..WithGenerationrN)r r r rr rrWithGenerationrsKrrceZdZfdZy):VerifyingBaseFallbackTests._makeRegistry..RegistrycVt|Dcgc] } c}|_ycc}wr/)rangero)r3depthirs rrOzCVerifyingBaseFallbackTests._makeRegistry..Registry.__init__s5:5\B>+BBs&NrP)rsrRegistryrs  Crr%r )r3r#r%rs @r _makeRegistryz(VerifyingBaseFallbackTests._makeRegistrys%   C Crc@ gttt}}}|||g  fd}|jd}|j||}|jddd}|jddd}|j |||j dg|j ||g|j dxjdz c_|jddd}|j |||j ddg|j |gy) NcNj|||fjdSr6rrs rrtz7VerifyingBaseFallbackTests.test_lookup.._lookuprrrrvrwryrrr)r|r&rrzrrr"r r3rrrrtrir|rrrs @@r test_lookupz&VerifyingBaseFallbackTests.test_lookups (FHfha1q!9 #  # ]]3'] 2 &#s+ &#s+ eQ (:';< Aq6* q " &#s+ eQ ,.@A C A3'rc@ gttt}}}|||g  fd}|jd}|j||}|jddd}|jddd}|j |||j dg|j ||g|j dxjdz c_|jddd}|j |||j ddg|j |gy) NcNj|||fjdSr6rrs rrtz8VerifyingBaseFallbackTests.test_lookup1.._lookuprrrrvrxryrrr)r|r&rrrrr"rr)s @@r test_lookup1z'VerifyingBaseFallbackTests.test_lookup1s (FHfha1q!9 #  # ]]3'] 2 3S) 3S) eQ (:';< Aq6* q " 3S) eQ ,.@A C A3'rc, tttg\ } fd}fd}fd}|||g fd}ttt}}}jd} j| |} | j||d|} j | | j||d|} j | | j dxj dz c_| j||d|} j | y) NcSr/r rrs r _factory1z?VerifyingBaseFallbackTests.test_adapter_hook.._factory1HrcSr/r rrs r _factory2z?VerifyingBaseFallbackTests.test_adapter_hook.._factory2r2rc(jdyrsr2rr3s r _factory3z?VerifyingBaseFallbackTests.test_adapter_hook.._factory3 II3 4rc&jdSr6rr3r`rrr4 _factoriess rrtz=VerifyingBaseFallbackTests.test_adapter_hook.._lookup>>!$ $rrrvrr)r|r&rrrr"rr3_cr1r5r8rtrrrrir|rr=rrs` @@@rtest_adapter_hookz,VerifyingBaseFallbackTests.test_adapter_hook Hfh11b   5I6  %#Xvx(S  # ]]3'] 2//#sC: gq!//#sC: gq! q "//#sC: gq!rc, tttg\ } fd}fd}fd}|||g fd}ttt}}}jd} j| |} | j||d|} j | | j||d|} j | | j dxj dz c_| j||d|} j | y) NcSr/r r0s rr1z?VerifyingBaseFallbackTests.test_queryAdapter.._factory1$r2rcSr/r r4s rr5z?VerifyingBaseFallbackTests.test_queryAdapter.._factory2&r2rc(jdyrsr2r7s rr8z?VerifyingBaseFallbackTests.test_queryAdapter.._factory3(r9rc&jdSr6r;r<s rrtz=VerifyingBaseFallbackTests.test_queryAdapter.._lookup+r>rrrvrr)r|r&rrrr"rrr?s` @@@rrz,VerifyingBaseFallbackTests.test_queryAdapter"rBrc&tttg}tttg}||gfd}|jd}|j||}|jdd}|j |t ||jdd}|j |t ||j dxjdz c_|jdd}|j |t |y)Nc8tjdSr6rurr3r`rrrs rrz=VerifyingBaseFallbackTests.test_lookupAll.._lookupAll<a) )rrrrxryr)r|r&rrrrur"r)r3 _results_1 _results_2rrir|rrs @rtest_lookupAllz)VerifyingBaseFallbackTests.test_lookupAll8sh&(3 h&(3  + *  # ]]3Z] 8 S#& j 12 S#& j 12 q " S#& j 12rc&tttg}tttg}||gfd}|jd}|j||}|jdd}|j |t ||jdd}|j |t ||j dxjdz c_|jdd}|j |t |y)Nc8tjdSr6rJrKs rrzEVerifyingBaseFallbackTests.test_subscriptions.._subscriptionsLrLrrrrxryr)r|r&rrrrur"r)r3rMrNrrir|rrs @rtest_subscriptionsz-VerifyingBaseFallbackTests.test_subscriptionsHsh&(3 h&(3  + *  # ]]3] @  c* j 12  c* j 12 q "  c* j 12rr) r r r r\r}rr&r*r-rArrOrRr rrrrs<%(O>B"&.(*(*",",3 3rrceZdZdZy)VerifyingBaseTestscddlm}|S)Nr) VerifyingBase)rarV)r3rVs rr}z"VerifyingBaseTests._getTargetClass\s 8rNr r rrrTrTYsrrTceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZfdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'xZ(S)&AdapterLookupBaseTestscddlm}|S)Nr)AdapterLookupBase)rarZ)r3rZs rr}z&AdapterLookupBaseTests._getTargetClasscs <  rc.|j|Sr/rrs rrzAdapterLookupBaseTests._makeOnegs%t##%h//rc$Gdd}|S)NceZdZdZy).Subregistryc g|_g|_yr/)rrr=s rrOzEAdapterLookupBaseTests._makeSubregistry..Subregistry.__init__ls!#$&!rNrPr rr Subregistryr^ks 'rr`r )r3rrr`s r_makeSubregistryz'AdapterLookupBaseTests._makeSubregistryjs ' '}rc&Gdd}||S)NceZdZdZy)6AdapterLookupBaseTests._makeRegistry..Registryc ||_g|_yr/)rr"rqs rrOz?AdapterLookupBaseTests._makeRegistry..Registry.__init__ss!)rNrPr rrr%rdrs rr%r )r3rrr%s rr&z$AdapterLookupBaseTests._makeRegistryqs  !!rc~|j}|j|}|j|jiyr/)r&rrrp)r3ralbs rtest_ctor_empty_registryz/AdapterLookupBaseTests.test_ctor_empty_registryxs2%%'mmH% ,rcddlm}ddlm}|d}|d|f}|j ||}|j |}|j t|jjt|||g|j |j|||g|j |j||g|j t|j|t||gyNrrInterfaceClassIFooIBar) r*rzope.interface.interfacerlr&rrrrpkeysr3rrlrmrnrrgs rtest_ctor_w_registry_providedz4AdapterLookupBaseTests.test_ctor_w_registry_provided}s,;f%ftg.%%dD1mmH%  3 3 56tY 78 : -d|< -v6 y 9:t - /rcGdd}Gdd|j|}|j}||}|j|y)NceZdZdZy)AAdapterLookupBaseTests.test_changed_empty_required..Mixincyr/r rCs rrnzIAdapterLookupBaseTests.test_changed_empty_required..Mixin.changedrbrNr r r rnr rrMixinru rrxc eZdZy)CAdapterLookupBaseTests.test_changed_empty_required..DerivedNr r rrrpr{rrrp)r}r&rn)r3rxrprrgs rtest_changed_empty_requiredz2AdapterLookupBaseTests.test_changed_empty_requiredsG   d**,e %%'h CrcGdd}Gdd|j|}Gdd}|d}|d}|j}||}d |j|<d |j|<|j||j t |jd |j |j d|j |j |y) NceZdZdZy)=AdapterLookupBaseTests.test_changed_w_required..Mixincyr/r rCs rrnzEAdapterLookupBaseTests.test_changed_w_required..Mixin.changedrbrNrwr rrrxrryrrxc eZdZy)?AdapterLookupBaseTests.test_changed_w_required..DerivedNr r rrrprrrrpc"eZdZdZdZdZdZy)CAdapterLookupBaseTests.test_changed_w_required..FauxWeakrefNc||_yr/_here)r3heres rrOzLAdapterLookupBaseTests.test_changed_w_required..FauxWeakref.__init__s ! rc"|jr|SdSr/rr=s r__call__zLAdapterLookupBaseTests.test_changed_w_required..FauxWeakref.__call__s#zzt3t3rc||_yr/)_unsub)r3targets rrzOAdapterLookupBaseTests.test_changed_w_required..FauxWeakref.unsubscribes $ r)r r r rrOrrr rr FauxWeakrefrsF " 4 %rrFTrr)r}r& _requiredrnrr<r)r3rxrprgonerrrgs rtest_changed_w_requiredz.AdapterLookupBaseTests.test_changed_w_requireds   d**,e  % %5!4 %%'h d d C S]]+Q/ d+ c*rcddlm}ddlm}|d}|d|f}|j }|j |}||g|_|j|jt|jjt|||g|j|j|||g|j|j||g|jt|j|t||gyrj) r*rrorlr&rrinit_extendorsrrrprprqs r)test_init_extendors_after_registry_updatez@AdapterLookupBaseTests.test_init_extendors_after_registry_updates,;f%ftg.%%'mmH%"D\   3 3 56tY 78 : -d|< -v6 y 9:t - /rc,ddlm}ddlm}|d}|d|f}|j }|j |}|j ||j ||jt|jjt|||g|j|j|||g|j|j||g|jt|j|t||gyrj) r*rrorlr&rrsrrrprprqs rtest_add_extendorz(AdapterLookupBaseTests.test_add_extendors,;f%ftg.%%'mmH%    3 3 56tY 78 : -d|< -v6 y 9:t - /rc ddlm}ddlm}|d}|d|f}|j ||}|j |}|j ||jt|jjt|||g|j|j||g|j|j||g|jt|j|t|gyrj) r*rrorlr&rrwrrrprprqs rtest_remove_extendorz+AdapterLookupBaseTests.test_remove_extendors,;f%ftg.%%dD1mmH% D!  3 3 56tY 78 : -v6 -v6 y 9: )rc^ddlm}|d}|d|f}|j}|j|}|j |f|}|j |d|j t |jd|j|j|jyNrrkrmrnr) rorlr&rrmrr<rrweakrefr3rlrmrnrrgresults rtest__uncached_lookup_empty_roz5AdapterLookupBaseTests.test__uncached_lookup_empty_ros;f%ftg.%%'mmH%%%tgt4 & S]]+Q/ dllncmm4rcddlm}|d}|d|f}|j||}|j}|jj ||j |}|j|f|}|j|dyNrrkrmrn) rorlr&rar"rUrrmrr3rlrmrnrsubrrgrs r test__uncached_lookup_order_missz7AdapterLookupBaseTests.test__uncached_lookup_order_misss;f%ftg.%%dD1$$& 4 mmH%%%tgt4 &rc6ddlm}|d}|d|f}|j}|j}iig|_|j j ||j|}||_|j|f|}|j|dyr) rorlr&rarr"rUrrrmrrs r$test__uncached_lookup_extendors_missz;AdapterLookupBaseTests.test__uncached_lookup_extendors_misss;f%ftg.%%'$$&b 4 mmH%%%tgt4 &rcjddlm}|d}|d|f}|d}|j||}|j}t }i||d|iiig|_|j j||j|}||_ |j|f|} |j| dyNrrkrmrnIQuxr rorlr&rar|rr"rUrrrmr r3rlrmrnrrr irrelevantrgrs r1test__uncached_lookup_components_miss_wrong_ifacezHAdapterLookupBaseTests.test__uncached_lookup_components_miss_wrong_ifaces;f%ftg.f%%%dD1$$&X  D2z*    4 mmH%%%tgt4 &rcZddlm}|d}|d|f}|j||}|j}t }i||d|iiig|_|j j||j|}||_ |j|f|}|j|dyNrrkrmrn wrongnamer r3rlrmrnrrrrgrs r0test__uncached_lookup_components_miss_wrong_namezGAdapterLookupBaseTests.test__uncached_lookup_components_miss_wrong_names;f%ftg.%%dD1$$&H  D; 2    4 mmH%%%tgt4 &rcZddlm}|d}|d|f}|j||}|j}t }i||d|iiig|_|j j||j|}||_ |j|f|}|j||yNrrkrmrnr rorlr&rar|rr"rUrrrmr) r3rlrmrnrr _expectedrgrs r test__uncached_lookup_simple_hitz7AdapterLookupBaseTests.test__uncached_lookup_simple_hit*s;f%ftg.%%dD1$$&H  D2y/* +   4 mmH%%%tgt4 fi(rcddlm}|d}|d|f}|j||}|j}t }i||d|iiig|_|j j||j|}||_ |j|f|}|j|f|} |j|||j| |yrr) r3rlrmrnrrrrgrresult2s r"test__uncached_lookup_repeated_hitz9AdapterLookupBaseTests.test__uncached_lookup_repeated_hit;s;f%ftg.%%dD1$$&H  D2y/* +   4 mmH%%%tgt4&&w5 fi( gy)rcddlm}ddlm}|d}|d|f}||Gdd}|}|j }|j }iig|_|jj||j|} | j| _ | |_ t} | j|f|| } |j| | y) Nr implementerrkrmrnc eZdZy)FAdapterLookupBaseTests.test_queryMultiAdaptor_lookup_miss..FooNr r rrFoorS rrdefault)zope.interface.declarationsrrorlr&rarr"rUrrmrzrr|queryMultiAdapterr) r3rrlrmrnrfoorrrgrrs r"test_queryMultiAdaptor_lookup_missz9AdapterLookupBaseTests.test_queryMultiAdaptor_lookup_missNs;;f%ftg. T     e%%'$$&     4 mmH%)) 8&&vtX&F fh'rcddlm}ddlm}|d|j }|j |j _fd}|j||dy)Nrrk)MissingSomeAttrsrmc*j|fSr/)r)obrmrgs rtestzVAdapterLookupBaseTests.test_queryMultiAdapter_errors_on_attribute_access..testrs(( rr)expected_missing) rorlzope.interface.testsrr&rrmrz test_raises)r3rlrrrrmrgs @@r1test_queryMultiAdapter_errors_on_attribute_accesszHAdapterLookupBaseTests.test_queryMultiAdapter_errors_on_attribute_accessesZ <9f%%%'mmH%))   $$T4+$Nrcddlm}ddlm}|d}|d|f}||Gdd}|}|j ||}|j }t } gfd} i||d | iiig|_|jj||j|} | j| _ | |_ t } | j|f|| } |j| | |j!|gy) Nrrrkrmrnc eZdZy)GAdapterLookupBaseTests.test_queryMultiAdaptor_factory_miss..FooNr r rrrrrrrc(j|yr/r)rrs rrzLAdapterLookupBaseTests.test_queryMultiAdaptor_factory_miss.._factorys    (rrrrrrorlr&rar|rr"rUrrmrzrrrr)r3rrlrmrnrrrrrrrgrrrs @r#test_queryMultiAdaptor_factory_missz:AdapterLookupBaseTests.test_queryMultiAdaptor_factory_misszs ;;f%ftg. T     e%%dD1$$&H   )  D2x.) *   4 mmH%)) 8&&vtX&F fh' u-rc ddlm}ddlm}|d}|d|f}||Gdd}|}|j ||}|j }t g fd} i||d | iiig|_|jj||j|} | j| _ | |_ t } | j|f|| } |j| |j! |gy) Nrrrkrmrnc eZdZy)FAdapterLookupBaseTests.test_queryMultiAdaptor_factory_hit..FooNr r rrrrrrrc*j|Sr/r)rrrs rrzKAdapterLookupBaseTests.test_queryMultiAdaptor_factory_hit.._factorys    ( rrrr)r3rrlrmrnrrrrrrgrrrrs @@r"test_queryMultiAdaptor_factory_hitz9AdapterLookupBaseTests.test_queryMultiAdaptor_factory_hits ;;f%ftg. T     e%%dD1$$&H     D2x.) *   4 mmH%)) 8&&vtX&F fi( u-rc|j|j}fd}d||_tddtg}|j |d}|j ||dd|fy)NcSr/r )rfactorys rrzzKAdapterLookupBaseTests.test_queryMultiAdapter_super_unwraps..lookupsNrc|Sr/r )rs rrzLAdapterLookupBaseTests.test_queryMultiAdapter_super_unwraps..factorysKr*abc)rr&rzrrr)r3rgrzobjectsrrrs @r$test_queryMultiAdapter_super_unwrapsz;AdapterLookupBaseTests.test_queryMultiAdapter_super_unwrapssymmD..01    G   G  &&w5      "  rc^ddlm}|d}|d|f}|j}|j|}|j |f|}|j |d|j t |jd|j|j|jy)Nrrkrmrnr r) rorlr&rrnrr<rrrrs r!test__uncached_lookupAll_empty_roz8AdapterLookupBaseTests.test__uncached_lookupAll_empty_ros;f%ftg.%%'mmH%(($$7 $ S]]+Q/ dllncmm4rc(ddlm}|d}|d|f}|j||}|j}|jj ||j |}||_|j|f|}|j|dyNrrkrmrnr ) rorlr&rar"rUrrrnrrs r#test__uncached_lookupAll_order_missz:AdapterLookupBaseTests.test__uncached_lookupAll_order_misss;f%ftg.%%dD1$$& 4 mmH%(($$7 $rc6ddlm}|d}|d|f}|j}|j}iig|_|j j ||j|}||_|j|f|}|j|dyr) rorlr&rarr"rUrrrnrrs r'test__uncached_lookupAll_extendors_missz>AdapterLookupBaseTests.test__uncached_lookupAll_extendors_misss;f%ftg.%%'$$&b 4 mmH%(($$7 $rcjddlm}|d}|d|f}|d}|j||}|j}t }i||d|iiig|_|j j||j|}||_ |j|f|} |j| dy)Nrrkrmrnrrr ) rorlr&rar|rr"rUrrrnrrs r(test__uncached_lookupAll_components_missz?AdapterLookupBaseTests.test__uncached_lookupAll_components_misss;f%ftg.f%%%dD1$$&X  D2z*+ ,   4 mmH%(($$7 $rcddlm}|d}|d|f}|j||}|j}t }t }i||||diig|_|j j||j|}||_ |j|f|} |jt| d|fd|fgyNrrkrmrn)rnamedrr) rorlr&rar|rr"rUrrrnrr r3rlrmrnrrr_namedrgrs r#test__uncached_lookupAll_simple_hitz:AdapterLookupBaseTests.test__uncached_lookupAll_simple_hits;f%ftg.%%dD1$$&H   Dy6:; <   4 mmH%(($$7 2y/GV;L)MNrcddlm}|d}|d|f}|j||}|j}t }t }i||||diig|_|j j||j|}|j|_ ||_ |j|f|} |jt| ddgyr)rorlr&rar|rr"rUrrnrrnamesrrrs r test_namesz!AdapterLookupBaseTests.test_namess;f%ftg.%%dD1$$&H   Dy6:; <   4 mmH%// D7D) "g7rc^ddlm}|d}|d|f}|j}|j|}|j |f|}|j |g|j t |jd|j|j|jyr) rorlr&rrorr<rrrrs r%test__uncached_subscriptions_empty_rozAdapterLookupBaseTests.test__uncached_subscriptions_order_miss1s;f%ftg.%%dD1$$& 4 mmH%,,dWd; $rc6ddlm}|d}|d|f}|j}|j}iig|_|j j ||j|}||_|j|f|}|j|gyr) rorlr&rarr"rUrrrorrs r+test__uncached_subscriptions_extendors_misszBAdapterLookupBaseTests.test__uncached_subscriptions_extendors_miss=s;f%ftg.%%'$$&H 4 mmH%,,dWd; $rcjddlm}|d}|d|f}|d}|j||}|j}t }i||d|iiig|_|j j||j|}||_ |j|f|} |j| gyr rorlr&rar|rr"rUrrrorrs r8test__uncached_subscriptions_components_miss_wrong_ifacezOAdapterLookupBaseTests.test__uncached_subscriptions_components_miss_wrong_ifaceJs;f%ftg.f%%%dD1$$&X  D2z*+ ,   4 mmH%,,dWd; $rcZddlm}|d}|d|f}|j||}|j}t }i||d|iiig|_|j j||j|}||_ |j|f|}|j|gyrrrs r7test__uncached_subscriptions_components_miss_wrong_namezNAdapterLookupBaseTests.test__uncached_subscriptions_components_miss_wrong_name\s;f%ftg.%%dD1$$&H  D; 23 4   4 mmH%,,dWd; $rcddlm}|d}|d|f}|j||}|j}Gdd}||}}i||d||fiiig|_|j j ||j|} | |_| j|f|} |jt| t||gy)NrrkrmrnceZdZdZy)KAdapterLookupBaseTests.test__uncached_subscriptions_simple_hit..Foocy)NTr rCs r__lt__zRAdapterLookupBaseTests.test__uncached_subscriptions_simple_hit..Foo.__lt__tsrN)r r r rr rrrrss rrr) rorlr&rarr"rUrrrorr) r3rlrmrnrrr_exp1_exp2rgrs r'test__uncached_subscriptions_simple_hitz>AdapterLookupBaseTests.test__uncached_subscriptions_simple_hitms;f%ftg.%%dD1$$&  uceu  D2u~./ 0   4 mmH%,,dWd; )?@rc ddlm}ddlm}|d}|d|f}||Gdd}|}|j ||}|j ||}|j }i fd} fd } i|dd | | fiiig|_|jj||j|} | j| _ | |_ | j|fd} |j| d |j |g|gd y) Nrrrkrmrnc eZdZy)@AdapterLookupBaseTests.test_subscribers_wo_provided..FooNr r rrrr rrrcHjdgj|yNr1 setdefaultrUr_calleds rr1zFAdapterLookupBaseTests.test_subscribers_wo_provided.._factory1   {B / 6 6w ?rcHjdgj|yNr5r rs rr5zFAdapterLookupBaseTests.test_subscribers_wo_provided.._factory2rrrr )r1r5)rrrorlr&rarr"rUrrorr subscribersr)r3rrlrmrnrrrrr1r5rgrrs @rtest_subscribers_wo_providedz3AdapterLookupBaseTests.test_subscribers_wo_provideds;;f%ftg. T     e%%dD1%%dD1$$& @ @  D2 9567 8   4 mmH%77#. $ SE"JKrcbddlm}ddlm}|d}|d|f}||Gdd}|}|j ||}|j ||}|j }it t cfd} fd } fd } i||d | | | fiiig|_|jj||j|} | j| _ | |_ | j|f|} |j| g|j|g|g|gd y) Nrrrkrmrnc eZdZy)?AdapterLookupBaseTests.test_subscribers_w_provided..FooNr r rrrrrrrcJjdgj|Sr r )rrrs rr1zEAdapterLookupBaseTests.test_subscribers_w_provided.._factory1#   {B / 6 6w ?LrcJjdgj|Srr )rrrs rr5zEAdapterLookupBaseTests.test_subscribers_w_provided.._factory2rrcHjdgj|y)N_side_effect_onlyr rs rrzMAdapterLookupBaseTests.test_subscribers_w_provided.._side_effect_onlys   2B 7 > >w Grr)r1r5r)rrrorlr&rar|rr"rUrrorrrr)r3rrlrmrnrrrrr1r5rrgrrrrs @@@rtest_subscribers_w_providedz2AdapterLookupBaseTests.test_subscribers_w_providedsD;;f%ftg. T     e%%dD1%%dD1$$&x u   H  D2 96GHIJ K   4 mmH%77#. %0 (+u(+u03u r))r r r r}rrar&rhrrr|rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrs@rrXrXas!0"- / +4/ / )" 5 ' ''&'&)"*&(.O*.:.: . 5 % %%$O$8& 5 % %%$%"A(L:%rrXceZdZdZdZdZy)VerifyingAdapterRegistryTestscddlm}|S)Nr)VerifyingAdapterRegistry)rar")r3r"s rr}z-VerifyingAdapterRegistryTests._getTargetClasss C''rc.|j|i|Sr/r)r3rkws rrz&VerifyingAdapterRegistryTests._makeOnes%t##%t2r22rcNddlm}ddlm}|j }|||y)Nr) verifyObject)IAdapterRegistry)zope.interface.verifyr&zope.interface.interfacesr'r)r3r&r'rs r,test_verify_object_provides_IAdapterRegistryzJVerifyingAdapterRegistryTests.test_verify_object_provides_IAdapterRegistrys6>==?%x0rN)r r r r}rr*r rrr r s(31rr c6eZdZdZdZdZdZdZdZdZ y) AdapterRegistryTestscddlm}|S)Nr)AdapterRegistry)rar.)r3r.s rr}z$AdapterRegistryTests._getTargetClasss :rcn|j}|jt|jdyr6)rrr<_v_subregistries)r3ars rtest_ctor_no_basesz'AdapterRegistryTests.test_ctor_no_basess( ]]_ R00115rc|j}|j|g}|jt|jd|jt|jd|j ||jyr)rrr<r0r)r3basesubs rtest_ctor_w_basesz&AdapterRegistryTests.test_ctor_w_basessg}}mmTF# S112A6 T223Q7 c4001rcD|j}|j}|j|g}|g|_|jt|jd|jt|jd|j ||jyrrrrr<r0rr3beforeafterr5s r,test__setBases_removing_existing_subregistryzAAdapterRegistryTests.test__setBases_removing_existing_subregistrys{ mmVH%  V445q9 U334a8 c5112rc|j}|j}|j}|j|g}|jdj||g|_|j t |j d|j t |j d|j||j y)Nrrr)r__dict__rUrrr<r0r)r3r:strayr;r5s rtest__setBases_wo_stray_entryz2AdapterRegistryTests.test__setBases_wo_stray_entrys  mmVH% [!((/  V445q9 U334a8 c5112rc~|j}|j}|j|g}||g|_|jt|jd|jt|jd|j ||j|j ||jyrr8r9s r*test__setBases_w_existing_entry_continuingz?AdapterRegistryTests.test__setBases_w_existing_entry_continuings mmVH%  V445q9 U334a8 c6223 c5112rc>|j}Gdd}||}}|j||j|t}|j||j |j ||j |j |y)NceZdZdZdZy)BAdapterRegistryTests.test_changed_w_subregistries..DerivedNc||_yr/rk)r3originally_changeds rrnzJAdapterRegistryTests.test_changed_w_subregistries..Derived.changeds 2 r)r r r rlrnr rrrprEs H 3rrp)r_addSubregistryr|rnrrl)r3r4rpderived1derived2rms rtest_changed_w_subregistriesz1AdapterRegistryTests.test_changed_w_subregistries s}}} 3 3%Y ( X& X&x T h''. h''.rN) r r r r}r2r6r<r@rBrKr rrr,r,s%623 33 /rr,c*eZdZdZdZdZdZdZy) Test_utilscLddlm}ddlm}|j |d|y)Nr_convert_None_to_Interfacer)rarProrr)r3rPrs r&test__convert_None_to_Interface_w_Nonez1Test_utils.test__convert_None_to_Interface_w_NonesE6 06 BrcTddlm}t}|j|||y)NrrO)rarPr|r)r3rPrDs r'test__convert_None_to_Interface_w_otherz2Test_utils.test__convert_None_to_Interface_w_other"s E 07?rcddlm}d}d}||}|j|||j|t |y)Nr_normalize_namesstrstr)rarVrrrB)r3rVSTRUNICODEnorms rtest__normalize_name_strz#Test_utils.test__normalize_name_str's=:s# w' dDM2rcDddlm}d}|j|||y)NrrUustr)rarVr)r3rVUSTRs rtest__normalize_name_unicodez'Test_utils.test__normalize_name_unicode/s: .5rchddlm}dddgitfD]}|jt||y)NrrUrg?r )rarVr|r TypeError)r3rVrDs rtest__normalize_name_otherz%Test_utils.test__normalize_name_other5s7:RR1 AE   i% @ ArN)r r r rQrSr[r_rbr rrrMrMsC @ 36 ArrM)rWunittestrrr+r-rJrRrWrZTestCaser\rErYr rrTrXr r,rMr rrres6 7<  8&&&('(   ] M x00M `/$*B/$dF8h//F8R -+[3!2!2[3|3.b X..b J1H$5$51*=/8=/@A""Ar