U
    b6{i K  ã                   @   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   úD/tmp/pip-unpacked-wheel-gk_w3uol/zope/interface/tests/test_verify.pyÚsetUp   s    zTest_verifyClass.setUpc                 C   s   ddl m} |S )Nr   )ÚverifyClass)Úzope.interface.verifyr   )Úclsr   r   r   r	   r      s    zTest_verifyClass._get_FUTc                 C   s   |S r   r   )r   Úxr   r   r	   Ú_adjust_object_before_verify!   s    z-Test_verifyClass._adjust_object_before_verifyc                 K   s   | j ||  |¡f|ŽS r   )r   r   )r   ZifaceÚklassÚkwargsr   r   r	   Ú_callFUT$   s
    ÿþzTest_verifyClass._callFUTc                 C   sL   ddl m} ddlm} G dd„ d|ƒ}G dd„ dƒ}|  || 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	   ÚCurrent0   s   r   )Úzope.interfacer   Úzope.interface.exceptionsr   ÚassertRaisesr   )r   r   r   r   r   r   r   r	   Útest_class_doesnt_implement)   s
    z,Test_verifyClass.test_class_doesnt_implementc                 C   sP   ddl m} ddl m} G dd„ d|ƒ}G dd„ dƒ}|||ƒ |  ||¡ 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   9   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	   Ú5test_class_doesnt_implement_but_classImplements_later5   s    
zFTest_verifyClass.test_class_doesnt_implement_but_classImplements_laterc                 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   ©Ú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 ©Z	docstringNr   r   r   r   r	   ÚmethodI   s    zWTest_verifyClass.test_class_doesnt_have_required_method_simple.<locals>.ICurrent.methodN©r   r   r   r)   r   r   r   r	   r   H   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   L   s   r   ©r   r   r%   r   r'   r   r   ©r   r   r%   r'   r   r   r   r   r	   Ú-test_class_doesnt_have_required_method_simpleC   s      ÿz>Test_verifyClass.test_class_doesnt_have_required_method_simplec                 C   sN   ddl m} ddl m} G dd„ d|ƒ}||ƒG dd„ dƒƒ}|  ||¡ 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)   X   s    zOTest_verifyClass.test_class_has_required_method_simple.<locals>.ICurrent.methodNr*   r   r   r   r	   r   W   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   ©ÚNotImplementedErrorr   r   r   r	   r)   ^   s    zNTest_verifyClass.test_class_has_required_method_simple.<locals>.Current.methodNr*   r   r   r   r	   r   [   s   r   ©r   r   r%   r   ©r   r   r%   r   r   r   r   r	   Ú%test_class_has_required_method_simpleS   s    z6Test_verifyClass.test_class_has_required_method_simplec                 C   sp   ddl m} ddl m} ddlm} G dd„ d|ƒ}G dd„ d|ƒ}||ƒG d	d
„ d
ƒƒ}|  || 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)   i   s    zUTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IBase.methodNr*   r   r   r   r	   ÚIBaseh   s   r3   c                   @   s   e Zd ZdS )zQTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IDerivedNr   r   r   r   r	   ÚIDerivedl   s   r4   c                   @   s   e Zd ZdS )zPTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.CurrentNr   r   r   r   r	   r   o   s   r   r+   )r   r   r%   r'   r3   r4   r   r   r   r	   Ú.test_class_doesnt_have_required_method_derivedc   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	ƒƒ}|  ||¡ 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)   {   s    zMTest_verifyClass.test_class_has_required_method_derived.<locals>.IBase.methodNr*   r   r   r   r	   r3   z   s   r3   c                   @   s   e Zd ZdS )zITest_verifyClass.test_class_has_required_method_derived.<locals>.IDerivedNr   r   r   r   r	   r4   ~   s   r4   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)   „   s    zOTest_verifyClass.test_class_has_required_method_derived.<locals>.Current.methodNr*   r   r   r   r	   r   �   s   r   r0   )r   r   r%   r3   r4   r   r   r   r	   Ú&test_class_has_required_method_derivedv   s    z7Test_verifyClass.test_class_has_required_method_derivedc                 C   sN   ddl m} ddl m} G dd„ d|ƒ}||ƒG dd„ dƒƒ}|  ||¡ 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   r0   r1   r   r   r	   Ú(test_method_takes_wrong_arg_names_but_OK‰   s    z9Test_verifyClass.test_method_takes_wrong_arg_names_but_OKc                 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$   ©Ú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   r7   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   r<   r   r   ©r   r   r%   r<   r   r   r   r   r	   Ú!test_method_takes_not_enough_args›   s      ÿz2Test_verifyClass.test_method_takes_not_enough_argsc                 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$   r;   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   r=   r>   r   r   r	   Ú)test_method_doesnt_take_required_starargs®   s      ÿz:Test_verifyClass.test_method_doesnt_take_required_starargsc                 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$   r;   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   r=   r>   r   r   r	   Ú,test_method_doesnt_take_required_only_kwargsÁ   s      ÿz=Test_verifyClass.test_method_doesnt_take_required_only_kwargsc                 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$   r;   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   r7   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   r8   r9   r   r   r	   r)   á   s    zDTest_verifyClass.test_method_takes_extra_arg.<locals>.Current.methodNr*   r   r   r   r	   r   Þ   s   r   r=   r>   r   r   r	   Útest_method_takes_extra_argÔ   s      ÿz,Test_verifyClass.test_method_takes_extra_argc                 C   sN   ddl m} ddl m} G dd„ d|ƒ}||ƒG dd„ dƒƒ}|  ||¡ 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   r7   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.   rE   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   r0   r1   r   r   r	   Ú(test_method_takes_extra_arg_with_defaultç   s    z9Test_verifyClass.test_method_takes_extra_arg_with_defaultc                 C   sN   ddl m} ddl m} G dd„ d|ƒ}||ƒG dd„ dƒƒ}|  ||¡ 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   r7   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   rA   r   r   r	   r)     s    zOTest_verifyClass.test_method_takes_only_positional_args.<locals>.Current.methodNr*   r   r   r   r	   r     s   r   r0   r1   r   r   r	   Ú&test_method_takes_only_positional_argsø   s    z7Test_verifyClass.test_method_takes_only_positional_argsc                 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$   r;   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   r7   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   rC   r   r   r	   r)     s    zFTest_verifyClass.test_method_takes_only_kwargs.<locals>.Current.methodNr*   r   r   r   r	   r     s   r   r=   r>   r   r   r	   Útest_method_takes_only_kwargs	  s      ÿz.Test_verifyClass.test_method_takes_only_kwargsc                 C   sN   ddl m} ddl m} G dd„ d|ƒ}||ƒG dd„ dƒƒ}|  ||¡ 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   r7   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   r8   rA   r   r   r	   r)   (  s    zITest_verifyClass.test_method_takes_extra_starargs.<locals>.Current.methodNr*   r   r   r   r	   r   %  s   r   r0   r1   r   r   r	   Ú test_method_takes_extra_starargs  s    z1Test_verifyClass.test_method_takes_extra_starargsc                 C   sN   ddl m} ddl m} G dd„ d|ƒ}||ƒG dd„ dƒƒ}|  ||¡ 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   r7   r   r   r	   r)   3  s    zUTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.ICurrent.methodNr*   r   r   r   r	   r   1  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   r8   rA   rC   r   r   r	   r)   9  s    zTTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.Current.methodNr*   r   r   r   r	   r   6  s   r   r0   r1   r   r   r	   Ú+test_method_takes_extra_starargs_and_kwargs-  s    z<Test_verifyClass.test_method_takes_extra_starargs_and_kwargsc                 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$   r;   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   ©r8   rA   r   r   r	   r)   E  s    zbTest_verifyClass.test_method_doesnt_take_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 )zZTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.Currentc                 S   s
   t ƒ ‚d S r   r.   ©r   r8   r   r   r	   r)   K  s    zaTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.Current.methodNr*   r   r   r   r	   r   H  s   r   r=   r>   r   r   r	   Ú8test_method_doesnt_take_required_positional_and_starargs>  s      ÿzITest_verifyClass.test_method_doesnt_take_required_positional_and_starargsc                 C   sN   ddl m} ddl m} G dd„ d|ƒ}||ƒG dd„ dƒƒ}|  ||¡ 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   rO   r   r   r	   r)   W  s    z\Test_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.ICurrent.methodNr*   r   r   r   r	   r   U  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.   rL   r   r   r	   r)   ]  s    z[Test_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.Current.methodNr*   r   r   r   r	   r   Z  s   r   r0   r1   r   r   r	   Ú2test_method_takes_required_positional_and_starargsQ  s    zCTest_verifyClass.test_method_takes_required_positional_and_starargsc                 C   sN   ddl m} ddl m} G dd„ d|ƒ}||ƒG dd„ dƒƒ}|  ||¡ 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   rO   r   r   r	   r)   h  s    zITest_verifyClass.test_method_takes_only_starargs.<locals>.ICurrent.methodNr*   r   r   r   r	   r   f  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.   rH   r   r   r	   r)   n  s    zHTest_verifyClass.test_method_takes_only_starargs.<locals>.Current.methodNr*   r   r   r   r	   r   k  s   r   r0   r1   r   r   r	   Útest_method_takes_only_starargsb  s    z0Test_verifyClass.test_method_takes_only_starargsc                 C   sN   ddl m} ddl m} G dd„ d|ƒ}||ƒG dd„ dƒƒ}|  ||¡ 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   ©r   r   r   r	   r)   y  s    zKTest_verifyClass.test_method_takes_required_kwargs.<locals>.ICurrent.methodNr*   r   r   r   r	   r   w  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.   rJ   r   r   r	   r)     s    zJTest_verifyClass.test_method_takes_required_kwargs.<locals>.Current.methodNr*   r   r   r   r	   r   |  s   r   r0   r1   r   r   r	   Ú!test_method_takes_required_kwargss  s    z2Test_verifyClass.test_method_takes_required_kwargsc                 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$   r;   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)   ‹  s    z]Test_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.ICurrent.methodNr*   r   r   r   r	   r   ‰  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.   rL   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   r=   r>   r   r   r	   Ú3test_method_takes_positional_plus_required_starargs„  s      ÿzDTest_verifyClass.test_method_takes_positional_plus_required_starargsc                 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$   r;   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   rT   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.   rP   r   r   r	   r)   ¤  s    zPTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.Current.methodNr*   r   r   r   r	   r   ¡  s   r   r=   r>   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   rX   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	   r\   µ  s    zKTest_verifyClass.test_class_has_method_for_iface_attr.<locals>.Current.attrNr[   r   r   r   r	   r   ²  s   r   ©r   rY   r   r%   r   r1   r   rX   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$   r;   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   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   rX   r   r$   c                       s   e Zd Z” dƒZdS )zITest_verifyClass.test_class_has_attribute_for_attribute.<locals>.ICurrentrZ   Nr[   r   rX   r   r	   r   Ï  s   r   c                   @   s   e Zd ZdZdS )zHTest_verifyClass.test_class_has_attribute_for_attribute.<locals>.Currentr_   Nr[   r   r   r   r	   r   Ò  s   r   r]   r1   r   rX   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   rX   r   r$   c                       s   e Zd Z” dƒZdS )zLTest_verifyClass.test_class_misses_attribute_for_attribute.<locals>.ICurrentrZ   Nr[   r   rX   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   r]   r1   r   rX   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ƒ‰ G ‡fd	d
„d
|ƒ}||ƒG ‡ fdd„dƒƒ}|  ||¡ d S )Nr   r   r$   )ÚMethodc                   @   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   rA   rC   r   r   r	   Ú__call__î  s    zNTest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiMethod.__call__N©r   r   r   re   r   r   r   r	   ÚQuasiMethodí  s   rg   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.   rd   r   r   r	   re   ò  s    zPTest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiCallable.__call__Nrf   r   r   r   r	   ÚQuasiCallableñ  s   rh   c                       s   e Zd Z” dƒZdS )zBTest_verifyClass.test_w_callable_non_func_method.<locals>.ICurrentzThis is callableNr[   r   )rg   r   r	   r   õ  s   r   c                       s   e Zd Z” ƒ ZdS )zATest_verifyClass.test_w_callable_non_func_method.<locals>.CurrentNr[   r   )rh   r   r	   r   ø  s   r   )r   r   r%   Zzope.interface.interfacerc   r   )r   r   r%   rc   r   r   r   )rh   rg   r	   Útest_w_callable_non_func_methodè  s    z0Test_verifyClass.test_w_callable_non_func_methodc                    sZ   ddl m} ddl m} dd„ ‰ G dd„ d|ƒ}||ƒG ‡ fdd	„d	ƒƒ}|  ||¡ d S )
Nr   r   r$   c                    s   t ‡ fdd„ƒS )Nc                    s
   ˆ   | ¡S r   )Ú__get__r   ©Úfuncr   r	   Ú<lambda>  ó    zMTest_verifyClass.test_w_decorated_method.<locals>.decorator.<locals>.<lambda>)Úpropertyrk   r   rk   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   r7   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.   rP   r   r   r	   r)     s    z@Test_verifyClass.test_w_decorated_method.<locals>.Current.methodNr*   r   ©rp   r   r	   r     s   r   r0   r1   r   rq   r	   Útest_w_decorated_methodþ  s    z(Test_verifyClass.test_w_decorated_methodc                 C   s    ddl m} | j|tdd� d S )Nr   )ÚIFullMappingT©Ú	tentative)Zzope.interface.common.mappingrs   r   Údict)r   rs   r   r   r	   Útest_dict_IFullMapping  s    z'Test_verifyClass.test_dict_IFullMappingc                 C   s    ddl m} | j|tdd� d S )Nr   )Ú	ISequenceTrt   )Úzope.interface.common.sequencerx   r   Úlist)r   rx   r   r   r	   Útest_list_ISequence  s    z$Test_verifyClass.test_list_ISequencec                 C   s    ddl m} | j|tdd� d S )Nr   )ÚIReadSequenceTrt   )ry   r|   r   Útuple)r   r|   r   r   r	   Útest_tuple_IReadSequence#  s    z)Test_verifyClass.test_tuple_IReadSequencec           
   	   C   s  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
ƒ}|  |¡�}|  ||¡ W 5 Q R X |j	}	|  
dt|	jƒ¡ |  |	jd |¡ |  |	jd |¡ |  |	jd |¡ |||ƒ dd„ |_|  |¡� |  ||¡ W 5 Q R X d S )Nr   r   r!   r&   r   )ÚMultipleInvalidc                   @   s   e Zd Zdd„ Zdd„ ZdS )z?Test_verifyClass.test_multiple_invalid.<locals>.ISeveralMethodsc                 S   s   dS )zMethod 1Nr   ©Úarg1r   r   r	   Úmeth10  s    zETest_verifyClass.test_multiple_invalid.<locals>.ISeveralMethods.meth1c                 S   s   dS )zMethod 2Nr   r€   r   r   r	   Úmeth22  s    zETest_verifyClass.test_multiple_invalid.<locals>.ISeveralMethods.meth2N)r   r   r   r‚   rƒ   r   r   r   r	   ÚISeveralMethods/  s   r„   c                   @   s   e Zd ZdS )z>Test_verifyClass.test_multiple_invalid.<locals>.SeveralMethodsNr   r   r   r   r	   ÚSeveralMethods5  s   r…   é   r_   é   c                 S   s   dS )NZHir   )r   r�   r   r   r	   rm   D  rn   z8Test_verifyClass.test_multiple_invalid.<locals>.<lambda>)r   r   r"   r   r'   r   r   r   r   Ú	exceptionÚ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#   r-   r2   r5   r6   r:   r?   rB   rD   rF   rG   rI   rK   rM   rN   rQ   rR   rS   rU   rV   rW   r^   r`   ra   rb   ri   rr   rw   r{   r~   rŽ   r   r   r   r	   r      sL   

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   s   ddl m} |S )Nr   ©ÚverifyObject)r   r’   )r   r’   r   r   r	   r   L  s    zTest_verifyObject._get_FUTc                 C   s   t |tttƒfƒr|ƒ }|S r   )Ú
isinstanceÚtypeÚOldSkool)r   Útargetr   r   r	   r   Q  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   rX   r   r$   r&   c                       s   e Zd Z” dƒZdS )zMTest_verifyObject.test_class_misses_attribute_for_attribute.<locals>.ICurrentrZ   Nr[   r   rX   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   rY   r   r%   r   r'   r   r   r,   r   rX   r	   rb   V  s      ÿz;Test_verifyObject.test_class_misses_attribute_for_attributec                 C   s(   ddl m} ddlm} |  ||¡ d S )Nr   ©Údummy)ÚIDummyModule)Úzope.interface.testsr˜   Zzope.interface.tests.idummyr™   r   )r   r˜   r™   r   r   r	   Útest_module_hitg  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                   @   s   e Zd ZdS )z8Test_verifyObject.test_module_miss.<locals>.IDummyModuleNr   r   r   r   r	   r™   s  s   r™   )r   r   r   r   rš   r˜   r   r   )r   r   r   r˜   r™   r   r   r	   Útest_module_missm  s      ÿz"Test_verifyObject.test_module_missc                 C   sX   ddl m} ddl m} ddlm} G dd„ d|ƒ}||ƒG dd„ dƒƒ}|||ƒ d S )	Nr   r   )Úproviderr‘   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   ©r8   r9   r   r   r	   Úbar€  s    zBTest_verifyObject.test_staticmethod_hit_on_class.<locals>.IFoo.barN)r   r   r   rŸ   r   r   r   r	   ÚIFoo~  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   r�   r   r’   )r   r   r�   r’   r    r£   r   r   r	   Útest_staticmethod_hit_on_classy  s    z0Test_verifyObject.test_staticmethod_hit_on_classN)
r   r   r   r�   r   r   rb   r›   rœ   r¤   r   r   r   r	   r�   J  s   
r�   c                   @   s   e Zd ZdS )r•   Nr   r   r   r   r	   r•   �  s   r•   )Ú__doc__ZunittestZTestCaser   r�   r•   r   r   r   r	   Ú<module>   s       9E