U
    ؒ]3@                     @   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                   @   s   e Z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d+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;S )<Test_verifyClassc                 C   s   ddl m} |||S )Nr   )verifyClass)zope.interface.verifyr   )selfifaceklassr    r   B/usr/lib/python3/dist-packages/zope/interface/tests/test_verify.py_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                   @   s   e Zd ZdS )z>Test_verifyClass.test_class_doesnt_implement.<locals>.ICurrentN__name__
__module____qualname__r   r   r   r	   ICurrent   s   r   c                   @   s   e Zd ZdS )z=Test_verifyClass.test_class_doesnt_implement.<locals>.CurrentNr   r   r   r   r	   Current    s   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                   @   s   e Zd ZdS )zXTest_verifyClass.test_class_doesnt_implement_but_classImplements_later.<locals>.ICurrentNr   r   r   r   r	   r   )   s   r   c                   @   s   e Zd ZdS )zWTest_verifyClass.test_class_doesnt_implement_but_classImplements_later.<locals>.CurrentNr   r   r   r   r	   r   ,   s   r   )r   r   r   r   r
   )r   r   r   r   r   r   r   r	   5test_class_doesnt_implement_but_classImplements_later%   s    
zFTest_verifyClass.test_class_doesnt_implement_but_classImplements_laterc                 C   sb   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                   @   s   e Zd Zdd ZdS )zPTest_verifyClass.test_class_doesnt_have_required_method_simple.<locals>.ICurrentc                   S   s   d S Nr   r   r   r   r	   method9       zWTest_verifyClass.test_class_doesnt_have_required_method_simple.<locals>.ICurrent.methodNr   r   r   r!   r   r   r   r	   r   8   s   r   c                   @   s   e Zd ZdS )zOTest_verifyClass.test_class_doesnt_have_required_method_simple.<locals>.CurrentNr   r   r   r   r	   r   ;   s   r   r   r   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   r	   -test_class_doesnt_have_required_method_simple3   s      z>Test_verifyClass.test_class_doesnt_have_required_method_simplec                 C   sP   ddl m} ddl m} G dd d|}||G dd dt}| || d S )Nr   r   r   c                   @   s   e Zd Zdd ZdS )zHTest_verifyClass.test_class_has_required_method_simple.<locals>.ICurrentc                   S   s   d S r    r   r   r   r   r	   r!   G   r"   zOTest_verifyClass.test_class_has_required_method_simple.<locals>.ICurrent.methodNr#   r   r   r   r	   r   F   s   r   c                   @   s   e Zd Zdd ZdS )zGTest_verifyClass.test_class_has_required_method_simple.<locals>.Currentc                 S   s
   t  d S r    NotImplementedErrorr   r   r   r	   r!   L   s    zNTest_verifyClass.test_class_has_required_method_simple.<locals>.Current.methodNr#   r   r   r   r	   r   I   s   r   r   r   r   r   r
   r   r   r   r   r   r   r   r	   %test_class_has_required_method_simpleB   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                   @   s   e Zd Zdd ZdS )zNTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IBasec                   S   s   d S r    r   r   r   r   r	   r!   W   s    zUTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IBase.methodNr#   r   r   r   r	   IBaseV   s   r-   c                   @   s   e Zd ZdS )zQTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IDerivedNr   r   r   r   r	   IDerivedZ   s   r.   c                   @   s   e Zd ZdS )zPTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.CurrentNr   r   r   r   r	   r   ]   s   r   r$   )r   r   r   r   r-   r.   r   r   r   r	   .test_class_doesnt_have_required_method_derivedQ   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                   @   s   e Zd Zdd ZdS )zFTest_verifyClass.test_class_has_required_method_derived.<locals>.IBasec                   S   s   d S r    r   r   r   r   r	   r!   i   s    zMTest_verifyClass.test_class_has_required_method_derived.<locals>.IBase.methodNr#   r   r   r   r	   r-   h   s   r-   c                   @   s   e Zd ZdS )zITest_verifyClass.test_class_has_required_method_derived.<locals>.IDerivedNr   r   r   r   r	   r.   l   s   r.   c                   @   s   e Zd Zdd ZdS )zHTest_verifyClass.test_class_has_required_method_derived.<locals>.Currentc                 S   s
   t  d S r    r'   r)   r   r   r	   r!   r   s    zOTest_verifyClass.test_class_has_required_method_derived.<locals>.Current.methodNr#   r   r   r   r	   r   o   s   r   r*   )r   r   r   r-   r.   r   r   r   r	   &test_class_has_required_method_derivedd   s    z7Test_verifyClass.test_class_has_required_method_derivedc                 C   sP   ddl m} ddl m} G dd d|}||G dd dt}| || d S )Nr   r   r   c                   @   s   e Zd Zdd ZdS )zKTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.ICurrentc                 S   s   d S r    r   ar   r   r	   r!   ~   s    zRTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.ICurrent.methodNr#   r   r   r   r	   r   |   s   r   c                   @   s   e Zd Zdd ZdS )zJTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.Currentc                 S   s
   t  d S r    r'   )r   br   r   r	   r!      s    zQTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.Current.methodNr#   r   r   r   r	   r      s   r   r*   r+   r   r   r	   (test_method_takes_wrong_arg_names_but_OKw   s    z9Test_verifyClass.test_method_takes_wrong_arg_names_but_OKc                 C   sb   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   r   BrokenMethodImplementationc                   @   s   e Zd Zdd ZdS )zDTest_verifyClass.test_method_takes_not_enough_args.<locals>.ICurrentc                 S   s   d S r    r   r1   r   r   r	   r!      s    zKTest_verifyClass.test_method_takes_not_enough_args.<locals>.ICurrent.methodNr#   r   r   r   r	   r      s   r   c                   @   s   e Zd Zdd ZdS )zCTest_verifyClass.test_method_takes_not_enough_args.<locals>.Currentc                 S   s
   t  d S r    r'   r)   r   r   r	   r!      s    zJTest_verifyClass.test_method_takes_not_enough_args.<locals>.Current.methodNr#   r   r   r   r	   r      s   r   r   r   r   r   r6   r   r   r
   r   r   r   r6   r   r   r   r   r	   !test_method_takes_not_enough_args   s      z2Test_verifyClass.test_method_takes_not_enough_argsc                 C   sb   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   r   r5   c                   @   s   e Zd Zdd ZdS )zLTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.ICurrentc                  W   s   d S r    r   argsr   r   r	   r!      s    zSTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.ICurrent.methodNr#   r   r   r   r	   r      s   r   c                   @   s   e Zd Zdd ZdS )zKTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.Currentc                 S   s
   t  d S r    r'   r)   r   r   r	   r!      s    zRTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.Current.methodNr#   r   r   r   r	   r      s   r   r7   r8   r   r   r	   )test_method_doesnt_take_required_starargs   s      z:Test_verifyClass.test_method_doesnt_take_required_starargsc                 C   sb   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   r   r5   c                   @   s   e Zd Zdd ZdS )zOTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.ICurrentc                  [   s   d S r    r   )kwr   r   r	   r!      s    zVTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.ICurrent.methodNr#   r   r   r   r	   r      s   r   c                   @   s   e Zd Zdd ZdS )zNTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.Currentc                 S   s
   t  d S r    r'   r)   r   r   r	   r!      s    zUTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.Current.methodNr#   r   r   r   r	   r      s   r   r7   r8   r   r   r	   ,test_method_doesnt_take_required_only_kwargs   s      z=Test_verifyClass.test_method_doesnt_take_required_only_kwargsc                 C   sb   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   r   r5   c                   @   s   e Zd Zdd ZdS )z>Test_verifyClass.test_method_takes_extra_arg.<locals>.ICurrentc                 S   s   d S r    r   r1   r   r   r	   r!      s    zETest_verifyClass.test_method_takes_extra_arg.<locals>.ICurrent.methodNr#   r   r   r   r	   r      s   r   c                   @   s   e Zd Zdd ZdS )z=Test_verifyClass.test_method_takes_extra_arg.<locals>.Currentc                 S   s
   t  d S r    r'   r   r2   r3   r   r   r	   r!      s    zDTest_verifyClass.test_method_takes_extra_arg.<locals>.Current.methodNr#   r   r   r   r	   r      s   r   r7   r8   r   r   r	   test_method_takes_extra_arg   s      z,Test_verifyClass.test_method_takes_extra_argc                 C   sP   ddl m} ddl m} G dd d|}||G dd dt}| || d S )Nr   r   r   c                   @   s   e Zd Zdd ZdS )zKTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.ICurrentc                 S   s   d S r    r   r1   r   r   r	   r!      s    zRTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.ICurrent.methodNr#   r   r   r   r	   r      s   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   s
   t  d S r    r'   r?   r   r   r	   r!      s    zQTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.Current.method)Nr#   r   r   r   r	   r      s   r   r*   r+   r   r   r	   (test_method_takes_extra_arg_with_default   s    z9Test_verifyClass.test_method_takes_extra_arg_with_defaultc                 C   sP   ddl m} ddl m} G dd d|}||G dd dt}| || d S )Nr   r   r   c                   @   s   e Zd Zdd ZdS )zITest_verifyClass.test_method_takes_only_positional_args.<locals>.ICurrentc                 S   s   d S r    r   r1   r   r   r	   r!      s    zPTest_verifyClass.test_method_takes_only_positional_args.<locals>.ICurrent.methodNr#   r   r   r   r	   r      s   r   c                   @   s   e Zd Zdd ZdS )zHTest_verifyClass.test_method_takes_only_positional_args.<locals>.Currentc                 W   s
   t  d S r    r'   r   r;   r   r   r	   r!      s    zOTest_verifyClass.test_method_takes_only_positional_args.<locals>.Current.methodNr#   r   r   r   r	   r      s   r   r*   r+   r   r   r	   &test_method_takes_only_positional_args   s    z7Test_verifyClass.test_method_takes_only_positional_argsc                 C   sb   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   r   r5   c                   @   s   e Zd Zdd ZdS )z@Test_verifyClass.test_method_takes_only_kwargs.<locals>.ICurrentc                 S   s   d S r    r   r1   r   r   r	   r!      s    zGTest_verifyClass.test_method_takes_only_kwargs.<locals>.ICurrent.methodNr#   r   r   r   r	   r      s   r   c                   @   s   e Zd Zdd ZdS )z?Test_verifyClass.test_method_takes_only_kwargs.<locals>.Currentc                 [   s
   t  d S r    r'   r   r=   r   r   r	   r!     s    zFTest_verifyClass.test_method_takes_only_kwargs.<locals>.Current.methodNr#   r   r   r   r	   r     s   r   r7   r8   r   r   r	   test_method_takes_only_kwargs   s      z.Test_verifyClass.test_method_takes_only_kwargsc                 C   sP   ddl m} ddl m} G dd d|}||G dd dt}| || d S )Nr   r   r   c                   @   s   e Zd Zdd ZdS )zCTest_verifyClass.test_method_takes_extra_starargs.<locals>.ICurrentc                 S   s   d S r    r   r1   r   r   r	   r!     s    zJTest_verifyClass.test_method_takes_extra_starargs.<locals>.ICurrent.methodNr#   r   r   r   r	   r     s   r   c                   @   s   e Zd Zdd ZdS )zBTest_verifyClass.test_method_takes_extra_starargs.<locals>.Currentc                 W   s
   t  d S r    r'   r   r2   r;   r   r   r	   r!     s    zITest_verifyClass.test_method_takes_extra_starargs.<locals>.Current.methodNr#   r   r   r   r	   r     s   r   r*   r+   r   r   r	    test_method_takes_extra_starargs
  s    z1Test_verifyClass.test_method_takes_extra_starargsc                 C   sP   ddl m} ddl m} G dd d|}||G dd dt}| || d S )Nr   r   r   c                   @   s   e Zd Zdd ZdS )zNTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.ICurrentc                 S   s   d S r    r   r1   r   r   r	   r!   !  s    zUTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.ICurrent.methodNr#   r   r   r   r	   r     s   r   c                   @   s   e Zd Zdd ZdS )zMTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.Currentc                 _   s
   t  d S r    r'   )r   r2   r;   r=   r   r   r	   r!   '  s    zTTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.Current.methodNr#   r   r   r   r	   r   $  s   r   r*   r+   r   r   r	   +test_method_takes_extra_starargs_and_kwargs  s    z<Test_verifyClass.test_method_takes_extra_starargs_and_kwargsc                 C   sb   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   r   r5   c                   @   s   e Zd Zdd ZdS )z[Test_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.ICurrentc                 W   s   d S r    r   r2   r;   r   r   r	   r!   3  s    zbTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.ICurrent.methodNr#   r   r   r   r	   r   1  s   r   c                   @   s   e Zd Zdd ZdS )zZTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.Currentc                 S   s
   t  d S r    r'   r   r2   r   r   r	   r!   9  s    zaTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.Current.methodNr#   r   r   r   r	   r   6  s   r   r7   r8   r   r   r	   8test_method_doesnt_take_required_positional_and_starargs,  s      zITest_verifyClass.test_method_doesnt_take_required_positional_and_starargsc                 C   sP   ddl m} ddl m} G dd d|}||G dd dt}| || d S )Nr   r   r   c                   @   s   e Zd Zdd ZdS )zUTest_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.ICurrentc                 W   s   d S r    r   rI   r   r   r	   r!   E  s    z\Test_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.ICurrent.methodNr#   r   r   r   r	   r   C  s   r   c                   @   s   e Zd Zdd ZdS )zTTest_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.Currentc                 W   s
   t  d S r    r'   rF   r   r   r	   r!   K  s    z[Test_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.Current.methodNr#   r   r   r   r	   r   H  s   r   r*   r+   r   r   r	   2test_method_takes_required_positional_and_starargs?  s    zCTest_verifyClass.test_method_takes_required_positional_and_starargsc                 C   sP   ddl m} ddl m} G dd d|}||G dd dt}| || d S )Nr   r   r   c                   @   s   e Zd Zdd ZdS )zBTest_verifyClass.test_method_takes_only_starargs.<locals>.ICurrentc                 W   s   d S r    r   rI   r   r   r	   r!   V  s    zITest_verifyClass.test_method_takes_only_starargs.<locals>.ICurrent.methodNr#   r   r   r   r	   r   T  s   r   c                   @   s   e Zd Zdd ZdS )zATest_verifyClass.test_method_takes_only_starargs.<locals>.Currentc                 W   s
   t  d S r    r'   rB   r   r   r	   r!   \  s    zHTest_verifyClass.test_method_takes_only_starargs.<locals>.Current.methodNr#   r   r   r   r	   r   Y  s   r   r*   r+   r   r   r	   test_method_takes_only_starargsP  s    z0Test_verifyClass.test_method_takes_only_starargsc                 C   sP   ddl m} ddl m} G dd d|}||G dd dt}| || d S )Nr   r   r   c                   @   s   e Zd Zdd ZdS )zDTest_verifyClass.test_method_takes_required_kwargs.<locals>.ICurrentc                  [   s   d S r    r   kwargsr   r   r	   r!   g  s    zKTest_verifyClass.test_method_takes_required_kwargs.<locals>.ICurrent.methodNr#   r   r   r   r	   r   e  s   r   c                   @   s   e Zd Zdd ZdS )zCTest_verifyClass.test_method_takes_required_kwargs.<locals>.Currentc                 [   s
   t  d S r    r'   rD   r   r   r	   r!   m  s    zJTest_verifyClass.test_method_takes_required_kwargs.<locals>.Current.methodNr#   r   r   r   r	   r   j  s   r   r*   r+   r   r   r	   !test_method_takes_required_kwargsa  s    z2Test_verifyClass.test_method_takes_required_kwargsc                 C   sb   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   r   r5   c                   @   s   e Zd Zdd ZdS )zVTest_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.ICurrentc                  W   s   d S r    r   r:   r   r   r	   r!   y  s    z]Test_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.ICurrent.methodNr#   r   r   r   r	   r   w  s   r   c                   @   s   e Zd Zdd ZdS )zUTest_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.Currentc                 W   s
   t  d S r    r'   rF   r   r   r	   r!     s    z\Test_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.Current.methodNr#   r   r   r   r	   r   |  s   r   r7   r8   r   r   r	   3test_method_takes_positional_plus_required_starargsr  s      zDTest_verifyClass.test_method_takes_positional_plus_required_starargsc                 C   sb   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   r   r5   c                   @   s   e Zd Zdd ZdS )zJTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.ICurrentc                  [   s   d S r    r   rN   r   r   r	   r!     s    zQTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.ICurrent.methodNr#   r   r   r   r	   r     s   r   c                   @   s   e Zd Zdd ZdS )zITest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.Currentc                 S   s
   t  d S r    r'   rJ   r   r   r	   r!     s    zPTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.Current.methodNr#   r   r   r   r	   r     s   r   r7   r8   r   r   r	   'test_method_doesnt_take_required_kwargs  s      z8Test_verifyClass.test_method_doesnt_take_required_kwargsc                    s^   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                       s   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   rS   r   r	   r     s   r   c                   @   s   e Zd Zdd ZdS )zFTest_verifyClass.test_class_has_method_for_iface_attr.<locals>.Currentc                 S   s
   t  d S r    r'   r)   r   r   r	   rW     s    zKTest_verifyClass.test_class_has_method_for_iface_attr.<locals>.Current.attrNrV   r   r   r   r	   r     s   r   r   rT   r   r   r
   r+   r   rS   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   r5   c                   @   s   e Zd Zdd ZdS )zFTest_verifyClass.test_class_has_nonmethod_for_method.<locals>.ICurrentc                   S   s   d S r    r   r   r   r   r	   r!     s    zMTest_verifyClass.test_class_has_nonmethod_for_method.<locals>.ICurrent.methodNr#   r   r   r   r	   r     s   r   c                   @   s   e Zd ZdZdS )zETest_verifyClass.test_class_has_nonmethod_for_method.<locals>.Current   Nr#   r   r   r   r	   r     s   r   )r   r   r   r   r6   r   r
   r8   r   r   r	   #test_class_has_nonmethod_for_method  s      z4Test_verifyClass.test_class_has_nonmethod_for_methodc                    s^   ddl m  ddl m} ddl m} G  fddd|}||G dd d}| || d S )	Nr   rS   r   r   c                       s   e Zd Z dZdS )zITest_verifyClass.test_class_has_attribute_for_attribute.<locals>.ICurrentrU   NrV   r   rS   r   r	   r     s   r   c                   @   s   e Zd ZdZdS )zHTest_verifyClass.test_class_has_attribute_for_attribute.<locals>.CurrentrZ   NrV   r   r   r   r	   r     s   r   rX   r+   r   rS   r	   &test_class_has_attribute_for_attribute  s    z7Test_verifyClass.test_class_has_attribute_for_attributec                    s^   ddl m  ddl m} ddl m} G  fddd|}||G dd d}| || d S )	Nr   rS   r   r   c                       s   e Zd Z dZdS )zLTest_verifyClass.test_class_misses_attribute_for_attribute.<locals>.ICurrentrU   NrV   r   rS   r   r	   r     s   r   c                   @   s   e Zd ZdS )zKTest_verifyClass.test_class_misses_attribute_for_attribute.<locals>.CurrentNr   r   r   r   r	   r     s   r   rX   r+   r   rS   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                   @   s   e Zd Zdd ZdS )zETest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiMethodc                 _   s
   t  d S r    r'   r   r;   r=   r   r   r	   __call__  s    zNTest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiMethod.__call__Nr   r   r   r`   r   r   r   r	   QuasiMethod  s   rb   c                   @   s   e Zd Zdd ZdS )zGTest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiCallablec                 _   s
   t  d S r    r'   r_   r   r   r	   r`     s    zPTest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiCallable.__call__Nra   r   r   r   r	   QuasiCallable  s   rc   c                       s   e Zd Z dZdS )zBTest_verifyClass.test_w_callable_non_func_method.<locals>.ICurrentzThis is callableNrV   r   )rb   r   r	   r     s   r   c                       s   e Zd Z  ZdS )zATest_verifyClass.test_w_callable_non_func_method.<locals>.CurrentNrV   r   )rc   r   r	   r     s   r   )Zzope.interface.interfacer^   r   r   r   r   r
   )r   r^   r   r   r   r   r   )rc   rb   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	   <lambda>  r"   zMTest_verifyClass.test_w_decorated_method.<locals>.decorator.<locals>.<lambda>)propertyrf   r   rf   r	   	decorator  s    z;Test_verifyClass.test_w_decorated_method.<locals>.decoratorc                   @   s   e Zd Zdd ZdS )z:Test_verifyClass.test_w_decorated_method.<locals>.ICurrentc                 S   s   d S r    r   r1   r   r   r	   r!     s    zATest_verifyClass.test_w_decorated_method.<locals>.ICurrent.methodNr#   r   r   r   r	   r     s   r   c                       s   e Zd Z dd ZdS )z9Test_verifyClass.test_w_decorated_method.<locals>.Currentc                 S   s
   t  d S r    r'   rJ   r   r   r	   r!     s    z@Test_verifyClass.test_w_decorated_method.<locals>.Current.methodNr#   r   rj   r   r	   r     s   r   r*   r+   r   rk   r	   test_w_decorated_method  s    z(Test_verifyClass.test_w_decorated_methodN) r   r   r   r
   r   r   r&   r,   r/   r0   r4   r9   r<   r>   r@   rA   rC   rE   rG   rH   rK   rL   rM   rP   rQ   rR   rY   r[   r\   r]   rd   rl   r   r   r   r	   r      s:   r   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )Test_verifyObjectc                 C   s.   ddl m} t|tttfr$| }|||S )Nr   verifyObject)r   ro   
isinstancetypeOldSkool)r   r   targetro   r   r   r	   r
     s    zTest_verifyObject._callFUTc                    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   rS   r   r   r   c                       s   e Zd Z dZdS )zMTest_verifyObject.test_class_misses_attribute_for_attribute.<locals>.ICurrentrU   NrV   r   rS   r   r	   r     s   r   c                   @   s   e Zd ZdS )zLTest_verifyObject.test_class_misses_attribute_for_attribute.<locals>.CurrentNr   r   r   r   r	   r     s   r   )r   rT   r   r   r   r   r   r
   r%   r   rS   r	   r]     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.idummyrt   zope.interface.testsrv   r
   )r   rt   rv   r   r   r	   test_module_hit  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   ru   r   c                   @   s   e Zd ZdS )z8Test_verifyObject.test_module_miss.<locals>.IDummyModuleNr   r   r   r   r	   rt   *  s   rt   )r   r   rw   rv   r   r   r   r
   )r   r   rv   r   rt   r   r   r	   test_module_miss$  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   )providerrn   c                   @   s   e Zd Zdd ZdS )z>Test_verifyObject.test_staticmethod_hit_on_class.<locals>.IFooc                 S   s   dS )zThe bar methodNr   r2   r3   r   r   r	   bar7  s    zBTest_verifyObject.test_staticmethod_hit_on_class.<locals>.IFoo.barN)r   r   r   r|   r   r   r   r	   IFoo5  s   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d S )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:  s   r   )r   r   rz   r   ro   r   )r   r   rz   ro   r}   r   r   r   r	   test_staticmethod_hit_on_class0  s    z0Test_verifyObject.test_staticmethod_hit_on_classN)r   r   r   r
   r]   rx   ry   r   r   r   r   r	   rm     s
   rm   c                   @   s   e Zd ZdS )rr   Nr   r   r   r   r	   rr   E  s   rr   )__doc__ZunittestZTestCaser   rm   rr   r   r   r   r	   <module>   s      u@