
    Vh                         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 fdZd Zd	 Z	 G d
 de j                        Z G d de      Zy)    N)ABCInterface)ABCInterfaceClass)verifyClass)verifyObjectc                      y)NT )ifaces    T/home/dcms/DCMS/lib/python3.12/site-packages/zope/interface/common/tests/__init__.py<lambda>r      s        c              #     K   t               }t        t        j                        }|r|j	                  d      }||v st        |t              s(|j                  |       |j                  t        |j                                | |      sft        |j                               }|t        |j                        z  }|r||f |ry y w)Nr   )setlistr   
dependentspop
isinstancer   addextendgetRegisteredConformers#_ABCInterfaceClass__ignored_classes)	predicateseenstackr	   
registereds        r
   iter_abc_interfacesr      s      5DE 		!D=
52C DT%**+,6689
c%CCDD
## s   CC
C
c                 :    fd}t        | t        |             y )Nc                 "    | j                   k(  S N)
__module__)r	   modules    r
   r   z*add_abc_interface_tests.<locals>.predicate2   s    6))r   )add_verify_testsr   )clsr    r   s    ` r
   add_abc_interface_testsr#   1   s    *S-i89r   c           
         d | _         |D ]  \  }}|D ]  }||fd}dj                  |j                  j                  dd      |j                  |j                  j                  dd      |j                        }d|z   }||_        t        | |      rJ |t        | j                        f       t        | ||       ||fd}d|z   }||_        t        | |      rJ t        | ||         y )Nc                     || j                   v s|j                  | j                   v r| j                  d|z         | j                  | j	                  ||             y )NzUnable to verify %s)UNVERIFIABLE__name__skipTest
assertTrueverify)selfstdlib_classr	   s      r
   testzadd_verify_tests.<locals>.test;   sM     D$5$55 ))T->->>MM"7,"FGE< @Ar   z{}_{}_{}_{}._
test_auto_c                    ddl m} ddl m} ddl m} | j	                  t        |j                  |d            |j                          ||      }|j                  }| j                  |d   |       || j                  vr_|| j                  v}|j                  ||      }	|	j                  |       |	j                  |       | j	                  t        |	      |       y y )Nr   )	Interface)implementedBy)roT)strict)zope.interfacer2   r3   r4   assertEqualtuple__sro__assertIsUNVERIFIABLE_RONON_STRICT_ROremoveappend)
r+   r,   r	   r2   r3   r4   
implementssror5   isros
             r
   test_roz!add_verify_tests.<locals>.test_roO   s    48-  "%%d%34MM# +<8
 ((c"gy1t';';;
 *1C1CCF55F5;DKK	*KK	*$$U4[#6 <r   test_auto_ro_)	maxDiffformatr   replacer'   hasattrr   __dict__setattr)	r"   iface_classes_iterr	   registered_classesr,   r-   suffixnamerC   s	            r
   r!   r!   7   s   CK%7 0(!!. /	(L(4E B #))''//S9%%  ((c2	F  &(D DMsD)ED$s||2D+EE)Ct$+7u 7. #V+D#GsD)))Cw'_/	(0(r   c                   4    e Zd Z ee      ZdZdZdZd Z	d Z
y)VerifyClassMixinr   c                     |S r   r   )r+   r	   xs      r
   _adjust_object_before_verifyz-VerifyClassMixin._adjust_object_before_verifyr   s    r   c                 J     | j                   || j                  ||      fi |S r   )verifierrS   )r+   r	   klasskwargss       r
   r*   zVerifyClassMixin.verifyu   s/    t}}U!>>ueL'%' 	'r   N)r'   r   __qualname__staticmethodr   rU   r&   r=   r<   rS   r*   r   r   r
   rP   rP   l   s%    K(HLMO'r   rP   c                   &    e Zd Z ee      Zi Zd Zy)VerifyObjectMixinc                    | j                   j                  |      }|s| j                   j                  |      }|s%| j                   j                  |j                        }|s|}|t        j                  u r| j                  dt        |      z          	  |       }t        |d      r| j                  |j                         |S # t        $ r}t        d|       |d }~ww xY w)NzCannot create zFailed to create instance of close)CONSTRUCTORSgetr'   unittestSkipTestr(   str	Exception	TypeErrorrH   
addCleanupr]   )r+   r	   rR   constructorresultes         r
   rS   z.VerifyObjectMixin._adjust_object_before_verify   s    ''++A.++//6K++//

;KK(+++MM*SV34	F ]F 67#OOFLL)  	F/}=?DEF	Fs   C 	C!CC!N)r'   r   rX   rY   r   rU   r^   rS   r   r   r
   r[   r[   {   s    L)HLr   r[   )r`   zope.interface.commonr   r   zope.interface.verifyr   r   r   r#   r!   TestCaserP   r[   r   r   r
   <module>rl      sJ     . 3 - . #5 $8:2(j'x(( '( r   