
    Jf                        d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lm	Z	 dd
lm
Z
 ddlmZ  G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d      Z ej(                  dej*                  i       Z G d de      Z G d de      Z eee        G d dee      Z eee        G d  d!ej2                        Zy)"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                       e Zd Zy)I1N__name__
__module____qualname__     e/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/zope/interface/tests/test_odd_declarations.pyr   r           r   r   c                       e Zd Zy)I2Nr   r   r   r   r   r   $   r   r   r   c                       e Zd Zy)I3Nr   r   r   r   r   r   (   r   r   r   c                       e Zd Zy)I31Nr   r   r   r   r   r   ,   r   r   r   c                       e Zd Zy)I4Nr   r   r   r   r   r   0   r   r   r   c                       e Zd Zy)I5Nr   r   r   r   r   r   4   r   r   r   c                       e Zd Zy)OddNr   r   r   r   r!   r!   8   r   r   r!   c                       e Zd ZeZy)BN)r   r   r   r   __implemented__r   r   r   r#   r#   ?   s    Or   r#   c                       e Zd Zy)ANr   r   r   r   r&   r&   H   r   r   r&   c                       e Zd Zy)CNr   r   r   r   r(   r(   O   r   r   r(   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)Testc                 J
   t               }t        |t               | j                  t	        |      D cg c]  }|j                          c}g d       | j                  t	        |      j                         D cg c]  }|j                          c}g d       | j                  t        t	        |      v        | j                  t        t	        |      v        | j                  t	        |      j                  t                     | j                  t	        |      j                  t                     | j                  t	        |      j                  t                      G d dt        t              }t!        |t                G d d|      }t#        |t               t#        |t                |       }t        |t               | j                  t	        |      D cg c]  }|j                          c}g d       | j                  t	        |      j                         D cg c]  }|j                          c}g d       | j                  t        t	        |      v        | j                  t        t	        |      v        | j                  t	        |      j                  t                     | j                  t	        |      j                  t                     | j                  t	        |      j                  t                     | j                  t	        |      j                  t                      G d	 dt        t              } G d
 d|      }t#        |t               t#        |t                |       }t        |t               | j                  t	        |      D cg c]  }|j                          c}g d       | j                  t	        |      j                         D cg c]  }|j                          c}g d       | j                  t        t	        |      v        | j                  t        t	        |      v        | j                  t	        |      j                  t                     | j                  t	        |      j                  t                     | j                  t	        |      j                  t                     | j                  t	        |      j                  t                     y c c}w c c}w c c}w c c}w c c}w c c}w )N)r   r   r   r   )r   r   r   r   r   r   c                       e Zd Zy,Test.test_ObjectSpecification.<locals>.COnlyNr   r   r   r   COnlyr.   g       r   r/   c                       e Zd Zy(Test.test_ObjectSpecification.<locals>.DNr   r   r   r   Dr3   k   r0   r   r4   )r   r   r   )r   r   r   r   r   c                       e Zd ZeZyr-   )r   r   r   r   r$   r   r   r   r/   z,Test.test_ObjectSpecification.<locals>.COnly~   s    !Or   c                       e Zd Zyr2   r   r   r   r   r4   z(Test.test_ObjectSpecification.<locals>.D   r0   r   )r(   r   r   assertEqualr
   getName	flattened
assertTruer   assertFalser   extendsr   r   r&   r#   r   r   )selfcir/   r4   s        r   test_ObjectSpecificationzTest.test_ObjectSpecificationX   s   CBz!}=!!))+=2	 	z!}/F/F/HI!!))+IE	 	jm+,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!!))+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!!))+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1T c                    t        t               G d dt                     }t        t               G d dt                     } G d d||      }t	        |t
        t               | j                  t        |      D cg c]  }|j                          c}g d       t	        |t               | j                  t        |      D cg c]  }|j                          c}g d       y c c}w c c}w )	Nc                       e Zd Zy)$Test.test_classImplements.<locals>.ANr   r   r   r   r&   rC          r   r&   c                       e Zd Zy)$Test.test_classImplements.<locals>.BNr   r   r   r   r#   rF      rD   r   r#   c                       e Zd Zy)$Test.test_classImplements.<locals>.CNr   r   r   r   r(   rH      r0   r   r(   )r   r   r   r   )r   r   r   r   r   )r	   r   r!   r   r   r   r   r7   r   r8   r   r=   r&   r#   r(   r?   s        r   test_classImplementszTest.test_classImplements   s    	R	 	 
	 
R	 	 
		1 	 	2r"}Q/?@!!))+@1	3 	2}Q/?@!!))+@7	9	 A As   <C'C,c                 >   t        t               G d dt                     }t        t               G d dt                     } G d d||      }t	        |t
        t               | j                  t        |      D cg c]  }|j                   c}ddg       y c c}w )	Nc                       e Zd Zy)(Test.test_classImplementsOnly.<locals>.ANr   r   r   r   r&   rM      rD   r   r&   c                       e Zd Zy)(Test.test_classImplementsOnly.<locals>.BNr   r   r   r   r#   rO      rD   r   r#   c                       e Zd Zy)(Test.test_classImplementsOnly.<locals>.CNr   r   r   r   r(   rQ      r0   r   r(   r   r   )
r	   r   r!   r   r   r   r   r7   r   r   rI   s        r   test_classImplementsOnlyzTest.test_classImplementsOnly   s    	R	 	 
	 
R	 	 
		1 	 	Ar2&mA.>?!**?	'?s   <Bc                     G d dt               } G d dt               } G d dt               } G d dt               } G d	 d
t              }t        |||        G d dt              }t        ||        G d d||      }t        ||        |       }t        |t        t
               | j                  t        t        |      v        | j                  t
        t        |      v        | j                  |t        |      v        | j                  |t        |      v        | j                  |t        |      v        | j                  |t        |      v        t        |t        |      t
        z
         | j                  t        t        |      v        | j                  t
        t        |      v        | j                  t
        t        |      v        t        |t        |      t
               | j                  t
        t        |      v        y )Nc                       e Zd Zy)'Test.test_directlyProvides.<locals>.IA1Nr   r   r   r   IA1rU      r0   r   rV   c                       e Zd Zy)'Test.test_directlyProvides.<locals>.IA2Nr   r   r   r   IA2rX      r0   r   rY   c                       e Zd Zy)&Test.test_directlyProvides.<locals>.IBNr   r   r   r   IBr[      r0   r   r\   c                       e Zd Zy)&Test.test_directlyProvides.<locals>.ICNr   r   r   r   ICr^      r0   r   r_   c                       e Zd Zy)%Test.test_directlyProvides.<locals>.ANr   r   r   r   r&   ra      r0   r   r&   c                       e Zd Zy)%Test.test_directlyProvides.<locals>.BNr   r   r   r   r#   rc      r0   r   r#   c                       e Zd Zy)%Test.test_directlyProvides.<locals>.CNr   r   r   r   r(   re      r0   r   r(   )
r   r!   r   r   r   r   r:   r
   r   r;   )	r=   rV   rY   r\   r_   r&   r#   r(   obs	            r   test_directlyProvideszTest.test_directlyProvides   s   	) 		) 		 		 		 	3$	 	2	1 	2SR$jn,-jn,-z"~-.z"~-.jn,-jn,-/3b89jn,-z"~-.z"~-./3R8jn,-r   c                 
    G d dt               } G d dt              }t        ||        G d d|      }t        |t               | j	                  t        |      D cg c]  }|j                          c}ddg       y c c}w )Nc                       e Zd Zy)#Test.test_implementedBy.<locals>.I2Nr   r   r   r   r   rj      r0   r   r   c                       e Zd Zy)#Test.test_implementedBy.<locals>.C1Nr   r   r   r   C1rl      r0   r   rm   c                       e Zd Zy)#Test.test_implementedBy.<locals>.C2Nr   r   r   r   C2ro      r0   r   rp   r   )r   r!   r   r   r7   r   r8   )r=   r   rm   rp   r?   s        r   test_implementedByzTest.test_implementedBy   sn    	 		 	 	B	 	 	B}R/@A!!))+A	'As   B c                     G d d      }t        j                  d|j                  |j                        } G d d      }t        j                  d|j                  |j                        } G d d||      }| j	                  |j                  ||f        |       } |       }| j	                  |j
                  d       | j	                  |j
                  d       d|_        | j	                  |j
                  d       | j	                  |j
                  d        |       }| j	                  |j
                  d       | j	                  |j                  d       d|_        | j	                  |j                  d       d|_        | j	                  |j                  d       |j                   | j                  |j                  j                  |j                         y )	Nc                       e Zd ZdZy)<Test.test_odd_metaclass_that_doesnt_subclass_type.<locals>.A   N)r   r   r   ar   r   r   r&   rt   
      Ar   r&   c                       e Zd ZdZy)<Test.test_odd_metaclass_that_doesnt_subclass_type.<locals>.Bru   N)r   r   r   br   r   r   r#   ry     rw   r   r#   c                       e Zd Zy)<Test.test_odd_metaclass_that_doesnt_subclass_type.<locals>.CNr   r   r   r   r(   r|     r0   r   r(   ru      )
r   	MetaClass	__bases____dict__r7   rv   rz   r>   assertIs	__class__)r=   r&   r#   r(   rv   aar>   s          r   ,test_odd_metaclass_that_doesnt_subclass_typez1Test.test_odd_metaclass_that_doesnt_subclass_type  sc   	 	 MM#q{{AJJ7	 	 MM#q{{AJJ7	1 	 	q!f-CSa q!a q!Ca a a a 	akk++Q[[9r   N)	r   r   r   r@   rJ   rR   rg   rq   r   r   r   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   
  $ * . - + ( & % $	 		 		 		" 		 		 		 	 cmmE3=="- 	 	 2 	1 	 3 W:8 W:r   