o
    Êó·i�M  ã                   @   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   úfC:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-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	   Ú_adjust_object_before_verify!   s   z-Test_verifyClass._adjust_object_before_verifyc                 K   s   | j ||  |¡fi |¤Ž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                   @   ó   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	   ÚCurrent0   r   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                   @   r   )zXTest_verifyClass.test_class_doesnt_implement_but_classImplements_later.<locals>.ICurrentNr   r   r   r   r	   r   9   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	   Ú5test_class_doesnt_implement_but_classImplements_later5   s   
zFTest_verifyClass.test_class_doesnt_implement_but_classImplements_laterc                 C   ó`   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                   @   ó   e Zd Zdd„ ZdS )zPTest_verifyClass.test_class_doesnt_have_required_method_simple.<locals>.ICurrentc                   S   ó   dS ©Ú	docstringNr   r   r   r   r	   ÚmethodI   ó    zWTest_verifyClass.test_class_doesnt_have_required_method_simple.<locals>.ICurrent.methodN©r   r   r   r1   r   r   r   r	   r   H   ó    r   c                   @   r   )zOTest_verifyClass.test_class_doesnt_have_required_method_simple.<locals>.CurrentNr   r   r   r   r	   r    L   ó    r    ©r!   r   r*   r"   r,   r#   r   ©r   r   r*   r,   r   r    r   r   r	   Ú-test_class_doesnt_have_required_method_simpleC   ó   ÿz>Test_verifyClass.test_class_doesnt_have_required_method_simplec                 C   óN   ddl m} ddl m} G dd„ d|ƒ}||ƒG dd„ dƒƒ}|  ||¡ d S )Nr   r   r)   c                   @   r-   )zHTest_verifyClass.test_class_has_required_method_simple.<locals>.ICurrentc                   S   r.   r/   r   r   r   r   r	   r1   X   r2   zOTest_verifyClass.test_class_has_required_method_simple.<locals>.ICurrent.methodNr3   r   r   r   r	   r   W   r4   r   c                   @   r-   )zGTest_verifyClass.test_class_has_required_method_simple.<locals>.Currentc                 S   ó   t ƒ ‚r   ©ÚNotImplementedErrorr   r   r   r	   r1   ^   ó   zNTest_verifyClass.test_class_has_required_method_simple.<locals>.Current.methodNr3   r   r   r   r	   r    [   ó    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                   @   r-   )zNTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IBasec                   S   r.   r/   r   r   r   r   r	   r1   i   r2   zUTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IBase.methodNr3   r   r   r   r	   ÚIBaseh   r4   rC   c                   @   r   )zQTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IDerivedNr   r   r   r   r	   ÚIDerivedl   r   rD   c                   @   r   )zPTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.CurrentNr   r   r   r   r	   r    o   r5   r    r6   )r   r   r*   r,   rC   rD   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                   @   r-   )zFTest_verifyClass.test_class_has_required_method_derived.<locals>.IBasec                   S   r.   r/   r   r   r   r   r	   r1   {   r2   zMTest_verifyClass.test_class_has_required_method_derived.<locals>.IBase.methodNr3   r   r   r   r	   rC   z   r4   rC   c                   @   r   )zITest_verifyClass.test_class_has_required_method_derived.<locals>.IDerivedNr   r   r   r   r	   rD   ~   r   rD   c                   @   r-   )zHTest_verifyClass.test_class_has_required_method_derived.<locals>.Currentc                 S   r;   r   r<   r   r   r   r	   r1   „   r>   zOTest_verifyClass.test_class_has_required_method_derived.<locals>.Current.methodNr3   r   r   r   r	   r    �   r?   r    r@   )r   r   r*   rC   rD   r    r   r   r	   Ú&test_class_has_required_method_derivedv   s   z7Test_verifyClass.test_class_has_required_method_derivedc                 C   r:   )Nr   r   r)   c                   @   r-   )zKTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.ICurrentc                 S   r.   r/   r   ©Úar   r   r	   r1   �   r2   zRTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.ICurrent.methodNr3   r   r   r   r	   r   Ž   ó    r   c                   @   r-   )zJTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.Currentc                 S   r;   r   r<   )r   Úbr   r   r	   r1   –   r>   zQTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.Current.methodNr3   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                   @   r-   )zDTest_verifyClass.test_method_takes_not_enough_args.<locals>.ICurrentc                 S   r.   r/   r   rG   r   r   r	   r1   ¢   r2   zKTest_verifyClass.test_method_takes_not_enough_args.<locals>.ICurrent.methodNr3   r   r   r   r	   r       rI   r   c                   @   r-   )zCTest_verifyClass.test_method_takes_not_enough_args.<locals>.Currentc                 S   r;   r   r<   r   r   r   r	   r1   ¨   r>   zJTest_verifyClass.test_method_takes_not_enough_args.<locals>.Current.methodNr3   r   r   r   r	   r    ¥   r?   r    ©r!   r   r*   r"   rM   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                   @   r-   )zLTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.ICurrentc                  W   r.   r/   r   ©Úargsr   r   r	   r1   µ   r2   zSTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.ICurrent.methodNr3   r   r   r   r	   r   ³   rI   r   c                   @   r-   )zKTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.Currentc                 S   r;   r   r<   r   r   r   r	   r1   »   r>   zRTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.Current.methodNr3   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                   @   r-   )zOTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.ICurrentc                  [   r.   r/   r   )Úkwr   r   r	   r1   È   r2   zVTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.ICurrent.methodNr3   r   r   r   r	   r   Æ   rI   r   c                   @   r-   )zNTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.Currentc                 S   r;   r   r<   r   r   r   r	   r1   Î   r>   zUTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.Current.methodNr3   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                   @   r-   )z>Test_verifyClass.test_method_takes_extra_arg.<locals>.ICurrentc                 S   r.   r/   r   rG   r   r   r	   r1   Û   r2   zETest_verifyClass.test_method_takes_extra_arg.<locals>.ICurrent.methodNr3   r   r   r   r	   r   Ù   rI   r   c                   @   r-   )z=Test_verifyClass.test_method_takes_extra_arg.<locals>.Currentc                 S   r;   r   r<   ©r   rH   rJ   r   r   r	   r1   á   r>   zDTest_verifyClass.test_method_takes_extra_arg.<locals>.Current.methodNr3   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                   @   r-   )zKTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.ICurrentc                 S   r.   r/   r   rG   r   r   r	   r1   í   r2   zRTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.ICurrent.methodNr3   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	   r1   ó   r>   zQTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.Current.methodr   r3   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                   @   r-   )zITest_verifyClass.test_method_takes_only_positional_args.<locals>.ICurrentc                 S   r.   r/   r   rG   r   r   r	   r1   þ   r2   zPTest_verifyClass.test_method_takes_only_positional_args.<locals>.ICurrent.methodNr3   r   r   r   r	   r   ü   rI   r   c                   @   r-   )zHTest_verifyClass.test_method_takes_only_positional_args.<locals>.Currentc                 W   r;   r   r<   ©r   rS   r   r   r	   r1     r>   zOTest_verifyClass.test_method_takes_only_positional_args.<locals>.Current.methodNr3   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                   @   r-   )z@Test_verifyClass.test_method_takes_only_kwargs.<locals>.ICurrentc                 S   r.   r/   r   rG   r   r   r	   r1     r2   zGTest_verifyClass.test_method_takes_only_kwargs.<locals>.ICurrent.methodNr3   r   r   r   r	   r     rI   r   c                   @   r-   )z?Test_verifyClass.test_method_takes_only_kwargs.<locals>.Currentc                 [   r;   r   r<   ©r   rU   r   r   r	   r1     r>   zFTest_verifyClass.test_method_takes_only_kwargs.<locals>.Current.methodNr3   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                   @   r-   )zCTest_verifyClass.test_method_takes_extra_starargs.<locals>.ICurrentc                 S   r.   r/   r   rG   r   r   r	   r1   "  r2   zJTest_verifyClass.test_method_takes_extra_starargs.<locals>.ICurrent.methodNr3   r   r   r   r	   r      rI   r   c                   @   r-   )zBTest_verifyClass.test_method_takes_extra_starargs.<locals>.Currentc                 W   r;   r   r<   ©r   rH   rS   r   r   r	   r1   (  r>   zITest_verifyClass.test_method_takes_extra_starargs.<locals>.Current.methodNr3   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                   @   r-   )zNTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.ICurrentc                 S   r.   r/   r   rG   r   r   r	   r1   3  r2   zUTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.ICurrent.methodNr3   r   r   r   r	   r   1  rI   r   c                   @   r-   )zMTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.Currentc                 _   r;   r   r<   )r   rH   rS   rU   r   r   r	   r1   9  r>   zTTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.Current.methodNr3   r   r   r   r	   r    6  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                   @   r-   )z[Test_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.ICurrentc                 W   r.   r/   r   ©rH   rS   r   r   r	   r1   E  r2   zbTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.ICurrent.methodNr3   r   r   r   r	   r   C  rI   r   c                   @   r-   )zZTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.Currentc                 S   r;   r   r<   ©r   rH   r   r   r	   r1   K  r>   zaTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.Current.methodNr3   r   r   r   r	   r    H  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                   @   r-   )zUTest_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.ICurrentc                 W   r.   r/   r   rb   r   r   r	   r1   W  r2   z\Test_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.ICurrent.methodNr3   r   r   r   r	   r   U  rI   r   c                   @   r-   )zTTest_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.Currentc                 W   r;   r   r<   r_   r   r   r	   r1   ]  r>   z[Test_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.Current.methodNr3   r   r   r   r	   r    Z  r?   r    r@   rA   r   r   r	   Ú2test_method_takes_required_positional_and_starargsQ  rZ   zCTest_verifyClass.test_method_takes_required_positional_and_starargsc                 C   r:   )Nr   r   r)   c                   @   r-   )zBTest_verifyClass.test_method_takes_only_starargs.<locals>.ICurrentc                 W   r.   r/   r   rb   r   r   r	   r1   h  r2   zITest_verifyClass.test_method_takes_only_starargs.<locals>.ICurrent.methodNr3   r   r   r   r	   r   f  rI   r   c                   @   r-   )zATest_verifyClass.test_method_takes_only_starargs.<locals>.Currentc                 W   r;   r   r<   r[   r   r   r	   r1   n  r>   zHTest_verifyClass.test_method_takes_only_starargs.<locals>.Current.methodNr3   r   r   r   r	   r    k  r?   r    r@   rA   r   r   r	   Útest_method_takes_only_starargsb  rZ   z0Test_verifyClass.test_method_takes_only_starargsc                 C   r:   )Nr   r   r)   c                   @   r-   )zDTest_verifyClass.test_method_takes_required_kwargs.<locals>.ICurrentc                  [   r.   r/   r   ©r   r   r   r	   r1   y  r2   zKTest_verifyClass.test_method_takes_required_kwargs.<locals>.ICurrent.methodNr3   r   r   r   r	   r   w  rI   r   c                   @   r-   )zCTest_verifyClass.test_method_takes_required_kwargs.<locals>.Currentc                 [   r;   r   r<   r]   r   r   r	   r1     r>   zJTest_verifyClass.test_method_takes_required_kwargs.<locals>.Current.methodNr3   r   r   r   r	   r    |  r?   r    r@   rA   r   r   r	   Ú!test_method_takes_required_kwargss  rZ   z2Test_verifyClass.test_method_takes_required_kwargsc                 C   r(   )	Nr   r   r)   rL   c                   @   r-   )zVTest_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.ICurrentc                  W   r.   r/   r   rR   r   r   r	   r1   ‹  r2   z]Test_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.ICurrent.methodNr3   r   r   r   r	   r   ‰  rI   r   c                   @   r-   )zUTest_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.Currentc                 W   r;   r   r<   r_   r   r   r	   r1   ‘  r>   z\Test_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.Current.methodNr3   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                   @   r-   )zJTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.ICurrentc                  [   r.   r/   r   rg   r   r   r	   r1   ž  r2   zQTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.ICurrent.methodNr3   r   r   r   r	   r   œ  rI   r   c                   @   r-   )zITest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.Currentc                 S   r;   r   r<   rc   r   r   r	   r1   ¤  r>   zPTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.Current.methodNr3   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   ¯  r4   r   c                   @   r-   )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   r(   )	Nr   r   r)   rL   c                   @   r-   )zFTest_verifyClass.test_class_has_nonmethod_for_method.<locals>.ICurrentc                   S   r.   r/   r   r   r   r   r	   r1   À  r2   zMTest_verifyClass.test_class_has_nonmethod_for_method.<locals>.ICurrent.methodNr3   r   r   r   r	   r   ¿  r4   r   c                   @   ó   e Zd ZdZdS )zETest_verifyClass.test_class_has_nonmethod_for_method.<locals>.Currenté   Nr3   r   r   r   r	   r    Ã  s    r    rN   rO   r   r   r	   Ú#test_class_has_nonmethod_for_methodº  r9   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   Ï  r4   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   ß  r4   r   c                   @   r   )zKTest_verifyClass.test_class_misses_attribute_for_attribute.<locals>.CurrentNr   r   r   r   r	   r    â  r5   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ƒ‰ G ‡fd	d
„d
|ƒ}||ƒG ‡ fdd„dƒƒ}|  ||¡ d S )Nr   r   r)   )ÚMethodc                   @   r-   )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í  r4   r}   c                   @   r-   )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ñ  r4   r~   c                       rn   )zBTest_verifyClass.test_w_callable_non_func_method.<locals>.ICurrentzThis is callableNrp   r   )r}   r   r	   r   õ  r4   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    )r!   r   r*   Zzope.interface.interfacery   r   )r   r   r*   ry   r   r    r   )r~   r}   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>  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                   @   r-   )z:Test_verifyClass.test_w_decorated_method.<locals>.ICurrentc                 S   r.   r/   r   rG   r   r   r	   r1     r2   zATest_verifyClass.test_w_decorated_method.<locals>.ICurrent.methodNr3   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	   r1     s   z@Test_verifyClass.test_w_decorated_method.<locals>.Current.methodNr3   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©Ú	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   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 d   ƒ n1 sCw   Y  |j	}	|  
dt|	jƒ¡ |  |	jd |¡ |  |	jd |¡ |  |	jd |¡ |||ƒ dd„ |_|  |¡� |  ||¡ W d   ƒ d S 1 s�w   Y  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   r.   )zMethod 1Nr   ©Úarg1r   r   r	   Úmeth10  r2   zETest_verifyClass.test_multiple_invalid.<locals>.ISeveralMethods.meth1c                 S   r.   )zMethod 2Nr   r˜   r   r   r	   Úmeth22  r2   zETest_verifyClass.test_multiple_invalid.<locals>.ISeveralMethods.meth2N)r   r   r   rš   r›   r   r   r   r	   ÚISeveralMethods/  s    rœ   c                   @   r   )z>Test_verifyClass.test_multiple_invalid.<locals>.SeveralMethodsNr   r   r   r   r	   ÚSeveralMethods5  r   r�   é   ru   é   c                 S   r.   )NZHir   )r   r™   r   r   r	   rƒ   D  r2   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'   r8   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   L  r   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   rl   r   r)   r+   c                       rn   )zMTest_verifyObject.test_class_misses_attribute_for_attribute.<locals>.ICurrentro   Nrp   r   rl   r   r	   r   ]  r4   r   c                   @   r   )zLTest_verifyObject.test_class_misses_attribute_for_attribute.<locals>.CurrentNr   r   r   r   r	   r    `  r5   r    )r!   rm   r   r*   r"   r,   r#   r   r7   r   rl   r	   rx   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                   @   r   )z8Test_verifyObject.test_module_miss.<locals>.IDummyModuleNr   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_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                   @   r-   )z>Test_verifyObject.test_staticmethod_hit_on_class.<locals>.IFooc                 S   r.   )zThe bar methodNr   ©rH   rJ   r   r   r	   Úbar€  r2   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	   Útest_staticmethod_hit_on_classy  s   z0Test_verifyObject.test_staticmethod_hit_on_classN)
r   r   r   r§   r   r   rx   r³   r´   r¼   r   r   r   r	   r¨   J  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       9E