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