o
    0c                     @   s~   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 fdd	Zd
d Zdd Z	G dd de j
ZG dd deZdS )    N)verifyClass)verifyObject)ABCInterface)ABCInterfaceClassc                 C   s   dS )NT ifacer   r   Z/var/www/html/gps/gps/lib/python3.10/site-packages/zope/interface/common/tests/__init__.py<lambda>   s    r
   c                 c   s    t  }ttj}|rD|d}||v st|tsq	|| |t|j | |s,q	t |	 }|t |j
8 }|r@||fV  |sd S d S )Nr   )setlistr   
dependentspop
isinstancer   addextendgetRegisteredConformers#_ABCInterfaceClass__ignored_classes)	predicateseenstackr   
registeredr   r   r	   iter_abc_interfaces   s    



r   c                    s    fdd}t | t| d S )Nc                    s
   | j  kS N)
__module__r   moduler   r	   r   0   s   
z*add_abc_interface_tests.<locals>.predicate)add_verify_testsr   )clsr   r   r   r   r	   add_abc_interface_tests/   s   r   c           	   	   C   s   d | _ |D ]Z\}}|D ]S}||fdd}d|jdd|j|jdd|jf }d| }||_t| |r=J |t| jft| || ||fdd}d	| }||_t| |rXJ t| || qqd S )
Nc                 S   s:   || j v s|j| j v r| d|  | | || d S )NzUnable to verify %s)UNVERIFIABLE__name__skipTest
assertTrueverify)selfstdlib_classr   r   r   r	   test9   s   zadd_verify_tests.<locals>.testz%s_%s_%s_%s._
test_auto_c           
      S   s   ddl m} ddl m} ddl m} | t|j|dd|j ||}|j}| |d | || jvrT|| j	v}|j||d}	|	
| |	| | t|	| d S d S )Nr   )ro)implementedBy)	InterfaceT)strict)zope.interfacer+   r,   r-   assertEqualtuple__sro__assertIsUNVERIFIABLE_RONON_STRICT_ROremoveappend)
r%   r&   r   r+   r,   r-   
implementssror.   isror   r   r	   test_roJ   s"   



z!add_verify_tests.<locals>.test_rotest_auto_ro_)maxDiffr   replacer!   hasattrr   __dict__setattr)	r   iface_classes_iterr   registered_classesr&   r'   suffixnamer<   r   r   r	   r   5   s*   r   c                   @   s0   e Zd ZeeZdZdZdZdd Z	dd Z
dS )VerifyClassMixinr   c                 C   s   |S r   r   )r%   r   xr   r   r	   _adjust_object_before_verifyl   s   z-VerifyClassMixin._adjust_object_before_verifyc                 K   s   | j || ||fi |S r   )verifierrI   )r%   r   klasskwargsr   r   r	   r$   o   s
   
zVerifyClassMixin.verifyN)r!   r   __qualname__staticmethodr   rJ   r    r6   r5   rI   r$   r   r   r   r	   rG   f   s    rG   c                   @   s    e Zd ZeeZi Zdd ZdS )VerifyObjectMixinc                 C   sr   | j |}|s| j |}|s| j |j}|s|}|tju r)| dt|  | }t|dr7| |j	 |S )NzCannot create close)
CONSTRUCTORSgetr!   unittestSkipTestr"   strr@   
addCleanuprP   )r%   r   rH   constructorresultr   r   r	   rI   z   s   

z.VerifyObjectMixin._adjust_object_before_verifyN)r!   r   rM   rN   r   rJ   rQ   rI   r   r   r   r	   rO   u   s    rO   )rS   zope.interface.verifyr   r   zope.interface.commonr   r   r   r   r   TestCaserG   rO   r   r   r   r	   <module>   s   1