o
    >h                     @   sR  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 deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd dZedeji ZG dd deZG dd deZeee G dd deeZeee G d d! d!ejZdS )"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dS )I1N__name__
__module____qualname__ r   r   /var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/zope/interface/tests/test_odd_declarations.pyr           r   c                   @   r   )I2Nr   r   r   r   r   r   $   r   r   c                   @   r   )I3Nr   r   r   r   r   r   (   r   r   c                   @   r   )I31Nr   r   r   r   r   r   ,   r   r   c                   @   r   )I4Nr   r   r   r   r   r   0   r   r   c                   @   r   )I5Nr   r   r   r   r   r   4   r   r   c                   @   r   )OddNr   r   r   r   r   r   8   r   r   c                   @      e Zd ZeZdS )BN)r   r   r   r   __implemented__r   r   r   r   r   ?       r   c                   @   r   )ANr   r   r   r   r   r   H   r   r   c                   @   r   )CNr   r   r   r   r   r   O   r   r   c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )Testc                 C   s  t  }t|t | dd t|D g d | dd t| D g d | tt| | t	t| | 
t|t	 | 
t|t | t|t G dd dtt}t|t G dd	 d	|}t|t t|t | }t|t | d
d t|D g d | dd t| D g d | tt| | t	t| | 
t|t	 | t|t | 
t|t | 
t|t G dd dtt}G dd	 d	|}t|t t|t | }t|t | dd t|D g d | dd t| D g d | tt| | t	t| | 
t|t	 | t|t | 
t|t | 
t|t d S )Nc                 S      g | ]}|  qS r   getName.0ir   r   r   
<listcomp>[       z1Test.test_ObjectSpecification.<locals>.<listcomp>)r   r   r   r   c                 S   r!   r   r"   r$   r   r   r   r'   ^   r(   )r   r   r   r   r   r   c                   @   r   z,Test.test_ObjectSpecification.<locals>.COnlyNr   r   r   r   r   COnlyg   r   r*   c                   @   r   z(Test.test_ObjectSpecification.<locals>.DNr   r   r   r   r   Dk   r   r,   c                 S   r!   r   r"   r$   r   r   r   r'   s   r(   )r   r   r   c                 S   r!   r   r"   r$   r   r   r   r'   u   r(   )r   r   r   r   r   c                   @   r   r)   )r   r   r   r   r   r   r   r   r   r*   ~   r   c                   @   r   r+   r   r   r   r   r   r,      r   c                 S   r!   r   r"   r$   r   r   r   r'      r(   c                 S   r!   r   r"   r$   r   r   r   r'      r(   )r   r   r   assertEqualr	   	flattenedassertInr   assertNotInr   
assertTrueextendsr   assertFalser   r   r   r   r   )selfcr*   r,   r   r   r   test_ObjectSpecificationX   sd   







zTest.test_ObjectSpecificationc                 C   s   t tG dd dt}t tG dd dt}G dd d||}t|tt | dd t|D g d	 t|t	 | d
d t|D g d d S )Nc                   @   r   )z$Test.test_classImplements.<locals>.ANr   r   r   r   r   r          r   c                   @   r   )z$Test.test_classImplements.<locals>.BNr   r   r   r   r   r      r7   r   c                   @   r   )z$Test.test_classImplements.<locals>.CNr   r   r   r   r   r      r   r   c                 S   r!   r   r"   r$   r   r   r   r'      r(   z-Test.test_classImplements.<locals>.<listcomp>)r   r   r   r   c                 S   r!   r   r"   r$   r   r   r   r'      r(   )r   r   r   r   r   )
r   r   r   r   r   r   r   r-   r   r   r4   r   r   r   r   r   r   test_classImplements   s   
zTest.test_classImplementsc                 C   sp   t tG dd dt}t tG dd dt}G dd d||}t|tt | dd t|D d	d
g d S )Nc                   @   r   )z(Test.test_classImplementsOnly.<locals>.ANr   r   r   r   r   r      r7   r   c                   @   r   )z(Test.test_classImplementsOnly.<locals>.BNr   r   r   r   r   r      r7   r   c                   @   r   )z(Test.test_classImplementsOnly.<locals>.CNr   r   r   r   r   r      r   r   c                 S   s   g | ]}|j qS r   )r   r$   r   r   r   r'      s    z1Test.test_classImplementsOnly.<locals>.<listcomp>r   r   )	r   r   r   r   r   r   r   r-   r   r8   r   r   r   test_classImplementsOnly   s   zTest.test_classImplementsOnlyc           	      C   sj  G dd dt }G dd dt }G dd dt }G dd dt }G d	d
 d
t}t||| G dd dt}t|| G dd d||}t|| | }t|tt | tt| | tt| | |t| | |t| | |t| | |t| t|t|t  | tt| | 	tt| | 	tt| t|t|t | tt| d S )Nc                   @   r   )z'Test.test_directlyProvides.<locals>.IA1Nr   r   r   r   r   IA1   r   r;   c                   @   r   )z'Test.test_directlyProvides.<locals>.IA2Nr   r   r   r   r   IA2   r   r<   c                   @   r   )z&Test.test_directlyProvides.<locals>.IBNr   r   r   r   r   IB   r   r=   c                   @   r   )z&Test.test_directlyProvides.<locals>.ICNr   r   r   r   r   IC   r   r>   c                   @   r   )z%Test.test_directlyProvides.<locals>.ANr   r   r   r   r   r      r   r   c                   @   r   )z%Test.test_directlyProvides.<locals>.BNr   r   r   r   r   r      r   r   c                   @   r   )z%Test.test_directlyProvides.<locals>.CNr   r   r   r   r   r      r   r   )
r   r   r   r   r   r   r/   r	   r   r0   )	r4   r;   r<   r=   r>   r   r   r   obr   r   r   test_directlyProvides   s0   

zTest.test_directlyProvidesc                 C   sf   G dd dt }G dd dt}t|| G dd d|}t|t | dd t|D d	dg d S )
Nc                   @   r   )z#Test.test_implementedBy.<locals>.I2Nr   r   r   r   r   r      r   r   c                   @   r   )z#Test.test_implementedBy.<locals>.C1Nr   r   r   r   r   C1   r   rA   c                   @   r   )z#Test.test_implementedBy.<locals>.C2Nr   r   r   r   r   C2   r   rB   c                 S   r!   r   r"   r$   r   r   r   r'      r(   z+Test.test_implementedBy.<locals>.<listcomp>r   )r   r   r   r   r-   r   )r4   r   rA   rB   r   r   r   test_implementedBy   s   

zTest.test_implementedByc                 C   s  G dd d}t d|j|j}G dd d}t d|j|j}G dd d||}| |j||f | }| }| |jd | |jd d|_| |jd | |jd | }| |jd | |jd d|_| |jd d|_| |jd |j | |j	j	|j	 d S )	Nc                   @      e Zd ZdZdS )z<Test.test_odd_metaclass_that_doesnt_subclass_type.<locals>.A   N)r   r   r   ar   r   r   r   r   
  r   r   c                   @   rD   )z<Test.test_odd_metaclass_that_doesnt_subclass_type.<locals>.BrE   N)r   r   r   br   r   r   r   r     r   r   c                   @   r   )z<Test.test_odd_metaclass_that_doesnt_subclass_type.<locals>.CNr   r   r   r   r   r     r   r   rE      )
r
   	MetaClass	__bases____dict__r-   rF   rG   r5   assertIs	__class__)r4   r   r   r   rF   aar5   r   r   r   ,test_odd_metaclass_that_doesnt_subclass_type  s,   z1Test.test_odd_metaclass_that_doesnt_subclass_typeN)	r   r   r   r6   r9   r:   r@   rC   rO   r   r   r   r   r    V   s    <6r    )__doc__unittestzope.interfacer   r   r   r   r   r   r   r	   zope.interface.testsr
   r   r   r   r   r   r   r   rI   rJ   r   r   r   TestCaser    r   r   r   r   <module>   s2   	

