+
    -½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# )!zµTest 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ô	”A”qô 	ä˜E¤3Ô'ô	�ô 	ä˜œ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ô	"”A”qô 	"ô	�ô 	ô 	˜œ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ùòo >ùò 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‹ô	”ó 	ó 
ð	ô	�ô 	ô 	˜œ2œrÔ"Ø×Ñ¬}¸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‹ô	”ó 	ó 
ð	ô	�ô 	ô 	˜Aœr¤2Ô&Ø×Ñ¬m¸AÔ.>Ó?Ñ.>¨Ÿ*œ*Ñ.>Ñ?Ø ˜ö	'ùÒ?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›.Ô)ä˜Ô/°Ó3´bÕ8Ô9Ø�‰”bœ* R›.Ô)Ø×ÑœœZ¨›^Ô,Ø×ÑœœZ¨›^Ô,Ü˜Ô/°Ó3´RÔ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_typeÚ1Test.test_odd_metaclass_that_doesnt_subclass_type  s_  € ÷	ñ 	ô �MŠM˜#˜qŸ{™{¨A¯J©JÓ7ˆ÷	ñ 	ô �MŠM˜#˜qŸ{™{¨A¯J©JÓ7ˆô	�ô 	ð 	×Ñ˜Ÿ™ q fÔ-á‹CˆÙ‹SˆØ×Ñ˜Ÿ™˜aÔ Ø×Ñ˜Ÿ™˜qÔ!àˆŒØ×Ñ˜Ÿ™˜aÔ Ø×Ñ˜Ÿ™˜qÔ!á‹CˆØ×Ñ˜Ÿ™˜aÔ Ø×Ñ˜Ÿ™˜aÔ àˆŒØ×Ñ˜Ÿ™˜aÔ àˆŒØ×Ñ˜Ÿ™˜aÔ Ø	�Šà�‰�a—k‘k×+Ñ+¨Q¯[©[Ö9r   r   N)r   r   r   r   rC   rN   rW   rm   rx   rŠ   r   Ú__classdictcell__)Ú__classdict__s   @r   r+   r+   V   s*   ø‡ € ò:3òx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æ   ðñó
 å $Ý *Ý .Ý -Ý +Ý (Ý &Ý %Ý $ô	ˆô 	ô	ˆô 	ô	ˆô 	ô	ˆ"ô 	ô	ˆô 	ô	ˆô 	÷	ñ 	ð 
‡m‚m�E˜3Ÿ=™=¨"Ó-€ôˆô ô	ˆô 	ñ ��2Ô ô	ˆˆ1ô 	ñ ��3Ô ôW:ˆ8×Ñö W:r   