o
    $x`J                     @   s@   d Z ddlZG dd dejZG dd deZG dd dZdS )	z" zope.interface.verify unit tests
    Nc                   @   s4  e Zd ZdZdd Zedd Zdd Zdd	 Zd
d Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Z d:d; Z!d<d= Z"d>d? Z#d@dA Z$dBdC Z%dDdE Z&dFdG Z'dHdI Z(dS )JTest_verifyClassNc                 C   s   |   | _d S N)_get_FUTverifierself r   B/usr/lib/python3/dist-packages/zope/interface/tests/test_verify.pysetUp   s   zTest_verifyClass.setUpc                 C      ddl m} |S )Nr   )verifyClass)zope.interface.verifyr   )clsr   r   r   r	   r         zTest_verifyClass._get_FUTc                 C   s   |S r   r   )r   xr   r   r	   <lambda>        zTest_verifyClass.<lambda>c                 K   s   | j || |fi |S r   )r   _adjust_object_before_verify)r   Zifaceklasskwargsr   r   r	   _callFUT"   s
   zTest_verifyClass._callFUTc                 C   sN   ddl m} ddlm} G dd d|}G dd dt}| || j|| d S )Nr   	InterfaceDoesNotImplementc                   @      e Zd ZdS )z>Test_verifyClass.test_class_doesnt_implement.<locals>.ICurrentN__name__
__module____qualname__r   r   r   r	   ICurrent+       r    c                   @   r   )z=Test_verifyClass.test_class_doesnt_implement.<locals>.CurrentNr   r   r   r   r	   Current.   r!   r"   )zope.interfacer   zope.interface.exceptionsr   objectassertRaisesr   )r   r   r   r    r"   r   r   r	   test_class_doesnt_implement'   s
   z,Test_verifyClass.test_class_doesnt_implementc                 C   sR   ddl m} ddl m} G dd d|}G dd dt}||| | || d S )Nr   r   classImplementsc                   @   r   )zXTest_verifyClass.test_class_doesnt_implement_but_classImplements_later.<locals>.ICurrentNr   r   r   r   r	   r    7   r!   r    c                   @   r   )zWTest_verifyClass.test_class_doesnt_implement_but_classImplements_later.<locals>.CurrentNr   r   r   r   r	   r"   :   r!   r"   )r#   r   r)   r%   r   )r   r   r)   r    r"   r   r   r	   5test_class_doesnt_implement_but_classImplements_later3   s   
zFTest_verifyClass.test_class_doesnt_implement_but_classImplements_laterc                 C   b   ddl m} ddl m} ddlm} G dd d|}||G dd dt}| || j|| d S )	Nr   r   implementerBrokenImplementationc                   @      e Zd Zdd ZdS )zPTest_verifyClass.test_class_doesnt_have_required_method_simple.<locals>.ICurrentc                   S      d S r   r   r   r   r   r	   methodG      zWTest_verifyClass.test_class_doesnt_have_required_method_simple.<locals>.ICurrent.methodNr   r   r   r2   r   r   r   r	   r    F       r    c                   @   r   )zOTest_verifyClass.test_class_doesnt_have_required_method_simple.<locals>.CurrentNr   r   r   r   r	   r"   J       r"   r#   r   r-   r$   r/   r%   r&   r   r   r   r-   r/   r    r"   r   r   r	   -test_class_doesnt_have_required_method_simpleA   s   z>Test_verifyClass.test_class_doesnt_have_required_method_simplec                 C   P   ddl m} ddl m} G dd d|}||G dd dt}| || d S )Nr   r   r,   c                   @   r0   )zHTest_verifyClass.test_class_has_required_method_simple.<locals>.ICurrentc                   S   r1   r   r   r   r   r   r	   r2   V   r3   zOTest_verifyClass.test_class_has_required_method_simple.<locals>.ICurrent.methodNr4   r   r   r   r	   r    U   r5   r    c                   @   r0   )zGTest_verifyClass.test_class_has_required_method_simple.<locals>.Currentc                 S      t  r   NotImplementedErrorr   r   r   r	   r2   \      zNTest_verifyClass.test_class_has_required_method_simple.<locals>.Current.methodNr4   r   r   r   r	   r"   Y       r"   r#   r   r-   r%   r   r   r   r-   r    r"   r   r   r	   %test_class_has_required_method_simpleQ   s   z6Test_verifyClass.test_class_has_required_method_simplec                 C   sr   ddl m} ddl m} ddlm} G dd d|}G dd d|}||G d	d
 d
t}| || j|| d S )Nr   r   r,   r.   c                   @   r0   )zNTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IBasec                   S   r1   r   r   r   r   r   r	   r2   g   r3   zUTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IBase.methodNr4   r   r   r   r	   IBasef   r5   rC   c                   @   r   )zQTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IDerivedNr   r   r   r   r	   IDerivedj   r!   rD   c                   @   r   )zPTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.CurrentNr   r   r   r   r	   r"   m   r6   r"   r7   )r   r   r-   r/   rC   rD   r"   r   r   r	   .test_class_doesnt_have_required_method_deriveda   s   z?Test_verifyClass.test_class_doesnt_have_required_method_derivedc                 C   s`   ddl m} ddl m} G dd d|}G dd d|}||G dd	 d	t}| || d S )
Nr   r   r,   c                   @   r0   )zFTest_verifyClass.test_class_has_required_method_derived.<locals>.IBasec                   S   r1   r   r   r   r   r   r	   r2   y   r3   zMTest_verifyClass.test_class_has_required_method_derived.<locals>.IBase.methodNr4   r   r   r   r	   rC   x   r5   rC   c                   @   r   )zITest_verifyClass.test_class_has_required_method_derived.<locals>.IDerivedNr   r   r   r   r	   rD   |   r!   rD   c                   @   r0   )zHTest_verifyClass.test_class_has_required_method_derived.<locals>.Currentc                 S   r;   r   r<   r   r   r   r	   r2      r>   zOTest_verifyClass.test_class_has_required_method_derived.<locals>.Current.methodNr4   r   r   r   r	   r"      r?   r"   r@   )r   r   r-   rC   rD   r"   r   r   r	   &test_class_has_required_method_derivedt   s   z7Test_verifyClass.test_class_has_required_method_derivedc                 C   r:   )Nr   r   r,   c                   @   r0   )zKTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.ICurrentc                 S   r1   r   r   ar   r   r	   r2      r3   zRTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.ICurrent.methodNr4   r   r   r   r	   r           r    c                   @   r0   )zJTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.Currentc                 S   r;   r   r<   )r   br   r   r	   r2      r>   zQTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.Current.methodNr4   r   r   r   r	   r"      r?   r"   r@   rA   r   r   r	   (test_method_takes_wrong_arg_names_but_OK   s   z9Test_verifyClass.test_method_takes_wrong_arg_names_but_OKc                 C   r+   )	Nr   r   r,   BrokenMethodImplementationc                   @   r0   )zDTest_verifyClass.test_method_takes_not_enough_args.<locals>.ICurrentc                 S   r1   r   r   rG   r   r   r	   r2      r3   zKTest_verifyClass.test_method_takes_not_enough_args.<locals>.ICurrent.methodNr4   r   r   r   r	   r       rI   r    c                   @   r0   )zCTest_verifyClass.test_method_takes_not_enough_args.<locals>.Currentc                 S   r;   r   r<   r   r   r   r	   r2      r>   zJTest_verifyClass.test_method_takes_not_enough_args.<locals>.Current.methodNr4   r   r   r   r	   r"      r?   r"   r#   r   r-   r$   rM   r%   r&   r   r   r   r-   rM   r    r"   r   r   r	   !test_method_takes_not_enough_args      z2Test_verifyClass.test_method_takes_not_enough_argsc                 C   r+   )	Nr   r   r,   rL   c                   @   r0   )zLTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.ICurrentc                  W   r1   r   r   argsr   r   r	   r2      r3   zSTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.ICurrent.methodNr4   r   r   r   r	   r       rI   r    c                   @   r0   )zKTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.Currentc                 S   r;   r   r<   r   r   r   r	   r2      r>   zRTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.Current.methodNr4   r   r   r   r	   r"      r?   r"   rN   rO   r   r   r	   )test_method_doesnt_take_required_starargs   rQ   z:Test_verifyClass.test_method_doesnt_take_required_starargsc                 C   r+   )	Nr   r   r,   rL   c                   @   r0   )zOTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.ICurrentc                  [   r1   r   r   )kwr   r   r	   r2      r3   zVTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.ICurrent.methodNr4   r   r   r   r	   r       rI   r    c                   @   r0   )zNTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.Currentc                 S   r;   r   r<   r   r   r   r	   r2      r>   zUTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.Current.methodNr4   r   r   r   r	   r"      r?   r"   rN   rO   r   r   r	   ,test_method_doesnt_take_required_only_kwargs   rQ   z=Test_verifyClass.test_method_doesnt_take_required_only_kwargsc                 C   r+   )	Nr   r   r,   rL   c                   @   r0   )z>Test_verifyClass.test_method_takes_extra_arg.<locals>.ICurrentc                 S   r1   r   r   rG   r   r   r	   r2      r3   zETest_verifyClass.test_method_takes_extra_arg.<locals>.ICurrent.methodNr4   r   r   r   r	   r       rI   r    c                   @   r0   )z=Test_verifyClass.test_method_takes_extra_arg.<locals>.Currentc                 S   r;   r   r<   r   rH   rJ   r   r   r	   r2      r>   zDTest_verifyClass.test_method_takes_extra_arg.<locals>.Current.methodNr4   r   r   r   r	   r"      r?   r"   rN   rO   r   r   r	   test_method_takes_extra_arg   rQ   z,Test_verifyClass.test_method_takes_extra_argc                 C   r:   )Nr   r   r,   c                   @   r0   )zKTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.ICurrentc                 S   r1   r   r   rG   r   r   r	   r2      r3   zRTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.ICurrent.methodNr4   r   r   r   r	   r       rI   r    c                   @   s   e Zd ZdddZdS )zJTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.CurrentNc                 S   r;   r   r<   rW   r   r   r	   r2      r>   zQTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.Current.methodr   r4   r   r   r   r	   r"      s    r"   r@   rA   r   r   r	   (test_method_takes_extra_arg_with_default      z9Test_verifyClass.test_method_takes_extra_arg_with_defaultc                 C   r:   )Nr   r   r,   c                   @   r0   )zITest_verifyClass.test_method_takes_only_positional_args.<locals>.ICurrentc                 S   r1   r   r   rG   r   r   r	   r2      r3   zPTest_verifyClass.test_method_takes_only_positional_args.<locals>.ICurrent.methodNr4   r   r   r   r	   r       rI   r    c                   @   r0   )zHTest_verifyClass.test_method_takes_only_positional_args.<locals>.Currentc                 W   r;   r   r<   r   rS   r   r   r	   r2     r>   zOTest_verifyClass.test_method_takes_only_positional_args.<locals>.Current.methodNr4   r   r   r   r	   r"      r?   r"   r@   rA   r   r   r	   &test_method_takes_only_positional_args   rZ   z7Test_verifyClass.test_method_takes_only_positional_argsc                 C   r+   )	Nr   r   r,   rL   c                   @   r0   )z@Test_verifyClass.test_method_takes_only_kwargs.<locals>.ICurrentc                 S   r1   r   r   rG   r   r   r	   r2     r3   zGTest_verifyClass.test_method_takes_only_kwargs.<locals>.ICurrent.methodNr4   r   r   r   r	   r      rI   r    c                   @   r0   )z?Test_verifyClass.test_method_takes_only_kwargs.<locals>.Currentc                 [   r;   r   r<   r   rU   r   r   r	   r2     r>   zFTest_verifyClass.test_method_takes_only_kwargs.<locals>.Current.methodNr4   r   r   r   r	   r"     r?   r"   rN   rO   r   r   r	   test_method_takes_only_kwargs  rQ   z.Test_verifyClass.test_method_takes_only_kwargsc                 C   r:   )Nr   r   r,   c                   @   r0   )zCTest_verifyClass.test_method_takes_extra_starargs.<locals>.ICurrentc                 S   r1   r   r   rG   r   r   r	   r2      r3   zJTest_verifyClass.test_method_takes_extra_starargs.<locals>.ICurrent.methodNr4   r   r   r   r	   r      rI   r    c                   @   r0   )zBTest_verifyClass.test_method_takes_extra_starargs.<locals>.Currentc                 W   r;   r   r<   r   rH   rS   r   r   r	   r2   &  r>   zITest_verifyClass.test_method_takes_extra_starargs.<locals>.Current.methodNr4   r   r   r   r	   r"   #  r?   r"   r@   rA   r   r   r	    test_method_takes_extra_starargs  rZ   z1Test_verifyClass.test_method_takes_extra_starargsc                 C   r:   )Nr   r   r,   c                   @   r0   )zNTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.ICurrentc                 S   r1   r   r   rG   r   r   r	   r2   1  r3   zUTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.ICurrent.methodNr4   r   r   r   r	   r    /  rI   r    c                   @   r0   )zMTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.Currentc                 _   r;   r   r<   )r   rH   rS   rU   r   r   r	   r2   7  r>   zTTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.Current.methodNr4   r   r   r   r	   r"   4  r?   r"   r@   rA   r   r   r	   +test_method_takes_extra_starargs_and_kwargs+  rZ   z<Test_verifyClass.test_method_takes_extra_starargs_and_kwargsc                 C   r+   )	Nr   r   r,   rL   c                   @   r0   )z[Test_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.ICurrentc                 W   r1   r   r   rH   rS   r   r   r	   r2   C  r3   zbTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.ICurrent.methodNr4   r   r   r   r	   r    A  rI   r    c                   @   r0   )zZTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.Currentc                 S   r;   r   r<   r   rH   r   r   r	   r2   I  r>   zaTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.Current.methodNr4   r   r   r   r	   r"   F  r?   r"   rN   rO   r   r   r	   8test_method_doesnt_take_required_positional_and_starargs<  rQ   zITest_verifyClass.test_method_doesnt_take_required_positional_and_starargsc                 C   r:   )Nr   r   r,   c                   @   r0   )zUTest_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.ICurrentc                 W   r1   r   r   rb   r   r   r	   r2   U  r3   z\Test_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.ICurrent.methodNr4   r   r   r   r	   r    S  rI   r    c                   @   r0   )zTTest_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.Currentc                 W   r;   r   r<   r_   r   r   r	   r2   [  r>   z[Test_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.Current.methodNr4   r   r   r   r	   r"   X  r?   r"   r@   rA   r   r   r	   2test_method_takes_required_positional_and_starargsO  rZ   zCTest_verifyClass.test_method_takes_required_positional_and_starargsc                 C   r:   )Nr   r   r,   c                   @   r0   )zBTest_verifyClass.test_method_takes_only_starargs.<locals>.ICurrentc                 W   r1   r   r   rb   r   r   r	   r2   f  r3   zITest_verifyClass.test_method_takes_only_starargs.<locals>.ICurrent.methodNr4   r   r   r   r	   r    d  rI   r    c                   @   r0   )zATest_verifyClass.test_method_takes_only_starargs.<locals>.Currentc                 W   r;   r   r<   r[   r   r   r	   r2   l  r>   zHTest_verifyClass.test_method_takes_only_starargs.<locals>.Current.methodNr4   r   r   r   r	   r"   i  r?   r"   r@   rA   r   r   r	   test_method_takes_only_starargs`  rZ   z0Test_verifyClass.test_method_takes_only_starargsc                 C   r:   )Nr   r   r,   c                   @   r0   )zDTest_verifyClass.test_method_takes_required_kwargs.<locals>.ICurrentc                  [   r1   r   r   r   r   r   r	   r2   w  r3   zKTest_verifyClass.test_method_takes_required_kwargs.<locals>.ICurrent.methodNr4   r   r   r   r	   r    u  rI   r    c                   @   r0   )zCTest_verifyClass.test_method_takes_required_kwargs.<locals>.Currentc                 [   r;   r   r<   r]   r   r   r	   r2   }  r>   zJTest_verifyClass.test_method_takes_required_kwargs.<locals>.Current.methodNr4   r   r   r   r	   r"   z  r?   r"   r@   rA   r   r   r	   !test_method_takes_required_kwargsq  rZ   z2Test_verifyClass.test_method_takes_required_kwargsc                 C   r+   )	Nr   r   r,   rL   c                   @   r0   )zVTest_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.ICurrentc                  W   r1   r   r   rR   r   r   r	   r2     r3   z]Test_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.ICurrent.methodNr4   r   r   r   r	   r      rI   r    c                   @   r0   )zUTest_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.Currentc                 W   r;   r   r<   r_   r   r   r	   r2     r>   z\Test_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.Current.methodNr4   r   r   r   r	   r"     r?   r"   rN   rO   r   r   r	   3test_method_takes_positional_plus_required_starargs  rQ   zDTest_verifyClass.test_method_takes_positional_plus_required_starargsc                 C   r+   )	Nr   r   r,   rL   c                   @   r0   )zJTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.ICurrentc                  [   r1   r   r   rg   r   r   r	   r2     r3   zQTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.ICurrent.methodNr4   r   r   r   r	   r      rI   r    c                   @   r0   )zITest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.Currentc                 S   r;   r   r<   rc   r   r   r	   r2     r>   zPTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.Current.methodNr4   r   r   r   r	   r"     r?   r"   rN   rO   r   r   r	   'test_method_doesnt_take_required_kwargs  rQ   z8Test_verifyClass.test_method_doesnt_take_required_kwargsc                    ^   ddl m  ddl m} ddl m} G  fddd|}||G dd d}| || d S )	Nr   	Attributer   r,   c                          e Zd Z dZdS )zGTest_verifyClass.test_class_has_method_for_iface_attr.<locals>.ICurrentThe foo AttributeNr   r   r   attrr   rl   r   r	   r      r5   r    c                   @   r0   )zFTest_verifyClass.test_class_has_method_for_iface_attr.<locals>.Currentc                 S   r;   r   r<   r   r   r   r	   rq     r>   zKTest_verifyClass.test_class_has_method_for_iface_attr.<locals>.Current.attrNrp   r   r   r   r	   r"     r?   r"   r#   rm   r   r-   r   rA   r   rl   r	   $test_class_has_method_for_iface_attr  s   z5Test_verifyClass.test_class_has_method_for_iface_attrc                 C   s`   ddl m} ddl m} ddlm} G dd d|}||G dd d}| || j|| d S )	Nr   r   r,   rL   c                   @   r0   )zFTest_verifyClass.test_class_has_nonmethod_for_method.<locals>.ICurrentc                   S   r1   r   r   r   r   r   r	   r2     r3   zMTest_verifyClass.test_class_has_nonmethod_for_method.<locals>.ICurrent.methodNr4   r   r   r   r	   r      r5   r    c                   @      e Zd ZdZdS )zETest_verifyClass.test_class_has_nonmethod_for_method.<locals>.Current   Nr4   r   r   r   r	   r"     s    r"   )r#   r   r-   r$   rM   r&   r   rO   r   r   r	   #test_class_has_nonmethod_for_method  s   z4Test_verifyClass.test_class_has_nonmethod_for_methodc                    rk   )	Nr   rl   r   r,   c                       rn   )zITest_verifyClass.test_class_has_attribute_for_attribute.<locals>.ICurrentro   Nrp   r   rl   r   r	   r      r5   r    c                   @   rt   )zHTest_verifyClass.test_class_has_attribute_for_attribute.<locals>.Currentru   Nrp   r   r   r   r	   r"     s    r"   rr   rA   r   rl   r	   &test_class_has_attribute_for_attribute  s   z7Test_verifyClass.test_class_has_attribute_for_attributec                    rk   )	Nr   rl   r   r,   c                       rn   )zLTest_verifyClass.test_class_misses_attribute_for_attribute.<locals>.ICurrentro   Nrp   r   rl   r   r	   r      r5   r    c                   @   r   )zKTest_verifyClass.test_class_misses_attribute_for_attribute.<locals>.CurrentNr   r   r   r   r	   r"     r6   r"   rr   rA   r   rl   r	   )test_class_misses_attribute_for_attribute  s   z:Test_verifyClass.test_class_misses_attribute_for_attributec                    s   ddl m} ddlm} ddlm} G dd d|G dd dt G fd	d
d
|}||G  fddd}| || d S )Nr   )Methodr   r,   c                   @   r0   )zETest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiMethodc                 _   r;   r   r<   r   rS   rU   r   r   r	   __call__  r>   zNTest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiMethod.__call__Nr   r   r   r{   r   r   r   r	   QuasiMethod  r5   r}   c                   @   r0   )zGTest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiCallablec                 _   r;   r   r<   rz   r   r   r	   r{     r>   zPTest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiCallable.__call__Nr|   r   r   r   r	   QuasiCallable  r5   r~   c                       rn   )zBTest_verifyClass.test_w_callable_non_func_method.<locals>.ICurrentzThis is callableNrp   r   )r}   r   r	   r      r5   r    c                       s   e Zd Z  ZdS )zATest_verifyClass.test_w_callable_non_func_method.<locals>.CurrentNrp   r   )r~   r   r	   r"     s    
r"   )Zzope.interface.interfacery   r#   r   r-   r%   r   )r   ry   r   r-   r    r"   r   )r~   r}   r	   test_w_callable_non_func_method  s   z0Test_verifyClass.test_w_callable_non_func_methodc                    s\   ddl m} ddl m} dd  G dd d|}||G  fdd	d	t}| || d S )
Nr   r   r,   c                    s   t  fddS )Nc                    s
     | S r   )__get__r   funcr   r	   r     s   
 zMTest_verifyClass.test_w_decorated_method.<locals>.decorator.<locals>.<lambda>)propertyr   r   r   r	   	decorator  s   z;Test_verifyClass.test_w_decorated_method.<locals>.decoratorc                   @   r0   )z:Test_verifyClass.test_w_decorated_method.<locals>.ICurrentc                 S   r1   r   r   rG   r   r   r	   r2   	  r3   zATest_verifyClass.test_w_decorated_method.<locals>.ICurrent.methodNr4   r   r   r   r	   r      rI   r    c                       s   e Zd Z dd ZdS )z9Test_verifyClass.test_w_decorated_method.<locals>.Currentc                 S   r;   r   r<   rc   r   r   r	   r2     s   z@Test_verifyClass.test_w_decorated_method.<locals>.Current.methodNr4   r   r   r   r	   r"         r"   r@   rA   r   r   r	   test_w_decorated_method  s   z(Test_verifyClass.test_w_decorated_methodc                 C       ddl m} | j|tdd d S )Nr   )IFullMappingTZ	tentative)Zzope.interface.common.mappingr   r   dict)r   r   r   r   r	   test_dict_IFullMapping  s   z'Test_verifyClass.test_dict_IFullMappingc                 C   r   )Nr   )	ISequenceTr   )zope.interface.common.sequencer   r   list)r   r   r   r   r	   test_list_ISequence     z$Test_verifyClass.test_list_ISequencec                 C   r   )Nr   )IReadSequenceTr   )r   r   r   tuple)r   r   r   r   r	   test_tuple_IReadSequence$  r   z)Test_verifyClass.test_tuple_IReadSequencec           
      C   s0  ddl m} ddl m} ddl m} ddlm} ddlm} G dd d|}G d	d
 d
t}| |}| 	|| W d    n1 sDw   Y  |j
}	| dt|	j | |	jd | | |	jd | | |	jd | ||| dd |_| | | 	|| W d    d S 1 sw   Y  d S )Nr   )MultipleInvalidr   r.   r   r(   c                   @   s   e Zd Zdd Zdd ZdS )z?Test_verifyClass.test_multiple_invalid.<locals>.ISeveralMethodsc                 S      dS )zMethod 1Nr   arg1r   r   r	   meth12  r   zETest_verifyClass.test_multiple_invalid.<locals>.ISeveralMethods.meth1c                 S   r   )zMethod 2Nr   r   r   r   r	   meth24  r   zETest_verifyClass.test_multiple_invalid.<locals>.ISeveralMethods.meth2N)r   r   r   r   r   r   r   r   r	   ISeveralMethods1  s    r   c                   @   r   )z>Test_verifyClass.test_multiple_invalid.<locals>.SeveralMethodsNr   r   r   r   r	   SeveralMethods7  r!   r      ru      c                 S   r   )NZHir   )r   r   r   r   r	   r   F  r   z8Test_verifyClass.test_multiple_invalid.<locals>.<lambda>)r$   r   r   r/   r#   r   r)   r%   r&   r   Z	exceptionZassertEquallen
exceptionsZassertIsInstancer   )
r   r   r   r/   r   r)   r   r   excexr   r   r	   test_multiple_invalid*  s(   

"z&Test_verifyClass.test_multiple_invalid))r   r   r   r   r
   classmethodr   r   r   r'   r*   r9   rB   rE   rF   rK   rP   rT   rV   rX   rY   r\   r^   r`   ra   rd   re   rf   rh   ri   rj   rs   rv   rw   rx   r   r   r   r   r   r   r   r   r   r	   r      sN    

r   c                   @   s@   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dS )Test_verifyObjectc                 C   r   )Nr   verifyObject)r   r   )r   r   r   r   r	   r   M  r   zTest_verifyObject._get_FUTc                 C   s   t |tttfr| }|S r   )
isinstancetypeOldSkool)r   targetr   r   r	   r   R  s   z.Test_verifyObject._adjust_object_before_verifyc                    sp   ddl m  ddl m} ddl m} ddlm} G  fddd|}||G dd	 d	}| || j|| d S )
Nr   rl   r   r,   r.   c                       rn   )zMTest_verifyObject.test_class_misses_attribute_for_attribute.<locals>.ICurrentro   Nrp   r   rl   r   r	   r    ^  r5   r    c                   @   r   )zLTest_verifyObject.test_class_misses_attribute_for_attribute.<locals>.CurrentNr   r   r   r   r	   r"   a  r6   r"   )r#   rm   r   r-   r$   r/   r&   r   r8   r   rl   r	   rx   W  s   z;Test_verifyObject.test_class_misses_attribute_for_attributec                 C   s(   ddl m} ddlm} | || d S )Nr   )IDummyModuledummy)Zzope.interface.tests.idummyr   zope.interface.testsr   r   )r   r   r   r   r   r	   test_module_hith  s   z!Test_verifyObject.test_module_hitc                 C   sJ   ddl m} ddlm} ddlm} G dd d|}| || j|| d S )Nr   r   r   r   c                   @   r   )z8Test_verifyObject.test_module_miss.<locals>.IDummyModuleNr   r   r   r   r	   r   t  r!   r   )r#   r   r   r   r$   r   r&   r   )r   r   r   r   r   r   r   r	   test_module_missn  s   z"Test_verifyObject.test_module_missc                 C   sZ   ddl m} ddl m} ddlm} G dd d|}||G dd dt}||| d S )	Nr   r   )providerr   c                   @   r0   )z>Test_verifyObject.test_staticmethod_hit_on_class.<locals>.IFooc                 S   r   )zThe bar methodNr   rH   rJ   r   r   r	   bar  r   zBTest_verifyObject.test_staticmethod_hit_on_class.<locals>.IFoo.barN)r   r   r   r   r   r   r   r	   IFoo  rI   r   c                   @   s   e Zd Zedd ZdS )z=Test_verifyObject.test_staticmethod_hit_on_class.<locals>.Fooc                 S   s   t d)NzWe're never actually called)AssertionErrorr   r   r   r	   r     s   zATest_verifyObject.test_staticmethod_hit_on_class.<locals>.Foo.barN)r   r   r   staticmethodr   r   r   r   r	   Foo  r   r   )r#   r   r   r   r   r%   )r   r   r   r   r   r   r   r   r	   test_staticmethod_hit_on_classz  s   z0Test_verifyObject.test_staticmethod_hit_on_classN)
r   r   r   r   r   r   rx   r   r   r   r   r   r   r	   r   K  s    
r   c                   @   r   )r   Nr   r   r   r   r	   r     r!   r   )__doc__ZunittestZTestCaser   r   r   r   r   r   r	   <module>   s       ;D