+
    -i4                       R t ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ]! R4      t
]! R4      t ! R	 R
4      t ! R R4      t ! R R4      t ! R R4      t ! R R]P                   4      t ! R R]P                   4      t ! R R]4      t ! R R]4      t ! R R]	]P                   4      t ! R R]P                   4      t ! R R]]4      t ! R R 4      t ! R! R"]]P                   4      t ! R# R$]]P                   4      t ! R% R&]4      t ! R' R(]P                   4      t ! R) R*]4      t ! R+ R,]4      t ! R- R.]P                   4      t ! R/ R0]4      t  ! R1 R2]P                   4      t! ! R3 R4]P                   4      t" ! R5 R6]P                   4      t# ! R7 R8]P                   4      t$ ! R9 R:]P                   4      t% ! R; R<]P                   4      t& ! R= R>]]&]4      t' ! R? R@]P                   4      t( ! RA RB](4      t) ! RC RD]P                   4      t* ! RE RF]P                   4      t+ ! RG RH]P                   4      t, ! RI RJ]P                   4      t- ! RK RL]P                   4      t. ! RM RN].]4      t/ ! RO RP]P                   4      t0 ! RQ RR]0]4      t1 ! RS RT]P                   4      t2 ! RU RV]2]]4      t3 ! RW RX4      t4 ! RY RZ4      t5R# )[z@Test the new API for making and checking interface declarations
N)InterfaceClass)MissingSomeAttrs)OptimizationTestMixin)SubclassableMixin)!NameAndModuleComparisonTestsMixinIBarIFooc                       ] tR t^!tRtR# )Foo N__name__
__module____qualname____firstlineno____static_attributes__r       H/usr/lib/python3/dist-packages/zope/interface/tests/test_declarations.pyr
   r
   !   s    r   r
   c                       ] tR t^%tRtRtR# )FooImplementedNoneNr   r   r   r   r   __implemented__r   r   r   r   r   r   %   s    Or   r   c                   *   a  ] tR t^)t o RtR tRtV tR# )	FooNoCallNc                    \        4       hNNotImplementedErrorselfs   &r   __call__FooNoCall.__call__,   s    !##r   r   )r   r   r   r   r   r    r   __classdictcell____classdict__s   @r   r   r   )   s     O$ $r   r   c                   *   a  ] tR t^0t o RR ltRtV tR# )_Py3ClassAdvicec                   ^ RI pVP                  RR7      ;_uu_ 4       pVP                  4         \        WV4       V'       d   V P	                  R4        RRR4       R#   \
         d     RRR4       R# i ; i  + '       g   i     R# ; i)    NT)recordzDidn't raise TypeErrorF)warningscatch_warningsresetwarningsexecfail	TypeError)r   codeglobslocsfails_under_py3kr*   _s   &&&&&  r   _run_generated_code#_Py3ClassAdvice._run_generated_code2   s}     	$$D$11Q""$8T$' $II67 21
   21
 211s-   A;A!A;!A8,A;7A88A;;B	r   N)T)r   r   r   r   r5   r   r"   r#   s   @r   r&   r&   0   s      r   r&   c                   2   a  ] tR t^Dt o R tR tR tRtV tR# )
NamedTestsc                t    ^ RI Hp V! R4       ! R R4      4       pV P                  VP                  R4       R# )r(   namedfooc                       ] tR t^ItRtR# )"NamedTests.test_class.<locals>.Foor   Nr   r   r   r   r
   r>   I       r   r
   Nzope.interface.declarationsr;   assertEqual__component_name__)r   r;   r
   s   &  r   
test_classNamedTests.test_classF   s;    5	u	 	 
	 	""E	
r   c                f    ^ RI Hp V! R4      R 4       pV P                  VP                  R4       R# )r(   r:   r<   c                     \        4       hr   r   )os   &r   doFoo'NamedTests.test_function.<locals>.doFooT   s    %''r   Nr@   )r   r;   rI   s   &  r   test_functionNamedTests.test_functionQ   s3    5	u	( 
	( 	1159r   c                    ^ RI Hp  ! R R4      pV! 4       pV! R4      ! V4       V P                  VP                  R4       R# )r(   r:   c                       ] tR t^]tRtR# )%NamedTests.test_instance.<locals>.Foor   Nr   r   r   r   r
   rO   ]       r   r
   r<   Nr@   )r   r;   r
   r<   s   &   r   test_instanceNamedTests.test_instanceZ   s;    5	 	eeS""E	
r   r   N)	r   r   r   r   rD   rK   rQ   r   r"   r#   s   @r   r8   r8   D   s     	
:

 

r   r8   c                   \   a  ] tR t^gt o R tR tR tR tR tR t	R t
R tR	 tR
 tRtV tR# )EmptyDeclarationTestsc                    ^ RI Hp V! 4       # r(   )DeclarationrA   rW   r   rW   s   & r   	_getEmptyEmptyDeclarationTests._getEmptyk   s    ;}r   c                \    V P                  4       pV P                  \        V4      . 4       R # r   )rZ   rB   listr   decls   & r   test___iter___empty)EmptyDeclarationTests.test___iter___emptyo   s"    ~~dR(r   c                    ^ RI Hp V P                  4       pV P                  \	        VP                  4       4      V.4       R# r(   	InterfaceN)zope.interface.interfacere   rZ   rB   r]   	flattenedr   re   r_   s   &  r   test_flattened_empty*EmptyDeclarationTests.test_flattened_emptys   s/    6~~dnn./)=r   c                T    ^ RI Hp V P                  4       pV P                  W4       R# rc   )rf   re   rZ   assertNotInrh   s   &  r   test___contains___empty-EmptyDeclarationTests.test___contains___emptyx   s    6~~)r   c                    ^ RI Hp V P                  4       pV P                  VP	                  V4      4       V P                  VP	                  VRR7      4       R# )r(   rd   TstrictN)rf   re   rZ   
assertTrueextendsrh   s   &  r   test_extends_empty(EmptyDeclarationTests.test_extends_empty}   s?    6~~Y/0Yt<=r   c                |    V P                  4       p\        VP                  4       4      pV P                  V. 4       R # r   )rZ   r]   
interfacesrB   )r   r_   
iface_lists   &  r   test_interfaces_empty+EmptyDeclarationTests.test_interfaces_empty   s/    ~~$//+,
R(r   c                l    ^ RI Hp V P                  4       pV P                  VP                  W!34       R# rc   )rf   re   rZ   rB   __sro__rh   s   &  r   test___sro___#EmptyDeclarationTests.test___sro___   s(    6~~'9:r   c                l    ^ RI Hp V P                  4       pV P                  VP                  V34       R# rc   )rf   re   rZ   rB   __iro__rh   s   &  r   test___iro___#EmptyDeclarationTests.test___iro___   s'    6~~	|4r   c                    V P                  4       pV P                  VP                  R 4      4       V P                  VP                  RR4      R4       V P	                  VP
                  4       R# )attrabcdefN)rZ   assertIsNonegetrB   assertFalse_v_attrsr^   s   & r   test_getEmptyDeclarationTests.test_get   sT    ~~$((6*+%/7 	'r   c                    V P                  4       p\        4       Vn        VP                  V4       V P	                  VP                  4       R # r   )rZ   objectr   changedr   r^   s   & r    test_changed_w_existing__v_attrs6EmptyDeclarationTests.test_changed_w_existing__v_attrs   s5    ~~T'r   r   N)r   r   r   r   rZ   r`   ri   rm   rt   ry   r}   r   r   r   r   r"   r#   s   @r   rT   rT   g   s<     )>
*
>)
;
5
(( (r   rT   c                      a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )DeclarationTestsc                    ^ RI Hp V# rV   rX   rY   s   & r   _getTargetClass DeclarationTests._getTargetClass       ;r   c                .    V P                  4       ! V/ VB # r   r   r   argskws   &*,r   _makeOneDeclarationTests._makeOne       ##%t2r22r   c                p    V P                  4       pV P                  \        VP                  4      . 4       R # r   )r   rB   r]   	__bases__r^   s   & r   test_ctor_no_bases#DeclarationTests.test_ctor_no_bases   s&    }}dnn-r2r   c                    \        R 4      pV P                  V4      pV P                  \        VP                  4      V.4       R# r   N)r   r   rB   r]   r   r   r   r_   s   &  r   test_ctor_w_interface_in_bases/DeclarationTests.test_ctor_w_interface_in_bases   s5    f%}}T"dnn-v6r   c                    ^ RI Hp V! 4       pV P                  V4      pV P                  \	        VP
                  4      V.4       R# )r(   
ImplementsN)rA   r   r   rB   r]   r   )r   r   implr_   s   &   r   test_ctor_w_implements_in_bases0DeclarationTests.test_ctor_w_implements_in_bases   s5    :|}}T"dnn-v6r   c                ~    V P                  4       pVP                  V4       V P                  VP                  4       R # r   )r   r   r   r   r^   s   & r   !test_changed_wo_existing__v_attrs2DeclarationTests.test_changed_wo_existing__v_attrs   s+    }}T$--(r   c                H    V P                  4       pV P                  W4       R # r   )r   rl   r^   s   & r   test___contains__w_self(DeclarationTests.test___contains__w_self   s    }}$r   c                ^    \        R 4      pV P                  4       pV P                  W4       R# r   )r   r   rl   r   s   &  r   "test___contains__w_unrelated_iface3DeclarationTests.test___contains__w_unrelated_iface   s%    f%}}$r   c                `    \        R 4      pV P                  V4      pV P                  W4       R# r   )r   r   assertInr   s   &  r   !test___contains__w_base_interface2DeclarationTests.test___contains__w_base_interface   s&    f%}}T"d!r   c                v    \        R 4      pV P                  V4      pV P                  \        V4      V.4       R# r   r   r   rB   r]   r   s   &  r   test___iter___single_base*DeclarationTests.test___iter___single_base   s0    f%}}T"ddV,r   c                    \        R 4      p\        R4      pV P                  W4      pV P                  \        V4      W.4       R# r   r   Nr   r   r   r   r_   s   &   r   test___iter___multiple_bases-DeclarationTests.test___iter___multiple_bases   s:    f%f%}}T(dd\2r   c                    \        R 4      p\        RV34      pV P                  V4      pV P                  \        V4      V.4       R# r   r   r   s   &   r   test___iter___inheritance*DeclarationTests.test___iter___inheritance   s>    f%ftg.}}T"ddV,r   c                    \        R 4      p\        R4      pV P                  W!V34      pV P                  \        V4      W!.4       R# r   r   r   s   &   r   'test___iter___w_nested_sequence_overlap8DeclarationTests.test___iter___w_nested_sequence_overlap   s>    f%f%}}T$<0dd\2r   c                    ^ RI Hp \        R4      pV P                  V4      pV P	                  \        VP                  4       4      W!.4       R# )r(   rd   r   Nrf   re   r   r   rB   r]   rg   )r   re   r   r_   s   &   r   test_flattened_single_base+DeclarationTests.test_flattened_single_base   s<    6f%}}T"dnn./$1BCr   c                    ^ RI Hp \        R4      p\        R4      pV P                  W#4      pV P	                  \        VP                  4       4      W#V.4       R# r(   rd   r   r   Nr   r   re   r   r   r_   s   &    r   test_flattened_multiple_bases.DeclarationTests.test_flattened_multiple_bases   sH    6f%f%}}T(dnn./$i1HIr   c                    ^ RI Hp \        R4      p\        RV34      pV P                  V4      pV P	                  \        VP                  4       4      W2V.4       R# r   r   r   s   &    r   test_flattened_inheritance+DeclarationTests.test_flattened_inheritance   sL    6f%ftg.}}T"dnn./$i1HIr   c                    ^ RI Hp \        R4      p\        R4      pV P                  W2V34      pV P	                  \        VP                  4       4      W2V.4       R# r   r   r   s   &    r   (test_flattened_w_nested_sequence_overlap9DeclarationTests.test_flattened_w_nested_sequence_overlap   sN    6f%f%
 }}T$<0dnn./$i1HIr   c                    \        R 4      p\        R4      pV P                  V4      pW2,
          pV P                  W@P                  4       4       V P	                  \        V4      V.4       R# r   r   r   assertIsInstancer   rB   r]   r   r   r   beforeafters   &    r    test___sub___unrelated_interface1DeclarationTests.test___sub___unrelated_interface  sX    f%f%t$e%9%9%;<etf-r   c                    \        R 4      pV P                  V4      pW!,
          pV P                  \        V4      . 4       R# r   r   )r   r   r   r   s   &   r   test___sub___related_interface/DeclarationTests.test___sub___related_interface  s5    f%t$eb)r   c                    \        R 4      p\        RV34      pV P                  V4      pW2,
          pV P                  \        V4      . 4       R# r   r   r   s   &    r   -test___sub___related_interface_by_inheritance>DeclarationTests.test___sub___related_interface_by_inheritance  sC    f%ftg.t$eb)r   c                    \        R 4      p\        R4      pV P                  V4      pW2,           pV P                  W@P                  4       4       V P	                  \        V4      W.4       R# r   r   r   s   &    r    test___add___unrelated_interface1DeclarationTests.test___add___unrelated_interface  sX    f%f%t$e%9%9%;<etl3r   c                    \        R 4      p\        R4      p\        R4      pV P                  W4      pV P                  W#4      pWE,           pV P                  \        V4      WV.4       R# )r   r   IBazNr   )r   r   r   r   r   otherr   s   &      r   test___add___related_interface/DeclarationTests.test___add___related_interface   s\    f%f%f%t*d)et4&89r   c                   ^ RI Hp ^ RI Hp ^ RIHp \        R4      p\        RV34      pV! VP                  P                  R4      ;_uu_ 4        V P                  V4      pWe,           pRRR4       V P                  XP                  WTV34       V P                  VP                  WT34       V P                  \        V4      WT.4       R#   + '       g   i     Li; i)r(   rd   ro	C3SettingIBaseIDerivedTN)zope.interfacere   r   zope.interface.tests.test_ror   r   C3
STRICT_IROr   rB   r   r   r]   )r   re   r   r   r   r   baser   s   &       r   "test___add___overlapping_interface3DeclarationTests.test___add___overlapping_interface)  s     	-%:w'!*uh7ruu''..=='DOE / 	)(DE8*;<ex&78 /.s   CC	c                   ^ RI Hp ^ RI Hp ^ RI Hp ^ RI Hp ^ RIHp  ! R RV4      p ! R R	V4      pV! V4       ! R
 R4      4       pV! VP                  P                  R4      ;_uu_ 4        V! V4      V,           p	RRR4       V P                  X	P                  WWa34       V P                  V	P                  Wv34       V P                  \        V	4      Wv.4       R#   + '       g   i     Li; i)r(   rd   implementedByimplementerr   r   c                       ] tR tRtRtR# )PDeclarationTests.test___add___overlapping_interface_implementedBy.<locals>.IBaseiI  r   Nr   r   r   r   r   r  I  rP   r   r   c                       ] tR tRtRtR# )SDeclarationTests.test___add___overlapping_interface_implementedBy.<locals>.IDerivediL  r   Nr   r   r   r   r   r  L  rP   r   r   c                       ] tR tRtRtR# )ODeclarationTests.test___add___overlapping_interface_implementedBy.<locals>.BaseiO  r   Nr   r   r   r   Baser  O  r?   r   r	  TN)r   re   r   r  r   r   r   r   r   rB   r|   r   r]   )
r   re   r   r  r   r   r   r   r	  r   s
   &         r   0test___add___overlapping_interface_implementedByADeclarationTests.test___add___overlapping_interface_implementedBy>  s    
 	-0.%:	I 		u 	 
U		 	 
	 ruu''..!$'(2E / 	%(KL8*;<ex&78 /.s   /C  C0	r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
  r   r"   r#   s   @r   r   r      s     337
7)
%%
"
-
3-3DJJ
J.**4:9*9 9r   r   c                   b   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tRtV tR# )TestImmutableDeclarationi[  c                    ^ RI Hp V# )r(   )_ImmutableDeclaration)rA   r  )r   r  s   & r   r   (TestImmutableDeclaration._getTargetClass]  s    E$$r   c                    ^ RI Hp V# )r(   )_empty)rA   r  )r   r  s   & r   rZ   "TestImmutableDeclaration._getEmptya  s
    6r   c                    ^ RI pVP                  VP                  V P                  4       4      4      pV P	                  W P                  4       4       R# )r(   N)pickleloadsdumpsrZ   assertIs)r   r  copieds   &  r   test_pickle$TestImmutableDeclaration.test_picklee  s6    fll4>>+;<=fnn./r   c                l    V P                  V P                  4       ! 4       V P                  4       4       R # r   )r  r   rZ   r   s   &r   test_singleton'TestImmutableDeclaration.test_singletonj  s'      "$NN	
r   c                Z    V P                  V P                  4       P                  R4       R # )Nr   )rB   rZ   r   r   s   &r   test__bases__&TestImmutableDeclaration.test__bases__p  s    )33R8r   c                
   V P                  4       pRVn        V P                  V P                  4       P                  R4       V P                  \        4      ;_uu_ 4        RVn        RRR4       R#   + '       g   i     R# ; i)   Nr   )r#  )rZ   r   rB   assertRaisesr/   )r   emptys   & r   test_change__bases__-TestImmutableDeclaration.test_change__bases__s  sY     )33R8y))"EO *)))s   A11B	c                    V P                  4       pVP                  pV P                  / V4       ^V^&   V P                  / VP                  4       R# )   N)rZ   
dependentsrB   )r   r%  depss   &  r   test_dependents(TestImmutableDeclaration.test_dependents{  sH     T"QU--.r   c                D    V P                  4       P                  R 4       R # r   )rZ   r   r   s   &r   test_changed%TestImmutableDeclaration.test_changed  s      &r   c                "   V P                  V P                  4       P                  V 4      4       V P                  V P                  4       P                  V R R7      4       V P                  V P                  4       P                  V RR7      4       R# )Trp   FN)r   rZ   rs   r   s   &r   test_extends_always_false2TestImmutableDeclaration.test_extends_always_false  sl    )11$78)11$t1DE)11$u1EFr   c                    V P                  V P                  4       P                  R 4      4       V P                  V P                  4       P                  R ^*4      ^*4       R# )nameN)r   rZ   r   rB   r   s   &r   test_get_always_default0TestImmutableDeclaration.test_get_always_default  sF    $..*..v67)--fb92>r   c                   V P                  4       pV P                  VP                  / 4       ^*VP                  R&   V P                  VP                  / 4       V P                  VP	                  R4      4       / ;q!n        ^*VR&   V P                  VP                  / 4       V P                  VP	                  R4      4       R# )*   r   N)rZ   rB   r   r   r   )r   r_   attrss   &  r   test_v_attrs%TestImmutableDeclaration.test_v_attrs  s    ~~+ "f+$((6*+ ""f+$((6*+r   r   N)r   r   r   r   r   rZ   r  r  r   r&  r,  r/  r2  r6  r;  r   r"   r#   s   @r   r  r  [  sB     %0

9#/'G
?, ,r   r  c                   \   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tRtV tR# )TestImplementsi  c                    ^ RI Hp V# )r(   r   )rA   r   )r   r   s   & r   r   TestImplements._getTargetClass      :r   c                .    V P                  4       ! V/ VB # r   r   r   s   &*,r   r   TestImplements._makeOne  r   r   c                2    ^ RI Hp  ! R R4      pV! V4      # )r(   r   c                       ] tR tRtRtR# )+TestImplements._makeOneToCompare.<locals>.Ai  r   Nr   r   r   r   ArF    rP   r   rG  rA   r   )r   r   rG  s   &  r   _makeOneToCompare TestImplements._makeOneToCompare  s    =	 	 Qr   c                   V P                  4       pV P                  VP                  R 4       V P                  VP                  R4       V P                  VP                  R4       V P                  \        VP                  4      . 4       R # )N?r   )r   rB   inheritdeclaredr   r]   r   r   r   s   & r   r   !TestImplements.test_ctor_no_bases  sb    }}t,+,dnn-r2r   c                j    V P                  4       pR Vn        V P                  \        V4      R4       R# )TestingzclassImplements(Testing)N)r   r   rB   reprrO  s   & r   test___repr__TestImplements.test___repr__  s)    }}!d%?@r   c                v    ^ RI Hp V P                  4       pV P                  VP	                  4       VR34       R# )r(   r   Nr   )rA   r   r   rB   
__reduce__)r   r   r   s   &  r   test___reduce__TestImplements.test___reduce__  s,    =}}*]G,DEr   c                T   ^ RI Hp  ! R R4      p ! R R4      p\        R4      pV P                  V! V4      V! V4      4       V P                  \	        V! V4      4      \	        V! V4      4      4       V P                  V! V4      R4       V P                  RV! V4      4       V P                  V! V4      V! V4      4       V P                  V! V4      V4       V P                  V! V4      V! V4      4       V P                  V! V4      V4       V P                  V! V4      V4       R# )r(   r   c                       ] tR tRtRtR# )#TestImplements.test_sort.<locals>.Ai  r   Nr   r   r   r   rG  r\    rP   r   rG  c                       ] tR tRtRtR# )#TestImplements.test_sort.<locals>.Bi  r   Nr   r   r   r   Br^    rP   r   r_  r   N)
rA   r   r   rB   hash
assertLessassertGreaterassertLessEqualassertGreaterEqualassertNotEqual)r   r   rG  r_  r   s   &    r   	test_sortTestImplements.test_sort  s   =	 		 	 f%q)=+;<mA./mA6F1GHa($/!	
 	a(-*:;=+T2]1-}Q/?@a 0$7M!,d3r   c                   ^ RI Hp  ! R R4      p ! R R4      p ! R R4      pV! V4      pV! V4      pV! V4      pV P                  VV4       V P                  WV4       V P                  We4       V P                  Wu4       V P                  WW4       V P                  Wu4       V P                  WW4       V P                  Wv4       V P                  Wg4       R# )	r(   r   c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )1TestImplements.test_proxy_equality.<locals>.Proxyi  c                    Wn         R # r   _wrapped)r   wrappeds   &&r   __init__:TestImplements.test_proxy_equality.<locals>.Proxy.__init__  s     'r   c                    \        4       hr   r   r   r5  s   &&r   __getattr__=TestImplements.test_proxy_equality.<locals>.Proxy.__getattr__      )++r   c                     V P                   V8H  # r   rl  r   r   s   &&r   __eq__8TestImplements.test_proxy_equality.<locals>.Proxy.__eq__      }}--r   c                     V P                   V8g  # r   rl  rw  s   &&r   __ne__8TestImplements.test_proxy_equality.<locals>.Proxy.__ne__  rz  r   rl  N)
r   r   r   r   ro  rs  rx  r|  r   r"   r#   s   @r   Proxyrj    s     (,.. .r   r~  c                       ] tR tRtRtR# )-TestImplements.test_proxy_equality.<locals>.Ai  r   Nr   r   r   r   rG  r    rP   r   rG  c                       ] tR tRtRtR# )-TestImplements.test_proxy_equality.<locals>.Bi  r   Nr   r   r   r   r_  r    rP   r   r_  N)rA   r   rB   re  )r   r   r~  rG  r_  implementedByAimplementedByBproxys   &       r   test_proxy_equality"TestImplements.test_proxy_equality  s    =	. 	.	 		 	 'q)&q)n% 		
 	N;N;////E2N2r   c                j   V P                  4       pV P                  VP                  4       V P                  R VP                  4       ^*Vn        V P                  R VP                  4       VP                  R4       V P                  VP                  4       V P                  R VP                  4       R# _super_cacheN)r   r   r  rl   __dict__r   r   rO  s   & r    test_changed_deletes_super_cache/TestImplements.test_changed_deletes_super_cache  s    }}$++,7ndmm4T$++,7r   c                $   V P                  4       pV P                  VP                  4       V P                  R VP                  4       VP                  R4       V P                  VP                  4       V P                  R VP                  4       R# r  )r   r   r  rl   r  r   rO  s   & r   %test_changed_does_not_add_super_cache4TestImplements.test_changed_does_not_add_super_cache  si    }}$++,7T$++,7r   r   N)r   r   r   r   r   r   rI  r   rT  rX  rf  r  r  r  r   r"   r#   s   @r   r>  r>    s?     3 3A
F
40*3X
88 8r   r>  c                      a a ] tR tRt oR t]tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tV 3R ltV 3R ltV 3R ltV 3R ltV 3R ltV 3R ltRtVtV ;t# )Test_implementedByFallbacki  c                    ^ RI Hp V# )r(   )implementedByFallback)rA   r  )r   r  s   & r   r   *Test_implementedByFallback._getTargetClass  s    E$$r   c                .    V P                  4       ! V/ VB # r   r   r   s   &*,r   _callFUT#Test_implementedByFallback._callFUT$  r   r   c                     ! R  R4      pV! 4       pRVn         V P                  \        V P                  V4      4      . 4       R# )c                       ] tR tRtRtRtR# )]Test_implementedByFallback.test_dictless_wo_existing_Implements_wo_registrations.<locals>.Fooi(  r   Nr   r   r   r   r   	__slots__r   r   r   r   r
   r  (      ,Ir   r
   N)r   rB   r]   r  r   r
   r<   s   &  r   5test_dictless_wo_existing_Implements_wo_registrationsPTest_implementedByFallback.test_dictless_wo_existing_Implements_wo_registrations'  s9    	- 	-e"dmmC0126r   c                j     ! R  R4      pV! 4       pV P                  \        V P                  V4       R# )c                   D   a  ] tR tRt o R tR t]! ]]4      tR tRt	V t
R# )hTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__.<locals>.Fooi0  c                    \        4       hr   r   r   s   &r   	_get_implrTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__.<locals>.Foo._get_impl1  ru  r   c                    \         hr   )r/   )r   vals   &&r   	_set_implrTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__.<locals>.Foo._set_impl4  s    r   c                    \        4       hr   r   r   s   &r   r    qTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__.<locals>.Foo.__call__9  s    )++r   r   N)r   r   r   r   r  r  propertyr   r    r   r"   r#   s   @r   r
   r  0  s'     ,  'y)<O, ,r   r
   Nr$  r/   r  r  s   &  r   @test_dictless_wo_existing_Implements_cant_assign___implemented__[Test_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__.  s+    	, 	, e)T]]C8r   c                   ^ RI Hp  ! R R4      pV! 4       pRVn        \        4       p\	        VR4      ;_uu_ 4       pWEV&   V P                  V P                  V4      V4       RRR4       R#   + '       g   i     R# ; i)r(   declarationsc                       ] tR tRtRtRtR# )\Test_implementedByFallback.test_dictless_wo_existing_Implements_w_registrations.<locals>.FooiC  r   Nr  r  r   r   r   r
   r  C  r  r   r
   N#BuiltinImplementationSpecifications)r   r  r   r   _MonkeyDictr  r  )r   r  r
   r<   regspecss   &     r   4test_dictless_wo_existing_Implements_w_registrationsOTest_implementedByFallback.test_dictless_wo_existing_Implements_w_registrations@  su    /	- 	- e"h>@ @CH#JMM$--,c2@ @ @ @s   &A--A>	c                    ^ RI Hp V! 4       p ! R R4      pV! 4       pW$n        V P                  V P	                  V4      V4       R# )r(   r   c                       ] tR tRtRtRtR# )KTest_implementedByFallback.test_dictless_w_existing_Implements.<locals>.FooiR  r   Nr  r  r   r   r   r
   r  R  r  r   r
   N)rA   r   r   r  r  )r   r   r   r
   r<   s   &    r   #test_dictless_w_existing_Implements>Test_implementedByFallback.test_dictless_w_existing_ImplementsN  s<    :|	- 	- e"dmmC($/r   c                     ! R  R4      pV! 4       p\        R4      pV3Vn        V P                  \        V P	                  V4      4      V.4       R# )c                       ] tR tRtRtRtR# )OTest_implementedByFallback.test_dictless_w_existing_not_Implements.<locals>.Fooi[  r   Nr  r  r   r   r   r
   r  [  r  r   r
   r   N)r   r   rB   r]   r  )r   r
   r<   r   s   &   r   'test_dictless_w_existing_not_ImplementsBTest_implementedByFallback.test_dictless_w_existing_not_ImplementsY  sI    	- 	- ef%#gdmmC01D6:r   c                ~   a ^ RI Hp V! 4       o ! V3R lR4      pV P                  V P                  V4      S4       R# )r(   r   c                      < ] tR tRt Z tRtR# )JTest_implementedByFallback.test_w_existing_attr_as_Implements.<locals>.Fooig  r   Nr   r   s   r   r
   r  g      "Or   r
   NrA   r   r  r  r   r   r
   r   s   &  @r   "test_w_existing_attr_as_Implements=Test_implementedByFallback.test_w_existing_attr_as_Implementsc  0    :|	# 	# 	dmmC($/r   c           	     J   ^ RI Hp ^ RIHp \	        VR4      ;_uu_ 4       pV P                  \        V P                  \        4      4      . 4       V P                  \        V P                  \        4      4      . 4       V P                  \        V P                  \        4      4      . 4       \        \        \        3 FF  pW4,          pV P                  WR4       V P                  \        V4      RVP                  : R24       KH  	  RRR4       R#   + '       g   i     R# ; i)r(   r  r   r  classImplements()N)r   r  rA   r   r  rB   r]   r  tupledictr   rS  r   )r   r  r   r  typspecs   &     r   test_builtins_added_to_cache7Test_implementedByFallback.test_builtins_added_to_cachel  s    /:>@ @CHT$--"67<T$--"56;T$--"56;tT*z%%d7  d$'LL"34 +@ @ @ @s   C&DD"	c                   ^ RI Hp \        4       \        4       \        4       rCp\        VR4      ;_uu_ 4       pW%\        &   W5\
        &   WE\        &   V P                  V P                  \        4      V4       V P                  V P                  \
        4      V4       V P                  V P                  \        4      V4       RRR4       R#   + '       g   i     R# ; i)r(   r  r  N)	r   r  r   r  r  r]   r  r  r  )r   r  t_specl_specd_specr  s   &     r   test_builtins_w_existing_cache9Test_implementedByFallback.test_builtins_w_existing_cache{  s    /!'68VX>@ @CH!%L $K $KMM$--.7MM$---v6MM$---v6@ @ @ @s   BC

C	c                n     ! R  R4      pV P                  \        V P                  V4      4      . 4       R# )c                       ] tR tRtRtR# )ITest_implementedByFallback.test_oldstyle_class_no_assertions.<locals>.Fooi  r   Nr   r   r   r   r
   r    rP   r   r
   NrB   r]   r  r   r
   s   & r   !test_oldstyle_class_no_assertions<Test_implementedByFallback.test_oldstyle_class_no_assertions  ,    	 	 	dmmC0126r   c                n     ! R  R4      pV P                  \        V P                  V4      4      . 4       R# )c                       ] tR tRtRtR# ):Test_implementedByFallback.test_no_assertions.<locals>.Fooi  r   Nr   r   r   r   r
   r    rP   r   r
   Nr  r  s   & r   test_no_assertions-Test_implementedByFallback.test_no_assertions  r  r   c                j     ! R  R4      pV! 4       pV P                  \        V P                  V4       R# )c                       ] tR tRtRtRtR# )HTest_implementedByFallback.test_w_None_no_bases_not_factory.<locals>.Fooi  Nr   r   r   r   r   r
   r    s    "Or   r
   Nr  r  s   &  r    test_w_None_no_bases_not_factory;Test_implementedByFallback.test_w_None_no_bases_not_factory  s+    	# 	# e)T]]C8r   c                t   ^ RI Hp ^ RIHp V! 4       pRVn        V P                  V4      pV P                  VP                  R4       V P                  VP                  V4       V P                  VP                  V4       V P                  VP                  V4       V P                  RVP                  4       R# )r(   )objectSpecificationDescriptor)r   r<   z*zope.interface.tests.test_declarations.foo__provides__N)rA   r  &zope.interface.tests.test_declarationsr   r   r  rB   r  rM  r   __providedBy__rl   r  )r   r  r   r<   r  s   &    r   test_w_None_no_bases_w_factory9Test_implementedByFallback.test_w_None_no_bases_w_factory  s    MDk}}S!E	GdllC(c))40 =	
 	6r   c                   ^ RI Hp ^ RIHp V P	                  V4      pV P                  VP                  R4       V P                  VP                  V4       V P                  VP                  V4       V P                  VP                  V4       V P                  VP                  V4       V P                  VP                  VP                  4       R# )r(   ClassProvides)r   z9zope.interface.tests.test_declarations.FooImplementedNoneN)rA   r  r  r   r  rB   r   r  rM  r   r   r  r  )r   r  r   r  s   &   r   test_w_None_no_bases_w_class7Test_implementedByFallback.test_w_None_no_bases_w_class  s    =M}}/0MMG	I 	dll$67(88$?--}	
 	++]	
 	++-?-N-N	
r   c                ~   a ^ RI Hp V! 4       o ! V3R lR4      pV P                  V P                  V4      S4       R# )r(   r   c                      < ] tR tRt Z tRtR# )BTest_implementedByFallback.test_w_existing_Implements.<locals>.Fooi  r   Nr   r  s   r   r
   r    r  r   r
   Nr  r  s   &  @r   test_w_existing_Implements5Test_implementedByFallback.test_w_existing_Implements  r  r   c                d  < ^ RI Hp ^ RIHp  ! R RV4      p ! R RV4      pV! V4       ! R R4      4       pV! V4       ! R	 R
V4      4       pV P	                  \        V P                  V4      4      WC.4       \        Wf4      pV P	                  \        V P                  V4      4      V.4       R# )r(   rd   r  c                       ] tR tRtRtR# )STest_implementedByFallback.test_super_when_base_implements_interface.<locals>.IBasei  r   Nr   r   r   r   r   r    rP   r   r   c                       ] tR tRtRtR# )VTest_implementedByFallback.test_super_when_base_implements_interface.<locals>.IDerivedi  r   Nr   r   r   r   r   r    rP   r   r   c                       ] tR tRtRtR# )RTest_implementedByFallback.test_super_when_base_implements_interface.<locals>.Basei  r   Nr   r   r   r   r	  r
    r?   r   r	  c                       ] tR tRtRtR# )UTest_implementedByFallback.test_super_when_base_implements_interface.<locals>.Derivedi  r   Nr   r   r   r   Derivedr    r?   r   r  Nr   re   rA   r  rB   r]   r  super	r   re   r  r   r   r	  r  sup	__class__s	   &       r   )test_super_when_base_implements_interfaceDTest_implementedByFallback.test_super_when_base_implements_interface  s    ,;	I 		u 	 
U		 	 
	 
X		d 	 
	 	dmmG457HIG%dmmC01E7;r   c                  < ^ RI Hp ^ RIHp  ! R RV4      p ! R RV4      pV! V4       ! R R4      4       p ! R	 R
V4      p ! R RV4      pV! V4       ! R RWg4      4       pV P	                  \        V P                  V4      4      WC.4       \        W4      p	V P	                  \        V P                  V	4      4      V.4       R# )r(   rd   r  c                       ] tR tRtRtR# )[Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.IBasei  r   Nr   r   r   r   r   r    rP   r   r   c                       ] tR tRtRtR# )^Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.IDerivedi  r   Nr   r   r   r   r   r    rP   r   r   c                       ] tR tRtRtR# )ZTest_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.Basei  r   Nr   r   r   r   r	  r    r?   r   r	  c                       ] tR tRtRtR# )\Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.Child1i  r   Nr   r   r   r   Child1r    rP   r   r  c                       ] tR tRtRtR# )\Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.Child2i  r   Nr   r   r   r   Child2r     rP   r   r!  c                       ] tR tRtRtR# )]Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.Derivedi  r   Nr   r   r   r   r  r#    r?   r   r  Nr  )r   re   r  r   r   r	  r  r!  r  r  r  s   &         r   1test_super_when_base_implements_interface_diamondLTest_implementedByFallback.test_super_when_base_implements_interface_diamond  s    ,;	I 		u 	 
U		 	 
		T 		T 	 
X		f 	 
	 	dmmG457HIG%dmmC01E7;r   c                  < ^ RI Hp ^ RIHp  ! R RV4      p ! R RV4      p ! R R4      p ! R	 R
V4      pV! V4       ! R RV4      4       pV! V4       ! R RWg4      4       pV P	                  VP
                  WWu\        34       V P	                  \        V P                  V4      4      WC.4       \        W4      p	V P                  V	4      p
V P	                  \        V
4      V.4       V P                  V
P                  4       R# )r(   rd   r  c                       ] tR tRtRtR# )]Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.IBasei  r   Nr   r   r   r   r   r(    rP   r   r   c                       ] tR tRtRtR# )`Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.IDerivedi  r   Nr   r   r   r   r   r*    rP   r   r   c                       ] tR tRtRtR# )\Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.Basei  r   Nr   r   r   r   r	  r,    rP   r   r	  c                       ] tR tRtRtR# )^Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.Child1i  r   Nr   r   r   r   r  r.    rP   r   r  c                       ] tR tRtRtR# )^Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.Child2i  r   Nr   r   r   r   r!  r0    r?   r   r!  c                       ] tR tRtRtR# )_Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.Derivedi  r   Nr   r   r   r   r  r2    r?   r   r  N)r   re   rA   r  rB   __mro__r   r]   r  r  r   _dependents)r   re   r  r   r   r	  r  r!  r  r  futr  s   &          r   3test_super_when_parent_implements_interface_diamondNTest_implementedByFallback.test_super_when_parent_implements_interface_diamond  s    ,;	I 		u 		 		T 	 
U		T 	 
	 
X		f 	 
	 	OOgvVD	
 	dmmG457HIG%mmC cUG,#//*r   c                L  < ^ RI Hp ^ RIHp  ! R RV4      p ! R RV4      p ! R R4      pV! V4       ! R	 R
V4      4       pV P	                  \        V P                  V4      4      V.4       \        Wf4      pV P	                  \        V P                  V4      4      . 4       R# )r(   rd   r  c                       ] tR tRtRtR# )YTest_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IBasei#  r   Nr   r   r   r   r   r:  #  rP   r   r   c                       ] tR tRtRtR# )\Test_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IDerivedi&  r   Nr   r   r   r   r   r<  &  rP   r   r   c                       ] tR tRtRtR# )XTest_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.Basei)  r   Nr   r   r   r   r	  r>  )  rP   r   r	  c                       ] tR tRtRtR# )[Test_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.Derivedi,  r   Nr   r   r   r   r  r@  ,  r?   r   r  Nr  r  s	   &       r   /test_super_when_base_doesnt_implement_interfaceJTest_implementedByFallback.test_super_when_base_doesnt_implement_interface  s    ,;	I 		u 		 	 
X		d 	 
	 	dmmG45zBG%dmmC0126r   c                6  < ^ RI Hp ^ RIHp  ! R RV4      p ! R RV4      pV! V4       ! R R4      4       pV P	                  \        V P                  V4      4      V.4       \        WU4      pV P	                  \        V P                  V4      4      . 4       R	# )
r(   rd   r  c                       ] tR tRtRtR# )HTest_implementedByFallback.test_super_when_base_is_object.<locals>.IBasei9  r   Nr   r   r   r   r   rE  9  rP   r   r   c                       ] tR tRtRtR# )KTest_implementedByFallback.test_super_when_base_is_object.<locals>.IDerivedi<  r   Nr   r   r   r   r   rG  <  rP   r   r   c                       ] tR tRtRtR# )JTest_implementedByFallback.test_super_when_base_is_object.<locals>.Derivedi?  r   Nr   r   r   r   r  rI  ?  r?   r   r  Nr  )r   re   r  r   r   r  r  r  s   &      r   test_super_when_base_is_object9Test_implementedByFallback.test_super_when_base_is_object5  s    ,;	I 		u 	 
X		 	 
	 	dmmG45zBG%dmmC0126r   c                  < ^ RI Hp ^ RIHp  ! R RV4      p ! R RV4      p ! R RV4      p ! R	 R
V4      p ! R RV4      pV! V4       ! R R4      4       pV! V4       ! R RV4      4       p	V! V4       ! R RV4      4       p
V! Wg4       ! R RW4      4       pTp\	        W4      p\	        W4      p\	        W4      pV P                  \        V P                  V4      4      WgWCV.4       V P                  \        V P                  V4      4      WCV.4       V P                  \        V P                  V4      4      WS.4       V P                  \        V P                  V4      4      V.4       R# )r(   rd   r  c                       ] tR tRtRtR# )RTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IBaseiL  r   Nr   r   r   r   r   rN  L  rP   r   r   c                       ] tR tRtRtR# )PTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM1iO  r   Nr   r   r   r   IM1rP  O  rP   r   rQ  c                       ] tR tRtRtR# )PTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM2iR  r   Nr   r   r   r   IM2rS  R  rP   r   rT  c                       ] tR tRtRtR# )UTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IDerivediU  r   Nr   r   r   r   r   rV  U  rP   r   r   c                       ] tR tRtRtR# )WTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IUnrelatediX  r   Nr   r   r   r   
IUnrelatedrX  X  rP   r   rY  c                       ] tR tRtRtR# )QTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.Basei[  r   Nr   r   r   r   r	  r[  [  r?   r   r	  c                       ] tR tRtRtR# )OTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.M1i_  r   Nr   r   r   r   M1r]  _  r?   r   r^  c                       ] tR tRtRtR# )OTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.M2ic  r   Nr   r   r   r   M2r`  c  r?   r   ra  c                       ] tR tRtRtR# )TTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.Derivedig  r   Nr   r   r   r   r  rc  g  r?   r   r  Nr   re   rA   r  r  rB   r]   r  r   re   r  r   rQ  rT  r   rY  r	  r^  ra  r  dsdsm1sm2r  s   &               r   (test_super_multi_level_multi_inheritanceCTest_implementedByFallback.test_super_multi_level_multi_inheritanceH  s}   ,;	I 		) 		) 		u 		 	 
U		 	 
	 
S		 	 
	 
S		 	 
	 
X	*	b 	 
+	 7$B B dmmA./"C@	BdmmB/0c*	,dmmC01	'dmmC01	"r   r   )r   r   r   r   r   _getFallbackClassr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r6  rA  rJ  rj  r   r"   __classcell__r  r$   s   @@r   r  r    s     %
 (379$3	0;04
77797 
(0<,<8+B7,7&/" /"r   r  c                   &   a  ] tR tRt o R tRtV tR# )Test_implementedByiz  c                    ^ RI Hp V# )r(   r   rH  )r   r   s   & r   r   "Test_implementedBy._getTargetClass~      =r   r   Nr   r   r   r   r   r   r"   r#   s   @r   rp  rp  z  s      r   rp  c                   N   a  ] tR tRt o RtR tR] R,           R3R ltR tR	tV t	R# )
_ImplementsTestMixini  Tc                    \         hr   r   )r   clsifaces   &&&r   r  _ImplementsTestMixin._callFUT  s    !!r   Nz.Foo	not givenc                N   ^ RI Hp \        R4      pV P                  W4      pV P	                  Wq4       VP
                  pVe   V P	                  W4       V P                  VP                  V4       VR8X  d   TMTpV P	                  VP                  V4       V P	                  VP
                  V4       V P                  '       d_   V P                  VP                  V4       V P                  VP                  V4       V P                  VP                  VP                  4       W3# )r(   r  r   r{  )rA   r  r   r  r  r   rB   r   rM  FUT_SETS_PROVIDED_BYr   r  r  )	r   r
   	orig_spec	spec_namerM  r  r   returnedr  s	   &&&&&    r   _check_implementer'_ImplementsTestMixin._check_implementer  s     	>f%==+h$"" MM$*"	$ K/#WdllG,c))40$$$!!#"4"4mD!!#"2"2MBS--s/A/AByr   c                <     ! R  R4      pV P                  V4       R# )c                       ] tR tRtRtR# ),_ImplementsTestMixin.test_class.<locals>.Fooi  r   Nr   r   r   r   r
   r    rP   r   r
   N)r  r  s   & r   rD   _ImplementsTestMixin.test_class  s    	 	 	$r   r   )
r   r   r   r   r}  r  r  rD   r   r"   r#   s   @r   rv  rv    s/     "
 &*%-%6#.4% %r   rv  c                   <   a  ] tR tRt o RtR tR tR tR tRt	V t
R# )	Test_classImplementsOnlyi  Fc                "    ^ RI Hp V! W4       V# )r(   )classImplementsOnly)rA   r  )r   rx  ry  r  s   &&& r   r  !Test_classImplementsOnly._callFUT  s    CC'
r   c                T  a ^ RI Hp \        R4      p\        R4      pV! V4      oV3Sn         ! V3R lR4      pVSn        V P                  WC4       V P                  VP                  S4       V P                  SP                  R4       V P                  SP                  V34       R# )r(   r   r   r   c                      < ] tR tRt Z tRtR# )@Test_classImplementsOnly.test_w_existing_Implements.<locals>.Fooi  r   Nr   r  s   r   r
   r    r  r   r
   N)	rA   r   r   rN  rM  r  r  r   rB   r   r   r   r   r
   r   s   &    @r   r  3Test_classImplementsOnly.test_w_existing_Implements  s    :f%f%$	# 	# c c))40t,0r   c                ~   a ^ RI Hp \        R4      pV! V4      o ! V3R lR4      pV P                  VSRRR7       R# )r(   r   r   c                      < ] tR tRt Z tRtR# )0Test_classImplementsOnly.test_class.<locals>.Fooi  r   Nr   )old_specs   r   r
   r    s    &Or   r
   rL  NrM  )rA   r   r   r  )r   r   r   r
   r  s   &   @r   rD   #Test_classImplementsOnly.test_class  s=    :f%d#	' 	' 	XsDAr   c                    V P                  \        R \        3/ 4      RR7      w  r ! R RV4      pV P                  W24       V P	                  VP                  V4      4       R# )r
   Nr  c                       ] tR tRtRtR# )RTest_classImplementsOnly.test_redundant_with_super_still_implements.<locals>.Childi  r   Nr   r   r   r   Childr    rP   r   r  )r  typer   r  rr   r   )r   r	  r   r  s   &   r   *test_redundant_with_super_still_implementsCTest_classImplementsOnly.test_redundant_with_super_still_implements  s[    --	2& . 

	D 	 	e#++E23r   r   N)r   r   r   r   r}  r  r  rD   r  r   r"   r#   s   @r   r  r    s%      
1"B
4 
4r   r  c                   J   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )Test_classImplementsi  c                D    ^ RI Hp V! W4      pV P                  V4       V# )r(   classImplements)rA   r  r   )r   rx  ry  r  results   &&&  r   r  Test_classImplements._callFUT  s'    ? 
 	&!
r   c                   V P                  V4      w  r ! R  RV4      pV P                  W24      pV P                  RVP                  4       V P	                  RVP                  4       V P                  RVP                  4       VP
                  pV P                  VP                  R4       V P                  VP                  V4       V P                  VP                  V! 4       4      4       R# )c                       ] tR tRtRtR# )ATest_classImplements.__check_implementer_redundant.<locals>.Childi  r   Nr   r   r   r   r  r    rP   r   r  r   r  r  Nr   )r  r  r   r  rl   r   rB   rN  rM  rr   
providedBy)r   r	  r   r  r  r  s   &&    r   __check_implementer_redundant2Test_classImplements.__check_implementer_redundant  s     --d3	D 	 ==.'):):;)8+<+<=nh&7&78$$+u-((12r   c                <     ! R  R4      pV P                  V4       R# )c                       ] tR tRtRtR# )UTest_classImplements.test_redundant_implementer_empty_class_declarations.<locals>.Fooi  r   Nr   r   r   r   r
   r    rP   r   r
   N)2_Test_classImplements__check_implementer_redundantr  s   & r   3test_redundant_implementer_empty_class_declarationsHTest_classImplements.test_redundant_implementer_empty_class_declarations  s    	 	 	**3/r   c           	        ^ RI Hp ^ RI Hp ^ RI Hp ^ RIHp  ! R R4      pV! VP                  P                  R4      ;_uu_ 4        V P                  WQ4       V P                  \        V! V4      4      V.4        ! R R	V4      pV P                  Wa4       V P                  \        V! V4      4      V.4       R
R
R
4       R
#   + '       g   i     R
# ; i)r(   rd   r   r   r   c                       ] tR tRtRtR# )FTest_classImplements.test_redundant_implementer_Interface.<locals>.Fooi  r   Nr   r   r   r   r
   r    rP   r   r
   Fc                       ] tR tRtRtR# )FTest_classImplements.test_redundant_implementer_Interface.<locals>.Bazi  r   Nr   r   r   r   Bazr        r   r  N)r   re   r   r   r   r   r   r   r  rB   r]   )r   re   r   r   r   r
   r  s   &      r   $test_redundant_implementer_Interface9Test_classImplements.test_redundant_implementer_Interface   s    ,0%:	 	 ruu''//MM#)T-"45	{Cc  MM#)T-"45	{C 0///s   A2CC	c                    W3# r   r   r   applied_firstapplied_seconds   &&&r   _order_for_two#Test_classImplements._order_for_two  s    ..r   c                p  a ^ RI Hp \        R4      p\        R4      pV! V4      oV3Sn         ! V3R lR4      pVSn        V P                  WC4       V P                  VP                  S4       V P                  SP                  V4       V P                  SP                  V P                  W#4      4       R# )r(   r   r   r   c                      < ] tR tRt Z tRtR# )<Test_classImplements.test_w_existing_Implements.<locals>.Fooi  r   Nr   r  s   r   r
   r    r  r   r
   N)
rA   r   r   rN  rM  r  r  r   rB   r  r  s   &    @r   r  /Test_classImplements.test_w_existing_Implements  s    :f%f%$	# 	# c c))40s+,,T8	:r   c                p  aa	 ^ RI Hp \        R4      p\        R4      p\        RV34      pVP                  RV4      o	V3S	n         ! V	3R lR4      p ! V	3R lR	4      pVP                  R
V4      oV3Sn         ! V3R lRWV4      pVSn        V P                  Ws4       V P                  VP                  S4       V P                  SP
                  V4       V P                  SP                  V P                  WC4      4       V P                  SP                  V P                  WC4      S	3,           4       R# )r(   r   IRootISecondRootIExtendsRootRootc                      < ] tR tRt Z tRtR# )FTest_classImplements.test_w_existing_Implements_w_bases.<locals>.Root1i1  r   Nr   	impl_roots   r   Root1r  1      'Or   r  c                      < ] tR tRt Z tRtR# )FTest_classImplements.test_w_existing_Implements_w_bases.<locals>.Root2i4  r   Nr   r  s   r   Root2r  4  r  r   r  ExtendsRoot1c                      < ] tR tRt Z tRtR# )LTest_classImplements.test_w_existing_Implements_w_bases.<locals>.ExtendsRooti:  r   Nr   )impl_extends_roots   r   ExtendsRootr  :  s    /Or   r  N)rA   r   r   r;   rN  rM  r  r  r   rB   r  r   )
r   r   r  r  r  r  r  r  r  r  s
   &       @@r   "test_w_existing_Implements_w_bases7Test_classImplements.test_w_existing_Implements_w_bases(  s   :w'$]3%nuh?$$VU3	#X		( 	(	( 	( ',,^\J&2_"	0% 	0 %0!k/k113DE*22K@*33,,\H	J'':i\I	
r   r   N)r   r   r   r   r  r  r  r  r  r  r  r   r"   r#   s   @r   r  r    s.     3&0D&/:$ 
  
r   r  c                   ,   a  ] tR tRt o R tR tRtV tR# )Test_classImplementsFirstiK  c                D    ^ RI Hp V! W4      pV P                  V4       V# )r(   )classImplementsFirst)rA   r  r   )r   rx  ry  r  r  s   &&&  r   r  "Test_classImplementsFirst._callFUTM  s'    D%
 	&!
r   c                    W!3# r   r   r  s   &&&r   r  (Test_classImplementsFirst._order_for_twoU  s    ..r   r   N)r   r   r   r   r  r  r   r"   r#   s   @r   r  r  K  s     / /r   r  c                   ,   a  ] tR tRt o R tR tRtV tR# )Test__implements_adviceiY  c                    ^ RI Hp V! V/ VB # )r(   )_implements_advice)rA   r  )r   r   r   r  s   &*, r   r   Test__implements_advice._callFUT[      B!4.2..r   c                2  aa ^ RI Hp ^ RI Ho \        R4      o ! VV3R lR4      pV P	                  V4       V P                  RVP                  4       V P                  VP                  V4       V P                  \        VP                  4      S.4       R# )r(   r   r  r   c                   &   < ] tR tRt Z 3 Z3tRtR# )@Test__implements_advice.test_no_existing_implements.<locals>.Fooid  r   N)r   r   r   r   __implements_advice_data__r   )r   r  s   r   r
   r  d  s    +/'?)C&r   r
   r  N)rA   r   r  r   r  rl   r  r   r   rB   r]   )r   r   r
   r   r  s   &  @@r   test_no_existing_implements3Test__implements_advice.test_no_existing_implements_  s}    :?f%	D 	D 	c5s||D	
 	$$%v	
r   r   N)r   r   r   r   r  r  r   r"   r#   s   @r   r  r  Y  s     /
 
r   r  c                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
Test_implementeriq  c                    ^ RI Hp V# )r(   r  )rA   r  )r   r  s   & r   r    Test_implementer._getTargetClasss  r   r   c                .    V P                  4       ! V/ VB # r   r   r   s   &*,r   r   Test_implementer._makeOnew  r   r   c                2    V P                   ! V!  pV! V4      # r   r   )r   rx  ifaces	decorators   &&* r   r  Test_implementer._callFUTz  s    MM6*	~r   c                |    \        R 4      pV P                  V4      pV P                  \        V\	        4       4       R# r   )r   r   r$  r/   r   )r   r   r  s   &  r    test_nonclass_cannot_assign_attr1Test_implementer.test_nonclass_cannot_assign_attr~  s.    f%MM$'	)Y9r   c                H   \        R 4      p^ RIHp V! 4       pV P                  V4      pV! V4      pV P	                  WS4       VP
                  pV P                  VP                  R4       V P                  VP                  4       V P	                  VP
                  V4       R# )r   )r
   z(zope.interface.tests.test_declarations.?N)
r   r  r
   r   r  r   rB   r   r   rM  )r   r   r
   r<   r  r  r  s   &      r   test_nonclass_can_assign_attr.Test_implementer.test_nonclass_can_assign_attr  s    f%>eMM$'	S>h$""MME	
 	$,,(c))40r   c                6   ^ RI p\        R4      p\        VP                  4       4      p\	        R4       F  p ! R R4      pV P                  WR4       K   	  VP                  4        \        VP                  4       4      p^ pV P                  WcV,           4       R# )r(   Nr   il  c                       ] tR tRtRtR# )HTest_implementer.test_does_not_leak_on_unique_classes.<locals>.TestClassi  r   Nr   r   r   r   	TestClassr    r  r   r   )gcr   lenget_objectsranger  collectrc  )r   r  r   begin_countr4   r   	end_countfudge_factors   &       r   $test_does_not_leak_on_unique_classes5Test_implementer.test_does_not_leak_on_unique_classes  s~     	f%"..*+tA  MM)*	  	

()	 Yl(BCr   r   N)r   r   r   r   r   r   r  r  r  r	  r   r"   r#   s   @r   r  r  q  s*     3:
1D Dr   r  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	Test_implementer_onlyi  c                    ^ RI Hp V# )r(   )implementer_only)rA   r  )r   r  s   & r   r   %Test_implementer_only._getTargetClass  s    @r   c                .    V P                  4       ! V/ VB # r   r   r   s   &*,r   r   Test_implementer_only._makeOne  r   r   c                4    V P                  V4      pV! V4      # r   r  )r   rx  ry  r  s   &&& r   r  Test_implementer_only._callFUT  s    MM%(	~r   c                p    \        R 4      pV P                  V4      pR pV P                  \        W#4       R# )r   c                      \        4       hr   r   r   r   r   	_function6Test_implementer_only.test_function.<locals>._function      %''r   N)r   r   r$  
ValueError)r   r   r  r  s   &   r   rK   #Test_implementer_only.test_function  s1    f%MM$'		( 	*i;r   c                    \        R 4      pV P                  V4      p ! R R4      pV P                  \        W#P                  4       R# )r   c                   &   a  ] tR tRt o R tRtV tR# ).Test_implementer_only.test_method.<locals>.Bari  c                    \        4       hr   r   r   s   &r   _method6Test_implementer_only.test_method.<locals>.Bar._method  ru  r   r   N)r   r   r   r   r  r   r"   r#   s   @r   Barr    s     , ,r   r!  N)r   r   r$  r  r  )r   r   r  r!  s   &   r   test_method!Test_implementer_only.test_method  s:    f%MM$'		, 	, 	*i=r   r   N)r   r   r   r   r   r   r  rK   r"  r   r"   r#   s   @r   r  r    s#      3<> >r   r  c                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
ProvidesClassTestsi  c                    ^ RI Hp V# r(   ProvidesClassrA   r)  r   r)  s   & r   r   "ProvidesClassTests._getTargetClass  rs  r   c                .    V P                  4       ! V/ VB # r   r   r   s   &*,r   r   ProvidesClassTests._makeOne  r   r   c                    \        R 4      p ! R R4      pV P                  W!4      pV P                  \        V4      V.4       R# )r   c                       ] tR tRtRtR# )?ProvidesClassTests.test_simple_class_one_interface.<locals>.Fooi  r   Nr   r   r   r   r
   r1    rP   r   r
   Nr   r   r   r
   r  s   &   r   test_simple_class_one_interface2ProvidesClassTests.test_simple_class_one_interface  s<    f%	 	 }}S'ddV,r   c                    ^ RI Hp \        R4      p ! R R4      pV P                  W24      pVP	                  4       w  rVV P                  WQ4       V P                  WcV34       R# )r(   Providesr   c                       ] tR tRtRtR# )/ProvidesClassTests.test___reduce__.<locals>.Fooi  r   Nr   r   r   r   r
   r9    rP   r   r
   N)rA   r7  r   r   rW  r  rB   )r   r7  r   r
   r  klassr   s   &      r   rX  "ProvidesClassTests.test___reduce__  sU    8f%	 	 }}S'oo'e&T{+r   c                    \        R 4      p ! R R4      pV P                  W!4      pW2n        V P                  VP                  V4       R# )r   c                       ] tR tRtRtR# )2ProvidesClassTests.test___get___class.<locals>.Fooi  r   Nr   r   r   r   r
   r>    rP   r   r
   Nr   r   r  r  r2  s   &   r   test___get___class%ProvidesClassTests.test___get___class  s@    f%	 	 }}S'c&&-r   c                   a \        R 4      p ! R R4      oV P                  SV4      pVSn        V3R lpV P                  \        V4       R# )r   c                       ] tR tRtRtR# )5ProvidesClassTests.test___get___instance.<locals>.Fooi  r   Nr   r   r   r   r
   rD    rP   r   r
   c                  *   < S! 4       p V P                   # r   )r  )r<   r
   s    r   _test7ProvidesClassTests.test___get___instance.<locals>._test  s    %C###r   N)r   r   r  r$  AttributeError)r   r   r  rF  r
   s   &   @r   test___get___instance(ProvidesClassTests.test___get___instance  sH    f%	 	 }}S$'	$ 	.%0r   r   N)r   r   r   r   r   r   r3  rX  r@  rI  r   r"   r#   s   @r   r%  r%    s(     3-
,.1 1r   r%  c                   8   a a ] tR tRt oV 3R ltR tRtVtV ;t# )ProvidesClassStrictTestsi  c                B   <a \         SV `  4       o ! V3R  lRS4      pV# )c                   .   <a  ] tR tRt o V3R ltRtV tR# )@ProvidesClassStrictTests._getTargetClass.<locals>.StrictProvidesi  c                *   < SP                  WR R7      # T)	base_mrosrq   _do_calculate_ro)r   rR  r)  s   &&r   rT  QProvidesClassStrictTests._getTargetClass.<locals>.StrictProvides._do_calculate_ro       $55d 6  r   r   Nr   r   r   r   rT  r   r"   )r$   r)  s   @r   StrictProvidesrO          r   rX  r  r   )r   rX  r)  r  s   & @r   r   (ProvidesClassStrictTests._getTargetClass  s$    /1	] 	 r   c           	         ^ RI Hp ^ RI Hp ^ RI Hp  ! R RV4      pV! V4       ! R R4      4       pV P	                  WT4      pV P                  VP                  VV! V4      VV! \        4      V34       R# )	r(   rd   r   r  c                       ] tR tRtRtR# )MProvidesClassStrictTests.test_overlapping_interfaces_corrected.<locals>.IBasei  r   Nr   r   r   r   r   r^    rP   r   r   c                       ] tR tRtRtR# )LProvidesClassStrictTests.test_overlapping_interfaces_corrected.<locals>.Basei   r   Nr   r   r   r   r	  r`     r?   r   r	  N)r   re   r   r  r   rB   r|   r   )r   re   r   r  r   r	  r  s   &      r   %test_overlapping_interfaces_corrected>ProvidesClassStrictTests.test_overlapping_interfaces_corrected  sy     	-0.	I 	 
U		 	 
	 }}T)$&!(
 	r   r   	r   r   r   r   r   ra  r   r"   rm  rn  s   @@r   rL  rL    s     	 r   rL  c                   n   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tRtV tR# )TestProvidesClassRepri.  c                    ^ RI Hp V# r'  r*  r+  s   & r   r   %TestProvidesClassRepr._getTargetClass0  rs  r   c                .    V P                  4       ! V/ VB # r   r   r   s   &*,r   r   TestProvidesClassRepr._makeOne4  r   r   c                &   \        R 4      pVP                  R 8X  g   Q hVP                  \        8X  g   Q h\        V4      R\         R28X  g   Q h\        R4      pV P	                  \        V 4      W4      pV P                  \        V4      R4       R# )r   z<InterfaceClass z.IFoo>r   z3directlyProvides(TestProvidesClassRepr, IFoo, IBar)N)r   r   r   rS  r   r  rB   )r   r   r   insts   &   r   test__repr__"TestProvidesClassRepr.test__repr__7  s    f%}}&&&(***Dz/z@@@@f%}}T$Z4JA	
r   c                `    ^ RI Hp VP                  pV P                  \	        V4      R4       R# )r(   dummyzIdirectlyProvides(sys.modules['zope.interface.tests.dummy'], IDummyModule)N)zope.interface.testsrp  r  rB   rS  )r   rp  providess   &  r   'test__repr__module_provides_typical_use=TestProvidesClassRepr.test__repr__module_provides_typical_useE  s,     	/%%N	
r   c                   ^ RI p^ RIHp VP                  p\	        VP
                  ^,           4       F@  pV P                  VP                  4      ;_uu_ 4        VP                  W44       RRR4       KB  	  R#   + '       g   i     KW  ; i)r(   Nro  )	r  rq  rp  r  r  HIGHEST_PROTOCOLr$  PicklingErrorr  )r   r  rp  rr  protos   &    r   test__repr__module_after_pickle5TestProvidesClassRepr.test__repr__module_after_pickleQ  sb    .%%622Q67E""6#7#788X- 98 8888s   A99B
c                4   ^ RI p^ RIHp ^ RIHp ^ RIHp ^ RIHp ^ RIHp VP                  pV=	V P                  \        VRV4       V! WF4       VP                  pV P                  \        V4      R4       V! WE4       VP                  pV P                  \        V4      R	4       ^ R
IHp	 \        V	R4      '       d   Q hV! WV4       V P                  \         V	R4       V P#                  V	P                  V4       V P                  \        V4      R4       R# )r(   NalsoProvidesdirectlyProvidesro  )r   )r   r  zAdirectlyProvides(sys.modules['zope.interface.tests.dummy'], IFoo)zGdirectlyProvides(sys.modules['zope.interface.tests.dummy'], IFoo, IBar))test_declarationszfdirectlyProvides(('zope.interface.tests.dummy', 'zope.interface.tests.test_declarations'), IFoo, IBar))sysrA   r}  r  rq  rp  r  r   r   r  
addCleanupsetattrrB   rS  r  hasattrdelattrr  )
r   r  r}  r  rp  r   r   orig_providesrr  	my_modules
   &         r   #test__repr__directlyProvides_module9TestProvidesClassRepr.test__repr__directlyProvides_module[  s    <@.??**F%%%NO	

 	U!%%N	
 	H9n5555$/N;i,,h7N	
r   c                    ^ RI Hp \        R4      pV P                  W4      pV;P                  R,          un        V;P                  R,          un        V P                  \        V4      R4       R# )r(   )
ModuleTyper   z9directlyProvides(('some.module', 'another.module'), IFoo)N)zsome.module)zanother.module)rA   r  r   r   _v_module_namesrB   rS  )r   r  r   rk  s   &   r   )test__repr__module_provides_cached_shared?TestProvidesClassRepr.test__repr__module_provides_cached_shared  sY    :f%}}Z. 00 33JG	
r   c                    \        R RR7      p\        R RR7      p\        R4      pV P                  \        V 4      WV4      pV P                  \	        V4      R4       R# )r   mod1r   mod2r   z>directlyProvides(TestProvidesClassRepr, IFoo, IBaz, mod2.IFoo)Nr   r   r  rB   rS  r   r   IFoo2r   rk  s   &    r   test__repr__duplicate_names1TestProvidesClassRepr.test__repr__duplicate_names  sR    f8v&9f%}}T$ZU;JL	
r   c                    ^ RI Hp ^ RI Hp  ! R RV4      p ! R R4      pV! \        V 4      4      pV P	                  WCV4      pV P                  \        V4      R4       R# )	r(   rd   r   c                       ] tR tRtRtRtR# )KTestProvidesClassRepr.test__repr__implementedBy_in_interfaces.<locals>.IFooi  Does nothingr   Nr   r   r   r   __doc__r   r   r   r   r   r        r   r   c                       ] tR tRtRtRtR# )JTestProvidesClassRepr.test__repr__implementedBy_in_interfaces.<locals>.Bari  r  r   Nr  r   r   r   r!  r    r  r   r!  zCdirectlyProvides(Bar, IFoo, classImplements(TestProvidesClassRepr))N)r   re   r   r  r   rB   rS  )r   re   r   r   r!  r   rk  s   &      r   'test__repr__implementedBy_in_interfaces=TestProvidesClassRepr.test__repr__implementedBy_in_interfaces  sX    ,0	9 		 	 T$Z(}}S-J6	
r   c                p    V P                  \        V 4      4      pV P                  \        V4      R 4       R# )z'directlyProvides(TestProvidesClassRepr)Nr   r  rB   rS  r   rk  s   & r   test__repr__empty_interfaces2TestProvidesClassRepr.test__repr__empty_interfaces  s,    }}T$Z(J5	
r   c                   a a V 3R  lo ! V3R lR4      pS P                  V! 4       4      pS P                  \        V4      R4       R# )c                  *   < S P                  R 4       R# )zShould not call strN)r.   r   s   r   str___dont_call_meGTestProvidesClassRepr.test__repr__non_class.<locals>.str___dont_call_me  s    II+,r   c                   2   <a  ] tR tRt o Rt ZtR tRtV tR# );TestProvidesClassRepr.test__repr__non_class.<locals>.Objecti  c                    R # )z<Object>r   r   s   &r   __repr__DTestProvidesClassRepr.test__repr__non_class.<locals>.Object.__repr__  s    !r   r   N)	r   r   r   r   r   __str__r  r   r"   )r$   r  s   @r   Objectr    s     I(G" "r   r  zdirectlyProvides(<Object>)N)r   rB   rS  )r   r  rk  r  s   f  @r   test__repr__non_class+TestProvidesClassRepr.test__repr__non_class  s<    	-	" 	" }}VX&J(	
r   c                    ^ RI Hp ^ RI Hp \        R4      pV! V4       ! R R4      4       pV! V! 4       4      pV P	                  \        V4      R4       R# )r(   r  r  r   c                       ] tR tRtRtR# )DTestProvidesClassRepr.test__repr__providedBy_from_class.<locals>.Fooi  r   Nr   r   r   r   r
   r    r?   r   r
   classImplements(Foo, IFoo)N)rA   r  r  r   rB   rS  )r   r  r  r   r
   rk  s   &     r   !test__repr__providedBy_from_class7TestProvidesClassRepr.test__repr__providedBy_from_class  sT    ;:f%	T		 	 
	 #% J(	
r   c                    ^ RI Hp ^ RI Hp ^ RI Hp \	        R4      p\	        R4      pV! V4       ! R R4      4       pV! 4       pV! Wu4       V! V4      pV P                  \        V4      R4       R	# )
r(   r|  r  r  r   r   c                       ] tR tRtRtR# )FTestProvidesClassRepr.test__repr__providedBy_alsoProvides.<locals>.Fooi  r   Nr   r   r   r   r
   r    r?   r   r
   z7directlyProvides(Foo, IBar, classImplements(Foo, IFoo))N)rA   r}  r  r  r   rB   rS  )	r   r}  r  r  r   r   r
   r<   rk  s	   &        r   #test__repr__providedBy_alsoProvides9TestProvidesClassRepr.test__repr__providedBy_alsoProvides  sm    <;:f%f%	T		 	 
	 eS#JE	
r   r   N)r   r   r   r   r   r   rl  rs  ry  r  r  r  r  r  r  r  r  r   r"   r#   s   @r   re  re  .  sL     3


.,
\

	

(

$

 
r   re  c                   2   a  ] tR tRt o R tR tR tRtV tR# )Test_Providesi  c                    ^ RI Hp V! V/ VB # )r(   r6  )rA   r7  )r   r   r   r7  s   &*, r   r  Test_Provides._callFUT  s    8$$$r   c                .   ^ RI Hp \        R4      p/ p ! R R4      p\        WR7      ;_uu_ 4        V P	                  WB4      pRRR4       V P                  \        X4      V.4       V P                  W4V3,          V4       R#   + '       g   i     LH; i)r(   r  r   c                       ] tR tRtRtR# ).Test_Provides.test_no_cached_spec.<locals>.Fooi  r   Nr   r   r   r   r
   r    rP   r   r
   InstanceDeclarationsN)r   r  r   _Monkeyr  rB   r]   r  )r   r  r   cacher
   r  s   &     r   test_no_cached_spec!Test_Provides.test_no_cached_spec  sr    /f%	 	 \>>==+D ?ddV,e$K($/ ?>s   BB	c                    ^ RI Hp \        R4      p\        4       p ! R R4      pWB3V/p\	        WR7      ;_uu_ 4        V P                  WB4      pRRR4       V P                  XV4       R#   + '       g   i     L$; i)r(   r  r   c                       ] tR tRtRtR# )-Test_Provides.test_w_cached_spec.<locals>.Fooi	  r   Nr   r   r   r   r
   r  	  rP   r   r
   r  N)r   r  r   r   r  r  r  )r   r  r   priorr
   r  r  s   &      r   test_w_cached_spec Test_Provides.test_w_cached_spec  sc    /f%	 	 e$\>>==+D ?dE" ?>s   A--A=	r   N)	r   r   r   r   r  r  r  r   r"   r#   s   @r   r  r    s     %0# #r   r  c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )Test_directlyProvidesi  c                    ^ RI Hp V! V/ VB # )r(   r~  )rA   r  )r   r   r   r  s   &*, r   r  Test_directlyProvides._callFUT      @,,,r   c                    ^ RI Hp \        R4      p ! R R4      pV! 4       pV P                  WB4       V P	                  VP
                  V4       V P                  \        VP
                  4      V.4       R# )r(   r(  r   c                       ] tR tRtRtR# )7Test_directlyProvides.test_w_normal_object.<locals>.Fooi  r   Nr   r   r   r   r
   r    rP   r   r
   NrA   r)  r   r  r   r  rB   r]   r   r)  r   r
   objs   &    r   test_w_normal_object*Test_directlyProvides.test_w_normal_object  i    =f%	 	 ec m	
 	!!"TF	
r   c                    ^ RI Hp \        R4      p ! R R4      pV P                  W24       V P	                  VP
                  V4       V P                  \        VP
                  4      V.4       R# )r(   r  r   c                       ] tR tRtRtR# )/Test_directlyProvides.test_w_class.<locals>.Fooi,  r   Nr   r   r   r   r
   r  ,  rP   r   r
   N)rA   r  r   r  r   r  rB   r]   r   r  r   r
   s   &   r   test_w_class"Test_directlyProvides.test_w_class(  sb    =f%	 	 	c m	
 	!!"TF	
r   c                   a ^ RI Hp \        R4      p/ o ! V3R lR4      pV! 4       pV P                  WB4       V P	                  SR,          V4       V P                  \        SR,          4      V.4       R# )r(   r(  r   c                   4   <a  ] tR tRt o R tV3R ltRtV tR# ):Test_directlyProvides.test_w_classless_object.<locals>.Fooi<  c                *    VR 8X  d   R# \        V4      h)r  Nr   rr  s   &&r   __getattribute__KTest_directlyProvides.test_w_classless_object.<locals>.Foo.__getattribute__=  s    ;&)$//r   c                   < VSV&   R # r   r   )r   r5  valuethe_dicts   &&&r   __setattr__FTest_directlyProvides.test_w_classless_object.<locals>.Foo.__setattr__C  s    !&r   r   Nr   r   r   r   r  r  r   r"   r$   r  s   @r   r
   r  <  s     0' 'r   r
   r  N)rA   r)  r   r  r   rB   r]   )r   r)  r   r
   r  r  s   &    @r   test_w_classless_object-Test_directlyProvides.test_w_classless_object7  se    =f%	' 	' ec h~6Fh~67$@r   r   N)
r   r   r   r   r  r  r  r  r   r"   r#   s   @r   r  r    s      -
 
A Ar   r  c                   2   a  ] tR tRt o R tR tR tRtV tR# )Test_alsoProvidesiL  c                    ^ RI Hp V! V/ VB # )r(   r|  )rA   r}  )r   r   r   r}  s   &*, r   r  Test_alsoProvides._callFUTN  s    <T(R((r   c                    ^ RI Hp \        R4      p ! R R4      pV! 4       pV P                  WB4       V P	                  VP
                  V4       V P                  \        VP
                  4      V.4       R# )r(   r(  r   c                       ] tR tRtRtR# )8Test_alsoProvides.test_wo_existing_provides.<locals>.FooiV  r   Nr   r   r   r   r
   r  V  rP   r   r
   Nr  r  s   &    r   test_wo_existing_provides+Test_alsoProvides.test_wo_existing_providesR  r  r   c                "   ^ RI Hp ^ RI Hp \        R4      p\        R4      p ! R R4      pV! 4       pV! Wc4       V P	                  Wd4       V P                  VP                  V4       V P                  \        VP                  4      W4.4       R# )r(   r(  r~  r   r   c                       ] tR tRtRtR# )7Test_alsoProvides.test_w_existing_provides.<locals>.Fooih  r   Nr   r   r   r   r
   r  h  rP   r   r
   N)	rA   r)  r  r   r  r   r  rB   r]   )r   r)  r  r   r   r
   r  s   &      r   test_w_existing_provides*Test_alsoProvides.test_w_existing_providesb  s~    =@f%f%	 	 e#c m	
 	!!"TL	
r   r   N)	r   r   r   r   r  r  r  r   r"   r#   s   @r   r  r  L  s     )
 
 
r   r  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	Test_noLongerProvidesiv  c                    ^ RI Hp V! V/ VB # )r(   )noLongerProvides)rA   r  )r   r   r   r  s   &*, r   r  Test_noLongerProvides._callFUTx  r  r   c                    \        R 4      p ! R R4      pV! 4       pV P                  W14       V P                  \        VP                  4      . 4       R# )r   c                       ] tR tRtRtR# )<Test_noLongerProvides.test_wo_existing_provides.<locals>.Fooi  r   Nr   r   r   r   r
   r    rP   r   r
   N)r   r  rB   r]   r  )r   r   r
   r  s   &   r   r  /Test_noLongerProvides.test_wo_existing_provides|  sI    f%	 	 ec !!"B	
r   c                    ^ RI Hp \        R4      p ! R R4      pV! 4       pV! WB4       V P                  WB4       V P	                  \        VP                  4      . 4       R# )r(   r~  r   c                       ] tR tRtRtR# )?Test_noLongerProvides.test_w_existing_provides_hit.<locals>.Fooi  r   Nr   r   r   r   r
   r    rP   r   r
   NrA   r  r   r  rB   r]   r  )r   r  r   r
   r  s   &    r   test_w_existing_provides_hit2Test_noLongerProvides.test_w_existing_provides_hit  sT    @f%	 	 e#c !!"B	
r   c                    ^ RI Hp \        R4      p\        R4      p ! R R4      pV! 4       pV! WR4       V P                  WS4       V P	                  \        VP                  4      V.4       R# )r(   r~  r   r   c                       ] tR tRtRtR# )@Test_noLongerProvides.test_w_existing_provides_miss.<locals>.Fooi  r   Nr   r   r   r   r
   r    rP   r   r
   Nr  )r   r  r   r   r
   r  s   &     r   test_w_existing_provides_miss3Test_noLongerProvides.test_w_existing_provides_miss  s`    @f%f%	 	 e#c !!"TF	
r   c                    ^ RI Hp \        R4      pV! V4       ! R R4      4       pV! 4       pV P                  \        V P
                  WB4       R# )r(   r  r   c                       ] tR tRtRtR# )DTest_noLongerProvides.test_w_iface_implemented_by_class.<locals>.Fooi  r   Nr   r   r   r   r
   r    r?   r   r
   N)rA   r  r   r$  r  r  )r   r  r   r
   r  s   &    r   !test_w_iface_implemented_by_class7Test_noLongerProvides.test_w_iface_implemented_by_class  sJ    ;f%	T		 	 
	 e*dmmS?r   r   N)r   r   r   r   r  r  r  r  r  r   r"   r#   s   @r   r  r  v  s%     -



	@ 	@r   r  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	ClassProvidesBaseFallbackTestsi  c                    ^ RI Hp V# r(   )ClassProvidesBaseFallbackrA   r"  r   r"  s   & r   r   .ClassProvidesBaseFallbackTests._getTargetClass      I((r   c                D     ! R  RV P                  4       4      pV! W4      # )c                   &   a  ] tR tRt o R tRtV tR# )8ClassProvidesBaseFallbackTests._makeOne.<locals>.Derivedi  c                    Wn         W n        R # r   _cls_implements)r   kis   &&&r   ro  AClassProvidesBaseFallbackTests._makeOne.<locals>.Derived.__init__  s    	#$ r   r+  N)r   r   r   r   ro  r   r"   r#   s   @r   r  r)    s     % %r   r  r   )r   r:  
implementsr  s   &&& r   r   'ClassProvidesBaseFallbackTests._makeOne  s$    	%d**, 	%
 u))r   c                    \        R 4      p ! R R4      pV P                  W!4      ;q2n        V P                  VP                  V4       R# )r   c                       ] tR tRtRtR# )GClassProvidesBaseFallbackTests.test_w_same_class_via_class.<locals>.Fooi  r   Nr   r   r   r   r
   r5    rP   r   r
   Nr?  )r   r   r
   cpbps   &   r   test_w_same_class_via_class:ClassProvidesBaseFallbackTests.test_w_same_class_via_class  s@    f%	 	 #'--"::c&&-r   c                    \        R 4      p ! R R4      pV! 4       pV P                  W!4      Vn        V P                  VP                  V4       R# )r   c                       ] tR tRtRtR# )JClassProvidesBaseFallbackTests.test_w_same_class_via_instance.<locals>.Fooi  r   Nr   r   r   r   r
   r;    rP   r   r
   Nr?  )r   r   r
   r<   s   &   r   test_w_same_class_via_instance=ClassProvidesBaseFallbackTests.test_w_same_class_via_instance  sD    f%	 	 e==3c&&-r   c                    \        R 4      p ! R R4      p ! R RV4      pV! 4       pV P                  W!4      Vn        V P                  \        \
        VR4       V P                  \        \
        VR4       R# )r   c                       ] tR tRtRtR# )BClassProvidesBaseFallbackTests.test_w_different_class.<locals>.Fooi  r   Nr   r   r   r   r
   r@    rP   r   r
   c                       ] tR tRtRtR# )BClassProvidesBaseFallbackTests.test_w_different_class.<locals>.Bari  r   Nr   r   r   r   r!  rB    rP   r   r!  r  N)r   r   r  r$  rH  getattr)r   r   r
   r!  bars   &    r   test_w_different_class5ClassProvidesBaseFallbackTests.test_w_different_class  sd    f%	 		# 	 e==3.'3G.'3Gr   r   N)r   r   r   r   r   r   r7  r<  rE  r   r"   r#   s   @r   r  r    s%     )
	*..H Hr   r  c                   ,   a  ] tR tRt o R tR tRtV tR# )ClassProvidesBaseTestsi  c                    ^ RI Hp V# )r(   )ClassProvidesBase)rA   rJ  )r   rJ  s   & r   r   &ClassProvidesBaseTests._getTargetClass  s    A  r   c                    ^ RI Hp V# r!  r#  r$  s   & r   rl  (ClassProvidesBaseTests._getFallbackClass  r&  r   r   N)r   r   r   r   r   rl  r   r"   r#   s   @r   rH  rH    s     !) )r   rH  c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )ClassProvidesTestsi  c                    ^ RI Hp V# r(   r  rA   r  r   r  s   & r   r   "ClassProvidesTests._getTargetClass  rs  r   c                .    V P                  4       ! V/ VB # r   r   r   s   &*,r   r   ClassProvidesTests._makeOne  r   r   c                :   ^ RI Hp \        R4      p\        R4      pV! V4       ! R R4      4       pV P                  V\	        V4      V4      ;qTn        V P                  VP
                  V4       V P                  \        V! 4       P
                  4      V.4       R# )r(   r  r   r   c                       ] tR tRtRtR# )7ClassProvidesTests.test_w_simple_metaclass.<locals>.Fooi  r   Nr   r   r   r   r
   rY    r?   r   r
   N)	rA   r  r   r   r  r  r  rB   r]   r   r  r   r   r
   cps   &     r   test_w_simple_metaclass*ClassProvidesTests.test_w_simple_metaclass  s    ;f%f%	T		 	 
	 !%c49d CCc&&+ce001D6:r   c                   ^ RI Hp \        R4      p\        R4      pV! V4       ! R R4      4       pV P                  V\	        V4      V4      ;qTn        V P                  VP                  4       \	        V4      V\	        V4      V334       R# )r(   r  r   r   c                       ] tR tRtRtR# )/ClassProvidesTests.test___reduce__.<locals>.Fooi  r   Nr   r   r   r   r
   r`    r?   r   r
   N)rA   r  r   r   r  r  rB   rW  rZ  s   &     r   rX  "ClassProvidesTests.test___reduce__  s    ;f%f%	T		 	 
	 !%c49d CCr(S$s)T$:;	=r   r   N)
r   r   r   r   r   r   r\  rX  r   r"   r#   s   @r   rO  rO    s     3;= =r   rO  c                   8   a a ] tR tRt oV 3R ltR tRtVtV ;t# )ClassProvidesStrictTestsi  c                B   <a \         SV `  4       o ! V3R  lRS4      pV# )c                   .   <a  ] tR tRt o V3R ltRtV tR# )EClassProvidesStrictTests._getTargetClass.<locals>.StrictClassProvidesi   c                *   < SP                  WR R7      # rQ  rS  )r   rR  r  s   &&r   rT  VClassProvidesStrictTests._getTargetClass.<locals>.StrictClassProvides._do_calculate_ro!  rV  r   r   NrW  )r$   r  s   @r   StrictClassProvidesrf     rY  r   ri  rZ  )r   ri  r  r  s   & @r   r   (ClassProvidesStrictTests._getTargetClass  s$    /1	- 	 #"r   c           
     .   ^ RI Hp ^ RI Hp ^ RI Hp  ! R RV4      pV! V4       ! R R\        4      4       pV! R\
        3/ 4      pV P                  WeV4      pV P                  VP                  VV! V4      VV! \        4      V! \
        4      V34       R	# )
r(   rd   r   r  c                       ] tR tRtRtR# )MClassProvidesStrictTests.test_overlapping_interfaces_corrected.<locals>.IBasei/  r   Nr   r   r   r   r   rm  /  rP   r   r   c                       ] tR tRtRtR# )QClassProvidesStrictTests.test_overlapping_interfaces_corrected.<locals>.metaclassi2  r   Nr   r   r   r   	metaclassro  2  r?   r   rp  rx  N)	r   re   r   r  r  r   r   rB   r|   )r   re   r   r  r   rp  rx  r  s   &       r   ra  >ClassProvidesStrictTests.test_overlapping_interfaces_corrected(  s     	-0.	I 	 
U		 	 
	 I
 }}SU3)$$&!(
 	r   r   rc  rn  s   @@r   rc  rc    s     	# r   rc  c                   J   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )TestClassProvidesRepriG  c                    ^ RI Hp V# rQ  rR  rS  s   & r   r   %TestClassProvidesRepr._getTargetClassI  rs  r   c                .    V P                  4       ! V/ VB # r   r   r   s   &*,r   r   TestClassProvidesRepr._makeOneM  r   r   c                z    V P                  \        V 4      \        4      pV P                  \        V4      R 4       R# )z'directlyProvides(TestClassProvidesRepr)Nr  r  s   & r   test__repr__empty'TestClassProvidesRepr.test__repr__emptyP  s.    }}T$Z.J5	
r   c                    ^ RI Hp  ! R RV4      pV P                  \        V 4      \        V4      pV P	                  \        V4      R4       R# )r(   rd   c                       ] tR tRtRtRtR# )=TestClassProvidesRepr.test__repr__providing_one.<locals>.IFooiZ  r  r   Nr  r   r   r   r   r}  Z  r  r   r   z-directlyProvides(TestClassProvidesRepr, IFoo)N)r   re   r   r  rB   rS  )r   re   r   rk  s   &   r   test__repr__providing_one/TestClassProvidesRepr.test__repr__providing_oneW  sA    ,	9 	 }}T$Zt4J;	
r   c                    \        R RR7      p\        R RR7      p\        R4      pV P                  \        V 4      \        WV4      pV P                  \	        V4      R4       R# )r   r  r  r  r   z>directlyProvides(TestClassProvidesRepr, IFoo, IBaz, mod2.IFoo)Nr  r  s   &    r   r  1TestClassProvidesRepr.test__repr__duplicate_namesc  sT    f8v&9f%}}T$Zt5AJL	
r   c                    ^ RI Hp ^ RI Hp \        R4      pV! V4       ! R R4      4       pV! V4      pV P	                  \        V4      R4       R# )r(   r   r  r   c                       ] tR tRtRtR# )<TestClassProvidesRepr.test__repr__implementedBy.<locals>.Foois  r   Nr   r   r   r   r
   r  s  r?   r   r
   r  N)rA   r   r  r   rB   rS  )r   r   r  r   r
   rk  s   &     r   test__repr__implementedBy/TestClassProvidesRepr.test__repr__implementedByn  sR    =;f%	T		 	 
	 S!J(	
r   c                    ^ RI Hp  ! R R4      pV! V! 4       4      pV P                  \        V4      R\         R24       V! 4       pRVn        V! V4      pV P                  \        V4      R4       R# )r(   r   c                   &   a  ] tR tRt o R tRtV tR# )RTestClassProvidesRepr.test__repr__implementedBy_generic_callable.<locals>.Callablei  c                    V # r   r   r   s   &r   r    [TestClassProvidesRepr.test__repr__implementedBy_generic_callable.<locals>.Callable.__call__  s    r   r   N)r   r   r   r   r    r   r"   r#   s   @r   Callabler    s      r   r  r  z.?)zclassImplements(Callable)N)rA   r   rB   rS  r   )r   r   r  rk  cs   &    r   *test__repr__implementedBy_generic_callable@TestClassProvidesRepr.test__repr__implementedBy_generic_callable}  sp    =	 	 XZ(Jxj,	

 J
QJ'	
r   r   N)r   r   r   r   r   r   ry  r~  r  r  r  r   r"   r#   s   @r   rs  rs  G  s-     3


	


 
r   rs  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	Test_directlyProvidedByi  c                    ^ RI Hp V! V/ VB # )r(   )directlyProvidedBy)rA   r  )r   r   r   r  s   &*, r   r   Test_directlyProvidedBy._callFUT  r  r   c                |     ! R  R4      pV! 4       pV P                  \        V P                  V4      4      . 4       R# )c                       ] tR tRtRtR# )NTest_directlyProvidedBy.test_wo_declarations_in_class_or_instance.<locals>.Fooi  r   Nr   r   r   r   r
   r    rP   r   r
   Nr  r  s   &  r   )test_wo_declarations_in_class_or_instanceATest_directlyProvidedBy.test_wo_declarations_in_class_or_instance  s3    	 	 edmmC0126r   c                    ^ RI Hp \        R4      pV! V4       ! R R4      4       pV! 4       pV P                  \	        V P                  V4      4      . 4       R# )r(   r  r   c                       ] tR tRtRtR# )RTest_directlyProvidedBy.test_w_declarations_in_class_but_not_instance.<locals>.Fooi  r   Nr   r   r   r   r
   r    r?   r   r
   N)rA   r  r   rB   r]   r  )r   r  r   r
   r<   s   &    r   -test_w_declarations_in_class_but_not_instanceETest_directlyProvidedBy.test_w_declarations_in_class_but_not_instance  sR    ;f%	T		 	 
	 edmmC0126r   c                    ^ RI Hp \        R4      p ! R R4      pV! 4       pV! WB4       V P                  \	        V P                  V4      4      V.4       R# )r(   r~  r   c                       ] tR tRtRtR# )RTest_directlyProvidedBy.test_w_declarations_in_instance_but_not_class.<locals>.Fooi  r   Nr   r   r   r   r
   r    rP   r   r
   N)rA   r  r   rB   r]   r  )r   r  r   r
   r<   s   &    r   -test_w_declarations_in_instance_but_not_classETest_directlyProvidedBy.test_w_declarations_in_instance_but_not_class  sJ    @f%	 	 e#dmmC01D6:r   c                    ^ RI Hp ^ RI Hp \        R4      p\        R4      pV! V4       ! R R4      4       pV! 4       pV! Wd4       V P	                  \        V P                  V4      4      V.4       R# )r(   r~  r  r   r   c                       ] tR tRtRtR# )NTest_directlyProvidedBy.test_w_declarations_in_instance_and_class.<locals>.Fooi  r   Nr   r   r   r   r
   r    r?   r   r
   N)rA   r  r  r   rB   r]   r  )r   r  r  r   r   r
   r<   s   &      r   )test_w_declarations_in_instance_and_classATest_directlyProvidedBy.test_w_declarations_in_instance_and_class  si    @;f%f%	T		 	 
	 e#dmmC01D6:r   r   N)r   r   r   r   r  r  r  r  r  r   r"   r#   s   @r   r  r    s#     /7	7	;; ;r   r  c                   2   a  ] tR tRt o R tR tR tRtV tR# )Test_provideri  c                    ^ RI Hp V# )r(   )provider)rA   r  )r   r  s   & r   r   Test_provider._getTargetClass  s
    8r   c                .    V P                  4       ! V/ VB # r   r   r   s   &*,r   r   Test_provider._makeOne  r   r   c                    ^ RI Hp \        R4      pV P                  V4       ! R R4      4       pV P	                  VP
                  V4       V P                  \        VP
                  4      V.4       R# )r(   r  r   c                       ] tR tRtRtR# )'Test_provider.test_w_class.<locals>.Fooi  r   Nr   r   r   r   r
   r    r?   r   r
   N)rA   r  r   r   r   r  rB   r]   r  s   &   r   r  Test_provider.test_w_class  sl    =f%	t		 	 
	 	m	
 	!!"TF	
r   r   N)	r   r   r   r   r   r   r  r   r"   r#   s   @r   r  r    s     3
 
r   r  c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )Test_moduleProvidesi  c                    ^ RI Hp \        R4      pRRRVRV/p/ pRP                  RR.4      p\	        WSV4       VR	,          pV P                  \        V4       R
# )r(   moduleProvidesr   r   zope.interface.tests.foor  
z
def foo():    moduleProvides(IFoo)r<   N)rA   r  r   joinr-   r$  r/   )r   r  r   r1   r2   CODEr<   s   &      r   test_called_from_function-Test_moduleProvides.test_called_from_function  si    >f%7!>64Ayy&
  	T$5k)S)r   c                    ^ RI Hp \        R4      pRRRVRV/p/ pRP                  RR.4      pV P	                  \
        4      ;_uu_ 4        \        WSV4       R	R	R	4       R	#   + '       g   i     R	# ; i)
r(   r  r   r   r  r  r  zclass Foo(object):r  NrA   r  r   r  r$  r/   r-   )r   r  r   r1   r2   r  s   &     r   test_called_from_class*Test_moduleProvides.test_called_from_class  sp    >f%7!>64Ayy &
  y))d# *)))s   A##A4	c                    ^ RI Hp \        R4      pRRRVRV/pRP                  R.4      p\	        WC4       VR,          pV P                  \        V4      V.4       R	# )
r(   r  r   r   r  r  r  moduleProvides(IFoo)r  N)rA   r  r   r  r-   rB   r]   )r   r  r   r1   r  r  s   &     r   "test_called_once_from_module_scope6Test_moduleProvides.test_called_once_from_module_scope  sf    >f%7!>64Ayy"
  	T^$ddV,r   c                    ^ RI Hp \        R4      pRRRVRV/pRP                  RR.4      pV P	                  \
        4      ;_uu_ 4        \        WC4       RRR4       R#   + '       g   i     R# ; i)	r(   r  r   r   r  r  r  r  Nr  )r   r  r   r1   r  s   &    r   #test_called_twice_from_module_scope7Test_moduleProvides.test_called_twice_from_module_scope  sk    >f%7!>64A yy""
  y)) *)))s   
A  A1	r   N)
r   r   r   r   r  r  r  r  r   r"   r#   s   @r   r  r    s     *$
- r   r  c                   l   a  ] tR tRt o R t]tR tR tR tR t	R t
R tR	 tR
 tR tR tR tRtV tR# )#Test_getObjectSpecificationFallbacki  c                    ^ RI Hp V# )r(   )getObjectSpecificationFallback)rA   r  )r   r  s   & r   rl  5Test_getObjectSpecificationFallback._getFallbackClass  s    N--r   c                .    V P                  4       ! V/ VB # r   r   r   s   &*,r   r  ,Test_getObjectSpecificationFallback._callFUT"  r   r   c                   a / o ! V3R  lR4      pV! 4       pV P                  V4      pV P                  \        V4      . 4       R# )c                   4   <a  ] tR tRt o V3R ltR tRtV tR# )TTest_getObjectSpecificationFallback.test_wo_existing_provides_classless.<locals>.Fooi(  c                p   < VR 8X  d   \        V4      h SV,          #   \         d    \        T4      hi ; i)r  )rH  KeyError)r   r5  r  s   &&r   r  eTest_getObjectSpecificationFallback.test_wo_existing_provides_classless.<locals>.Foo.__getattribute__)  s?    ;&(../#D>) /(../s    5c                    \        4       hr   r   )r   r5  r  s   &&&r   r  `Test_getObjectSpecificationFallback.test_wo_existing_provides_classless.<locals>.Foo.__setattr__2  ru  r   r   Nr  r  s   @r   r
   r  (  s     /, ,r   r
   Nr  rB   r]   )r   r
   r<   r  r  s   &   @r   #test_wo_existing_provides_classlessGTest_getObjectSpecificationFallback.test_wo_existing_provides_classless%  s=    	, 	, e}}S!dR(r   c                    ^ RI Hp \        R4      pR pV! W24       V P                  V4      pV P	                  WCP
                  4       R# )r(   r~  r   c                      \        4       hr   r   r   r   r   r<   OTest_getObjectSpecificationFallback.test_existing_provides_is_spec.<locals>.foo=  r  r   N)rA   r  r   r  r  r  )r   r  r   r<   r  s   &    r   test_existing_provides_is_specBTest_getObjectSpecificationFallback.test_existing_provides_is_spec9  s>    @f%	( 	#}}S!d,,-r   c                    R  p\        4       Vn        V P                  V4      pV P                  \	        V4      . 4       R# )c                      \        4       hr   r   r   r   r   r<   STest_getObjectSpecificationFallback.test_existing_provides_is_not_spec.<locals>.fooF  r  r   N)r   r  r  rB   r]   )r   r<   r  s   &  r   "test_existing_provides_is_not_specFTest_getObjectSpecificationFallback.test_existing_provides_is_not_specD  s5    	( "8}}S!dR(r   c                    ^ RI Hp \        R4      p ! R R4      pV! 4       pV! WB4       V P                  V4      pV P	                  \        V4      V.4       R# )r(   r~  r   c                       ] tR tRtRtR# )GTest_getObjectSpecificationFallback.test_existing_provides.<locals>.FooiQ  r   Nr   r   r   r   r
   r  Q  rP   r   r
   N)rA   r  r   r  rB   r]   )r   r  r   r
   r<   r  s   &     r   test_existing_provides:Test_getObjectSpecificationFallback.test_existing_providesM  sN    @f%	 	 e#}}S!ddV,r   c                    ^ RI Hp \        R4      pV! V4       ! R R4      4       pV! 4       pV P                  V4      pV P	                  \        V4      V.4       R# )r(   r  r   c                       ] tR tRtRtR# )WTest_getObjectSpecificationFallback.test_wo_provides_on_class_w_implements.<locals>.Fooi]  r   Nr   r   r   r   r
   r  ]  r?   r   r
   N)rA   r  r   r  rB   r]   r   r  r   r
   r<   r  s   &     r   &test_wo_provides_on_class_w_implementsJTest_getObjectSpecificationFallback.test_wo_provides_on_class_w_implementsY  sX    ;f%	T		 	 
	 e}}S!ddV,r   c                     ! R  R4      pV! 4       pV P                  V4      pV P                  \        V4      . 4       R# )c                       ] tR tRtRtR# )XTest_getObjectSpecificationFallback.test_wo_provides_on_class_wo_implements.<locals>.Fooig  r   Nr   r   r   r   r
   r  g  rP   r   r
   Nr  r   r
   r<   r  s   &   r   'test_wo_provides_on_class_wo_implementsKTest_getObjectSpecificationFallback.test_wo_provides_on_class_wo_implementse  7    	 	 e}}S!dR(r   c                J    \         P                  ! W P                  R R7       R# )r  expected_missingNr   test_raisesr  r   s   &r   ,test_catches_only_AttributeError_on_providesPTest_getObjectSpecificationFallback.test_catches_only_AttributeError_on_providesn  s    $$--.	
r   c                N    \         P                  ! V V P                  R RR7       R# )r  N)r  r  r  r   s   &r   )test_catches_only_AttributeError_on_classMTest_getObjectSpecificationFallback.test_catches_only_AttributeError_on_classs  s     $$MM(		
r   c                F     ! R  R4      pV P                  V! 4       4       R# )c                   &    ] tR tRt]! ]4      tRtR# )lTest_getObjectSpecificationFallback.test_raises_AttrError_w_provides_fails_type_check_AttrError.<locals>.Fooi  r   N)r   r   r   r   r   rH  r  r   r   r   r   r
   r    s    +N;Lr   r
   N)r  r  s   & r   ;test_raises_AttrError_w_provides_fails_type_check_AttrError_Test_getObjectSpecificationFallback.test_raises_AttrError_w_provides_fails_type_check_AttrError{  s    	< 	< 	cer   c                    ! R  R4      pV P                  \        4      ;_uu_ 4       pV P                  V! 4       4       RRR4       V P                  RXP                  P
                  ^ ,          4       R#   + '       g   i     L?; i)c                   &    ] tR tRt]! ]4      tRtR# )oTest_getObjectSpecificationFallback.test_raises_AttrError_w_provides_fails_type_check_RuntimeError.<locals>.Fooi  r   N)r   r   r   r   r   RuntimeErrorr  r   r   r   r   r
   r
    s    +L9Lr   r
   Nr  )r$  r  r  rB   	exceptionr   )r   r
   excs   &  r   >test_raises_AttrError_w_provides_fails_type_check_RuntimeErrorbTest_getObjectSpecificationFallback.test_raises_AttrError_w_provides_fails_type_check_RuntimeError  s^    	: 	: |,,MM#%  - 	cmm&8&8&;< -,s   A66B	r   N)r   r   r   r   rl  r   r  r  r  r  r  r  r  r  r  r  r  r   r"   r#   s   @r   r  r    sM     .
 (O3)(	.)
-
-)


	= 	=r   r  c                   &   a  ] tR tRt o R tRtV tR# )Test_getObjectSpecificationi  c                    ^ RI Hp V# )r(   )getObjectSpecification)rA   r  )r   r  s   & r   r   +Test_getObjectSpecification._getTargetClass  s    F%%r   r   Nrt  r#   s   @r   r  r    s     & &r   r  c                      a a ] tR tRt oR t]tR tR tR tR t	R t
R tR	 tR
 tV 3R ltV 3R ltV 3R ltV 3R ltV 3R ltR tR tRtVtV ;t# )Test_providedByFallbacki  c                    ^ RI Hp V# )r(   )providedByFallback)rA   r  )r   r  s   & r   rl  )Test_providedByFallback._getFallbackClass  s    B!!r   c                .    V P                  4       ! V/ VB # r   r   r   s   &*,r   r   Test_providedByFallback._callFUT  r   r   c                     ! R  R4      pV! 4       pV P                  V4      pV P                  \        V4      . 4       R# )c                       ] tR tRtRtR# )NTest_providedByFallback.test_wo_providedBy_on_class_wo_implements.<locals>.Fooi  r   Nr   r   r   r   r
   r    rP   r   r
   Nr  r  s   &   r   )test_wo_providedBy_on_class_wo_implementsATest_providedByFallback.test_wo_providedBy_on_class_wo_implements  r  r   c                    ^ RI Hp \        R4      p ! R R4      pV! 4       pV! W24      Vn        V P	                  V4      pV P                  \        V4      V.4       R# )r(   r6  r   c                       ] tR tRtRtR# )ATest_providedByFallback.test_w_providedBy_valid_spec.<locals>.Fooi  r   Nr   r   r   r   r
   r#    rP   r   r
   N)rA   r7  r   r  r  rB   r]   )r   r7  r   r
   r<   r  s   &     r   test_w_providedBy_valid_spec4Test_providedByFallback.test_w_providedBy_valid_spec  sS    8f%	 	 e%c0}}S!ddV,r   c                     ! R  R4      pV! 4       p\        4       Vn        V P                  V4      pV P                  \	        V4      . 4       R# )c                       ] tR tRtRtR# )CTest_providedByFallback.test_w_providedBy_invalid_spec.<locals>.Fooi  r   Nr   r   r   r   r
   r(    rP   r   r
   N)r   r  r  rB   r]   r  s   &   r   test_w_providedBy_invalid_spec6Test_providedByFallback.test_w_providedBy_invalid_spec  sA    	 	 e#X}}S!dR(r   c                    ^ RI Hp \        R4      pV! V4       ! R R4      4       pV! 4       p\        4       Vn        V P                  V4      pV P                  \        V4      V.4       R# )r(   r  r   c                       ] tR tRtRtR# )VTest_providedByFallback.test_w_providedBy_invalid_spec_class_w_implements.<locals>.Fooi  r   Nr   r   r   r   r
   r-    r?   r   r
   N)rA   r  r   r   r  r  rB   r]   r  s   &     r   1test_w_providedBy_invalid_spec_class_w_implementsITest_providedByFallback.test_w_providedBy_invalid_spec_class_w_implements  sb    ;f%	T		 	 
	 e#X}}S!ddV,r   c                     ! R  R4      pV! 4       p\        4       Vn        \        4       ;q2n        V P                  V4      pV P	                  WC4       R# )c                       ] tR tRtRtR# )cTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_no_provides_on_class.<locals>.Fooi  r   Nr   r   r   r   r
   r2    rP   r   r
   Nr   r  r  r  r  r   r
   r<   expectedr  s   &    r   >test_w_providedBy_invalid_spec_w_provides_no_provides_on_classVTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_no_provides_on_class  sF    	 	 e#X&,h.#}}S!d%r   c                     ! R  R4      pV! 4       p\        4       Vn        \        4       ;q2n        \        4       Vn        V P                  V4      pV P	                  WC4       R# )c                       ] tR tRtRtR# )eTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_diff_provides_on_class.<locals>.Fooi  r   Nr   r   r   r   r
   r:    rP   r   r
   Nr3  r4  s   &    r   @test_w_providedBy_invalid_spec_w_provides_diff_provides_on_classXTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_diff_provides_on_class  sP    	 	 e#X&,h.#!8}}S!d%r   c                   ^ RI Hp \        R4      pV! V4       ! R R4      4       pV! 4       p\        4       Vn        \        4       ;Vn        Vn        V P                  V4      pV P                  \        V4      V.4       R# )r(   r  r   c                       ] tR tRtRtR# )eTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_same_provides_on_class.<locals>.Fooi  r   Nr   r   r   r   r
   r?    r?   r   r
   N)	rA   r  r   r   r  r  r  rB   r]   r  s   &     r   @test_w_providedBy_invalid_spec_w_provides_same_provides_on_classXTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_same_provides_on_class  st    ;f%	T		 	 
	 e#X.4h63+}}S!ddV,r   c                  < ^ RI Hp ^ RIHp  ! R RV4      p ! R RV4      pV! V4       ! R R4      4       pV! V4       ! R	 R
V4      4       pV! 4       pV P	                  \        V P                  V4      4      WC.4       \        Wg4      pV P                  V4      p	V P                  V	P                  4       V P	                  \        V	4      V.4       R# )r(   rd   r  c                       ] tR tRtRtR# )PTest_providedByFallback.test_super_when_base_implements_interface.<locals>.IBasei  r   Nr   r   r   r   r   rD    rP   r   r   c                       ] tR tRtRtR# )STest_providedByFallback.test_super_when_base_implements_interface.<locals>.IDerivedi  r   Nr   r   r   r   r   rF    rP   r   r   c                       ] tR tRtRtR# )OTest_providedByFallback.test_super_when_base_implements_interface.<locals>.Basei	  r   Nr   r   r   r   r	  rH  	  r?   r   r	  c                       ] tR tRtRtR# )RTest_providedByFallback.test_super_when_base_implements_interface.<locals>.Derivedi	  r   Nr   r   r   r   r  rJ  	  r?   r   r  N
r   re   rA   r  rB   r]   r  r  r   r4  )r   re   r  r   r   r	  r  derivedr  r5  r  s   &         r   r  ATest_providedByFallback.test_super_when_base_implements_interface  s    ,;	I 		u 	 
U		 	 
	 
X		d 	 
	 )dmmG457HIG%mmC #//*cUG,r   c                Z  < ^ RI Hp ^ RIHp  ! R RV4      p ! R RV4      p ! R R4      pV! V4       ! R	 R
V4      4       pV! 4       pV P	                  \        V P                  V4      4      V.4       \        Wg4      pV P	                  \        V P                  V4      4      . 4       R# )r(   rd   r  c                       ] tR tRtRtR# )VTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IBasei	  r   Nr   r   r   r   r   rP  	  rP   r   r   c                       ] tR tRtRtR# )YTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IDerivedi	  r   Nr   r   r   r   r   rR  	  rP   r   r   c                       ] tR tRtRtR# )UTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.Basei	  r   Nr   r   r   r   r	  rT  	  rP   r   r	  c                       ] tR tRtRtR# )XTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.Derivedi	  r   Nr   r   r   r   r  rV  	  r?   r   r  Nr  )
r   re   r  r   r   r	  r  rL  r  r  s
   &        r   rA  GTest_providedByFallback.test_super_when_base_doesnt_implement_interface	  s    ,;	I 		u 		 	 
X		d 	 
	 )dmmG45zBG%dmmC0126r   c                ~  < ^ RI Hp ^ RIHp  ! R RV4      p ! R RV4      pV! V4       ! R R4      4       pV! 4       pV P	                  \        V P                  V4      4      V.4       \        WV4      pV P                  V4      pV P                  VP                  4       V P	                  \        V4      . 4       R	# )
r(   rd   r  c                       ] tR tRtRtR# )ETest_providedByFallback.test_super_when_base_is_object.<locals>.IBasei,	  r   Nr   r   r   r   r   rZ  ,	  rP   r   r   c                       ] tR tRtRtR# )HTest_providedByFallback.test_super_when_base_is_object.<locals>.IDerivedi/	  r   Nr   r   r   r   r   r\  /	  rP   r   r   c                       ] tR tRtRtR# )GTest_providedByFallback.test_super_when_base_is_object.<locals>.Derivedi2	  r   Nr   r   r   r   r  r^  2	  r?   r   r  NrK  )
r   re   r  r   r   r  rL  r  r5  r  s
   &        r   rJ  6Test_providedByFallback.test_super_when_base_is_object(	  s    ,;	I 		u 	 
X		 	 
	 )dmmG45zBG%mmC #//*cB'r   c                  < ^ RI Hp ^ RIHp ^ RIHp  ! R RV4      p ! R RV4      pV! V4       ! R R	4      4       p ! R
 RV4      pV! 4       pV P                  \        V P                  V4      4      V.4       V! W4       V P                  \        V P                  V4      4      WT.4       \        Wx4      p	V P                  V	4      p
V P                  V
P                  4       V P                  \        V
4      V.4       R# )r(   rd   r~  r  c                       ] tR tRtRtR# )OTest_providedByFallback.test_super_when_object_directly_provides.<locals>.IBaseiC	  r   Nr   r   r   r   r   rb  C	  rP   r   r   c                       ] tR tRtRtR# )RTest_providedByFallback.test_super_when_object_directly_provides.<locals>.IDerivediF	  r   Nr   r   r   r   r   rd  F	  rP   r   r   c                       ] tR tRtRtR# )NTest_providedByFallback.test_super_when_object_directly_provides.<locals>.BaseiI	  r   Nr   r   r   r   r	  rf  I	  r?   r   r	  c                       ] tR tRtRtR# )QTest_providedByFallback.test_super_when_object_directly_provides.<locals>.DerivediM	  r   Nr   r   r   r   r  rh  M	  rP   r   r  N)r   re   rA   r  r  rB   r]   r  r  r   r4  )r   re   r  r  r   r   r	  r  rL  r  r5  r  s   &          r   (test_super_when_object_directly_provides@Test_providedByFallback.test_super_when_object_directly_provides>	  s    ,@;	I 		u 	 
U		 	 
		d 	 )dmmG45w?+dmmG457HIG%mmC #//*cUG,r   c                  < ^ RI Hp ^ RIHp  ! R RV4      p ! R RV4      p ! R RV4      p ! R	 R
V4      p ! R RV4      pV! V4       ! R R4      4       pV! V4       ! R RV4      4       p	V! V4       ! R RV4      4       p
V! Wg4       ! R RW4      4       pV! 4       p\	        W4      p\	        W4      p\	        W4      pV P                  \        V P                  V4      4      WgWCV.4       V P                  \        V P                  V4      4      WCV.4       V P                  \        V P                  V4      4      WS.4       V P                  \        V P                  V4      4      V.4       R# )r(   rd   r  c                       ] tR tRtRtR# )OTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IBasei_	  r   Nr   r   r   r   r   rm  _	  rP   r   r   c                       ] tR tRtRtR# )MTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM1ib	  r   Nr   r   r   r   rQ  ro  b	  rP   r   rQ  c                       ] tR tRtRtR# )MTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM2ie	  r   Nr   r   r   r   rT  rq  e	  rP   r   rT  c                       ] tR tRtRtR# )RTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IDerivedih	  r   Nr   r   r   r   r   rs  h	  rP   r   r   c                       ] tR tRtRtR# )TTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IUnrelatedik	  r   Nr   r   r   r   rY  ru  k	  rP   r   rY  c                       ] tR tRtRtR# )NTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.Basein	  r   Nr   r   r   r   r	  rw  n	  r?   r   r	  c                       ] tR tRtRtR# )LTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.M1ir	  r   Nr   r   r   r   r^  ry  r	  r?   r   r^  c                       ] tR tRtRtR# )LTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.M2iv	  r   Nr   r   r   r   ra  r{  v	  r?   r   ra  c                       ] tR tRtRtR# )QTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.Derivediz	  r   Nr   r   r   r   r  r}  z	  r?   r   r  Nrd  re  s   &               r   rj  @Test_providedByFallback.test_super_multi_level_multi_inheritance[	  s}   ,;	I 		) 		) 		u 		 	 
U		 	 
	 
S		 	 
	 
S		 	 
	 
X	*	b 	 
+	 I7BlBldmmA./"C@	BdmmB/0c*	,dmmC01	'dmmC01	"r   c                T    \         P                  ! W P                  R \        R7       R# )r  )r  r  N)r   r  r  r   r   s   &r   .test_catches_only_AttributeError_on_providedByFTest_providedByFallback.test_catches_only_AttributeError_on_providedBy	  s    $$T==6F/5	7r   c                J    \         P                  ! W P                  R R7       R# )r  r  Nr  r   s   &r   r  ATest_providedByFallback.test_catches_only_AttributeError_on_class	  s     	$$--+	?r   r   )r   r   r   r   rl  r   r  r  r$  r)  r.  r6  r;  r@  r  rA  rJ  ri  rj  r  r  r   r"   rm  rn  s   @@r   r  r    sb     "
 (O3)
-)-	&
&--47.(,-:/"b7
? ?r   r  c                   &   a  ] tR tRt o R tRtV tR# )Test_providedByi	  c                    ^ RI Hp V# )r(   r  )rA   r  )r   r  s   & r   r   Test_providedBy._getTargetClass	  rA  r   r   Nrt  r#   s   @r   r  r  	  s      r   r  c                   T   a  ] tR tRt o R t]tR tR tR tR t	R t
R tR	 tR
tV tR# )*ObjectSpecificationDescriptorFallbackTestsi	  c                    ^ RI Hp V# )r(   )%ObjectSpecificationDescriptorFallback)rA   r  )r   r  s   & r   rl  <ObjectSpecificationDescriptorFallbackTests._getFallbackClass	  s    	244r   c                .    V P                  4       ! V/ VB # r   r   r   s   &*,r   r   3ObjectSpecificationDescriptorFallbackTests._makeOne	  r   r   c                    ^ RI Hp \        R4      p ! R R4      pV! W24      Vn        V P	                  4       Vn        V P                  \        VP
                  4      V.4       R# )r(   r6  r   c                       ] tR tRtRtR# )OObjectSpecificationDescriptorFallbackTests.test_accessed_via_class.<locals>.Fooi	  r   Nr   r   r   r   r
   r  	  rP   r   r
   N)rA   r7  r   r  r   r  rB   r]   )r   r7  r   r
   s   &   r   test_accessed_via_classBObjectSpecificationDescriptorFallbackTests.test_accessed_via_class	  sS    8f%	 	 $C.!]]_c001D6:r   c                   ^ RI Hp ^ RI Hp \        R4      p\        R4      pV! V4       ! R R4      4       pV! WT4      Vn        V P                  4       Vn        V! 4       pV P                  \        VP                  4      V.4       R# )r(   r6  r  r   r   c                       ] tR tRtRtR# )ZObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_wo_provides.<locals>.Fooi	  r   Nr   r   r   r   r
   r  	  r?   r   r
   N)	rA   r7  r  r   r  r   r  rB   r]   )r   r7  r  r   r   r
   r<   s   &      r   "test_accessed_via_inst_wo_providesMObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_wo_provides	  sy    8;f%f%	T		 	 
	 $C.!]]_ec001D6:r   c                D   ^ RI Hp ^ RI Hp ^ RI Hp \	        R4      p\	        R4      p\	        R4      pV! V4       ! R R4      4       pV! Wu4      Vn        V P                  4       Vn        V! 4       pV! W4       V P                  \        VP                  4      Wd.4       R	# )
r(   r6  r~  r  r   r   r   c                       ] tR tRtRtR# )YObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_w_provides.<locals>.Fooi	  r   Nr   r   r   r   r
   r  	  r?   r   r
   N)
rA   r7  r  r  r   r  r   r  rB   r]   )	r   r7  r  r  r   r   r   r
   r<   s	   &        r   !test_accessed_via_inst_w_providesLObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_w_provides	  s    8@;f%f%f%	T		 	 
	 $C.!]]_e#c001D<@r   c                   a a  ! R  R\         4      o ! VV 3R lR4      pV! 4       pS P                  S4      ;_uu_ 4        \        VR4       RRR4       R#   + '       g   i     R# ; i)c                       ] tR tRtRtR# )vObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught.<locals>.MyExceptioni	  r   Nr   r   r   r   MyExceptionr  	  rP   r   r  c                   Z   <a  ] tR tRt o  ZP	                  4       t]V3R l4       tRtV t	R# )nObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught.<locals>.Fooi	  c                   < Shr   r   )r   r  s   &r   r  {ObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught.<locals>.Foo.__provides__	  s	    !!r   r   N
r   r   r   r   r   r  r  r  r   r"   )r$   r  r   s   @r   r
   r  	  s"     !]]_N" "r   r
   r  N)	Exceptionr$  rC  )r   r
   r<   r  s   f  @r   6test_arbitrary_exception_accessing_provides_not_caughtaObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught	  sM    	) 		" 	" e{++C)* ,+++s    AA(	c                   a   ! R  R\         4      p ! V 3R lR4      pV! 4       p\        VR4      pS P                  V4       R# )c                       ] tR tRtRtR# )mObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caught.<locals>.MyExceptioni	  r   Nr   r   r   r   r  r  	  rP   r   r  c                   T   <a  ] tR tRt o  ZP	                  4       t]R 4       tRtV t	R# )eObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caught.<locals>.Fooi	  c                    \         hr   )rH  r   s   &r   r  rObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caught.<locals>.Foo.__provides__	  s    $$r   r   Nr  )r$   r   s   @r   r
   r  	  s"     !]]_N% %r   r
   r  N)r  rC  assertIsNotNone)r   r  r
   r<   provideds   f    r   -test_AttributeError_accessing_provides_caughtXObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caught	  s=    	) 		% 	% e3 01X&r   c                    ^ RI Hp ^ RI Hp  ! R RV4      pV! V4       ! R R4      4       pV P                  4       Vn        \        V! 4       R4      pV P                  V4       R# )	r(   rd   r  c                       ] tR tRtRtR# )ZObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides.<locals>.IFooi	  r   Nr   r   r   r   r   r  	  rP   r   r   c                   0   a  ] tR tRt o ]R 4       tRtV tR# )YObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides.<locals>.Fooi
  c                    R # r   r   r   s   &r   r  fObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides.<locals>.Foo.__provides__
  s    r   r   N)r   r   r   r   r  r  r   r"   r#   s   @r   r
   r  
  s       r   r
   r  N)r   re   r  r   r  rC  r   )r   re   r  r   r
   r  s   &     r   !test_None_in__provides__overridesLObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides	  s_    ,.	9 	 
T		 	 
	 "]]_35"23(#r   r   N)r   r   r   r   rl  r   r   r  r  r  r  r  r  r   r"   r#   s   @r   r  r  	  s:     5 (O3	;;A$+ ' $ $r   r  c                   &   a  ] tR tRt o R tRtV tR# )"ObjectSpecificationDescriptorTestsi
  c                    ^ RI Hp V# )r(   )ObjectSpecificationDescriptor)rA   r  )r   r  s   & r   r   2ObjectSpecificationDescriptorTests._getTargetClass
  s    M,,r   r   Nrt  r#   s   @r   r  r  
  s     - -r   r  c                   2   a  ] tR tRt o R tR tR tRtV tR# )r  i
  c                    Wn         V Uu/ uF  q3\        W4      bK  	  upV n        VP                  4        F  w  r4\	        WV4       K  	  R # u upi r   )modulerC  
to_restoreitemsr  )r   r  r   keyr  s   &&,  r   ro  _Monkey.__init__
  sG    @BC 44C((*JCF' % Ds   Ac                    V # r   r   r   s   &r   	__enter___Monkey.__enter__%
  s    r   c                x    V P                   P                  4        F  w  rE\        V P                  WE4       K  	  R # r   )r  r  r  r  )r   exc_typeexc_valexc_tbr  r  s   &&&&  r   __exit___Monkey.__exit__(
  s)    ////1JCDKK, 2r   )r  r  N	r   r   r   r   ro  r  r  r   r"   r#   s   @r   r  r  
  s     (- -r   r  c                   2   a  ] tR tRt o R tR tR tRtV tR# )r  i-
  c                    Wn         \        W4      V n        V P                  P                  4       V n        V P                  P                  4        V P                  P                  V4       R # r   )r  rC  targetcopyr  clearupdate)r   r  attrnamer   s   &&&,r   ro  _MonkeyDict.__init__0
  sI    f/++**,2r   c                    V P                   # r   )r  r   s   &r   r  _MonkeyDict.__enter__7
  s    {{r   c                    V P                   P                  4        V P                   P                  V P                  4       R # r   )r  r  r  r  )r   r  r  r  s   &&&&r   r  _MonkeyDict.__exit__:
  s(    4??+r   )r  r  r  Nr  r#   s   @r   r  r  -
  s     , ,r   r  )6r  unittestrf   r   rq  r   r   r   #zope.interface.tests.test_interfacer   r   r   r
   r   r   r&   TestCaser8   rT   r   r  r>  r  rp  rv  r  r  r  r  r  r  r%  rL  re  r  r  r  r  r  rH  rO  rc  rs  r  r  r  r  r  r  r  r  r  r  r  r   r   r   <module>r     s    3 1 6 2& ff	 	 $ $ ( 
""  
F7(H-- 7(tw9, w9t@,4 @,Fz86&&z8z\"!2!2 \"~
3.&% &%R-43X5F5F -4`l
/1B1B l
^/ 4 /
h// 
0;D+ ;D|>4 >B51** 51p#1 #L@
H-- @
F#H%% #B7AH-- 7At'
)) '
T8@H-- 8@v1HX%6%6 1Hh)")"!=** !=H*1 *ZK
H-- K
\0;h// 0;f
H%% 
25(++ 5pu=(*;*; u=p&"E"7&{?h// {?|-+j$1B1B j$Z	-2	-- - , ,r   