+
    -i                        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IHt ^ RIH	t	 ^ R	IH
t
 ^ R
IHt  ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R4      t]P(                  ! R]P*                  / 4      t ! R R]4      t ! R R]4      t]! ]]4        ! R R]]4      t]! ]]4        ! R R ]P2                  4      tR# )!zTest interface declarations against ExtensionClass-like classes.

These tests are to make sure we do something sane in the presence of
classic ExtensionClass classes and instances.
N)	Interface)classImplements)classImplementsOnly)directlyProvidedBy)directlyProvides)implementedBy)implementer)
providedBy)oddc                       ] tR t^ tRtR# )I1 N__name__
__module____qualname____firstlineno____static_attributes__r       L/usr/lib/python3/dist-packages/zope/interface/tests/test_odd_declarations.pyr   r           r   r   c                       ] tR t^$tRtR# )I2r   Nr   r   r   r   r   r   $   r   r   r   c                       ] tR t^(tRtR# )I3r   Nr   r   r   r   r   r   (   r   r   r   c                       ] tR t^,tRtR# )I31r   Nr   r   r   r   r   r   ,   r   r   r   c                       ] tR t^0tRtR# )I4r   Nr   r   r   r   r   r   0   r   r   r   c                       ] tR t^4tRtR# )I5r   Nr   r   r   r   r    r    4   r   r   r    c                       ] tR t^8tRtR# )Oddr   Nr   r   r   r   r"   r"   8   r   r   r"   c                       ] tR t^?t]tRtR# )Br   N)r   r   r   r   r   __implemented__r   r   r   r   r$   r$   ?   s    Or   r$   c                       ] tR t^HtRtR# )Ar   Nr   r   r   r   r'   r'   H   r   r   r'   c                       ] tR t^OtRtR# )Cr   Nr   r   r   r   r)   r)   O   r   r   r)   c                   D   a  ] tR t^Vt o R tR tR tR tR tR t	Rt
V tR# )	Testc                L
   \        4       p\        V\        4       T P                  \	        V4       Uu. uF  q"P                  4       NK  	  up. RO4       T P                  \	        V4      P                  4        Uu. uF  q"P                  4       NK  	  up. R	O4       V P                  \        \	        V4      4       V P                  \        \	        V4      4       V P                  \	        V4      P                  \        4      4       V P                  \	        V4      P                  \        4      4       V P                  \	        V4      P                  \        4      4        ! R R\         \"        4      p\%        V\        4        ! R RV4      p\'        V\        4       \'        V\        4       V! 4       p\        V\        4       T P                  \	        V4       Uu. uF  q"P                  4       NK  	  up. R
O4       T P                  \	        V4      P                  4        Uu. uF  q"P                  4       NK  	  up. RO4       V P                  \        \	        V4      4       V P                  \        \	        V4      4       V P                  \	        V4      P                  \        4      4       V P                  \	        V4      P                  \        4      4       V P                  \	        V4      P                  \        4      4       V P                  \	        V4      P                  \        4      4        ! R R\         \"        4      p ! R RV4      p\'        V\        4       \'        V\        4       V! 4       p\        V\        4       T P                  \	        V4       Uu. uF  q"P                  4       NK  	  up. R
O4       T P                  \	        V4      P                  4        Uu. uF  q"P                  4       NK  	  up. RO4       V P                  \        \	        V4      4       V P                  \        \	        V4      4       V P                  \	        V4      P                  \        4      4       V P                  \	        V4      P                  \        4      4       V P                  \	        V4      P                  \        4      4       V P                  \	        V4      P                  \        4      4       R# u upi u upi u upi u upi u upi u upi )r   c                       ] tR t^gtRtR# ,Test.test_ObjectSpecification.<locals>.COnlyr   Nr   r   r   r   COnlyr/   g       r   r0   c                       ] tR t^ktRtR# (Test.test_ObjectSpecification.<locals>.Dr   Nr   r   r   r   Dr4   k   r1   r   r5   c                       ] tR t^~t]tRtR# r.   )r   r   r   r   r   r%   r   r   r   r   r0   r/   ~   s    !Or   c                       ] tR t^tRtR# r3   r   r   r   r   r5   r4      r1   r   N)r   r   r   r   )r   r   r   r   r   r   )r   r    r   )r   r    r   r   r   )r)   r   r   assertEqualr	   getName	flattenedassertInr   assertNotInr   
assertTrueextendsr   assertFalser    r'   r$   r   r   )selfcir0   r5   s   &    r   test_ObjectSpecificationTest.test_ObjectSpecificationX   s   CBz!}=}!))+}=2	 	z!}/F/F/HI/H!))+/HIE	 	b*Q-(Z]+
1--b12
1--c23A..r23	Aq 	E3'	 	22CBz!}=}!))+}=,	.z!}/F/F/HI/H!))+/HI?	AZ]+Z]+
1--b12A..r23
1--c23
1--b12	"Aq 	"	 	 	22CBz!}=}!))+}=,	.z!}/F/F/HI/H!))+/HI?	AZ]+Z]+
1--b12A..r23
1--c23
1--b12o > J* >I( >Is#   T;T T(T*T2T!c                   \        \        4       ! R  R\        4      4       p\        \        4       ! R R\        4      4       p ! R RW4      p\	        V\
        \        4       T P                  \        V4       Uu. uF  qDP                  4       NK  	  up. RO4       \	        V\        4       T P                  \        V4       Uu. uF  qDP                  4       NK  	  up. RO4       R# u upi u upi )	c                       ] tR t^tRtR# )$Test.test_classImplements.<locals>.Ar   Nr   r   r   r   r'   rG          r   r'   c                       ] tR t^tRtR# )$Test.test_classImplements.<locals>.Br   Nr   r   r   r   r$   rJ      rH   r   r$   c                       ] tR t^tRtR# )$Test.test_classImplements.<locals>.Cr   Nr   r   r   r   r)   rL      r1   r   r)   N)r   r   r   r   )r   r   r    r   r   )r   r   r"   r   r   r   r   r8   r   r9   r    r@   r'   r$   r)   rB   s   &    r   test_classImplementsTest.test_classImplements   s    	R	 	 
	 
R	 	 
		 	 	2r"}Q/?@/?!))+/?@1	3 	2}Q/?@/?!))+/?@7	9	 A As   ;C)C.c                @   \        \        4       ! R  R\        4      4       p\        \        4       ! R R\        4      4       p ! R RW4      p\	        V\
        \        4       T P                  \        V4       Uu. uF  qDP                  NK  	  upRR.4       R# u upi )	c                       ] tR t^tRtR# )(Test.test_classImplementsOnly.<locals>.Ar   Nr   r   r   r   r'   rR      rH   r   r'   c                       ] tR t^tRtR# )(Test.test_classImplementsOnly.<locals>.Br   Nr   r   r   r   r$   rT      rH   r   r$   c                       ] tR t^tRtR# )(Test.test_classImplementsOnly.<locals>.Cr   Nr   r   r   r   r)   rV      r1   r   r)   r   r   N)
r   r   r"   r   r   r   r   r8   r   r   rM   s   &    r   test_classImplementsOnlyTest.test_classImplementsOnly   s    	R	 	 
	 
R	 	 
		 	 	Ar2&mA.>?.>**.>?	'?s   ;Bc                    ! R  R\         4      p ! R R\         4      p ! R R\         4      p ! R R\         4      p ! R R	\        4      p\        WQV4        ! R
 R\        4      p\        Wc4        ! R RWV4      p\        Wt4       V! 4       p\        V\        \
        4       V P                  \        \        V4      4       V P                  \
        \        V4      4       V P                  V\        V4      4       V P                  V\        V4      4       V P                  V\        V4      4       V P                  V\        V4      4       \        V\        V4      \
        ,
          4       V P                  \        \        V4      4       V P                  \
        \        V4      4       V P                  \
        \        V4      4       \        V\        V4      \
        4       V P                  \
        \        V4      4       R# )c                       ] tR t^tRtR# )'Test.test_directlyProvides.<locals>.IA1r   Nr   r   r   r   IA1r[      r1   r   r\   c                       ] tR t^tRtR# )'Test.test_directlyProvides.<locals>.IA2r   Nr   r   r   r   IA2r^      r1   r   r_   c                       ] tR t^tRtR# )&Test.test_directlyProvides.<locals>.IBr   Nr   r   r   r   IBra      r1   r   rb   c                       ] tR t^tRtR# )&Test.test_directlyProvides.<locals>.ICr   Nr   r   r   r   ICrd      r1   r   re   c                       ] tR t^tRtR# )%Test.test_directlyProvides.<locals>.Ar   Nr   r   r   r   r'   rg      r1   r   r'   c                       ] tR t^tRtR# )%Test.test_directlyProvides.<locals>.Br   Nr   r   r   r   r$   ri      r1   r   r$   c                       ] tR t^tRtR# )%Test.test_directlyProvides.<locals>.Cr   Nr   r   r   r   r)   rk      r1   r   r)   N)
r   r"   r   r   r   r   r;   r	   r   r<   )	r@   r\   r_   rb   re   r'   r$   r)   obs	   &        r   test_directlyProvidesTest.test_directlyProvides   sb   	) 		) 		 		 		 	$	 		 	SR$b*R.)b*R.)c:b>*c:b>*b*R.)b*R.)/3b89b*R.)Z^,Z^,/3R8b*R.)r   c                    ! R  R\         4      p ! R R\        4      p\        W!4        ! R RV4      p\        V\        4       T P	                  \        V4       Uu. uF  qDP                  4       NK  	  upRR.4       R# u upi )c                       ] tR t^tRtR# )#Test.test_implementedBy.<locals>.I2r   Nr   r   r   r   r   rq      r1   r   r   c                       ] tR t^tRtR# )#Test.test_implementedBy.<locals>.C1r   Nr   r   r   r   C1rs      r1   r   rt   c                       ] tR t^tRtR# )#Test.test_implementedBy.<locals>.C2r   Nr   r   r   r   C2rv      r1   r   rw   r   N)r   r"   r   r   r8   r   r9   )r@   r   rt   rw   rB   s   &    r   test_implementedByTest.test_implementedBy   sp    	 		 	 		 	 	B}R/@A/@!))+/@A	'As   Bc                    ! R  R4      p\         P                  ! RVP                  VP                  4      p ! R R4      p\         P                  ! RVP                  VP                  4      p ! R RW4      pV P	                  VP                  W34       V! 4       pV! 4       pV P	                  VP
                  ^4       V P	                  VP
                  ^4       ^Vn        V P	                  VP
                  ^4       V P	                  VP
                  ^4       V! 4       pV P	                  VP
                  ^4       V P	                  VP                  ^4       ^Vn        V P	                  VP                  ^4       ^Vn        V P	                  VP                  ^4       VP                   V P                  VP                  P                  VP                  4       R# )c                       ] tR tRt^tRtR# )<Test.test_odd_metaclass_that_doesnt_subclass_type.<locals>.Ai
  r   N)r   r   r   r   ar   r   r   r   r'   r|   
      Ar   r'   c                       ] tR tRt^tRtR# )<Test.test_odd_metaclass_that_doesnt_subclass_type.<locals>.Bi  r   N)r   r   r   r   br   r   r   r   r$   r     r~   r   r$   c                       ] tR tRtRtR# )<Test.test_odd_metaclass_that_doesnt_subclass_type.<locals>.Ci  r   Nr   r   r   r   r)   r     r1   r   r)   N)
r
   	MetaClass	__bases____dict__r8   r}   r   rA   assertIs	__class__)r@   r'   r$   r)   r}   aarA   s   &      r   ,test_odd_metaclass_that_doesnt_subclass_type1Test.test_odd_metaclass_that_doesnt_subclass_type  s_   	 	 MM#q{{AJJ7	 	 MM#q{{AJJ7	 	 	qf-CSa q!a q!Ca a a a 	akk++Q[[9r   r   N)r   r   r   r   rC   rN   rW   rm   rx   r   r   __classdictcell__)__classdict__s   @r   r+   r+   V   s*     :3x9*'"(*l'$+: +:r   r+   )__doc__unittestzope.interfacer   r   r   r   r   r   r   r	   zope.interface.testsr
   r   r   r   r   r   r    r"   r   r   r$   r'   r)   TestCaser+   r   r   r   <module>r      s   
  $ * . - + ( & % $	 		 		 		" 		 		 		 	 
mmE3=="- 	 	 2 	1 	 3 W:8 W:r   