
    Vh K                     d    d Z ddlZ G d dej                        Z G d de      Z G d d      Zy)	z" zope.interface.verify unit tests
    Nc                       e Zd ZdZd Zed        Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d  Z#d! Z$d" Z%d# Z&d$ Z'd% Z(y)&Test_verifyClassNc                 .    | j                         | _        y N)_get_FUTverifierselfs    P/home/dcms/DCMS/lib/python3.12/site-packages/zope/interface/tests/test_verify.pysetUpzTest_verifyClass.setUp   s        c                     ddl m} |S )Nr   )verifyClass)zope.interface.verifyr   )clsr   s     r   r   zTest_verifyClass._get_FUT   s    5r   c                     |S r    )r
   xs     r   _adjust_object_before_verifyz-Test_verifyClass._adjust_object_before_verify!   s    r   c                 H     | j                   || j                  |      fi |S r   )r   r   )r
   ifaceklasskwargss       r   _callFUTzTest_verifyClass._callFUT$   s-    t}}U!>>uE'%' 	'r   c                     ddl m} ddlm}  G d d|      } G d d      }| j	                  || j
                  ||       y )Nr   	InterfaceDoesNotImplementc                       e Zd Zy)>Test_verifyClass.test_class_doesnt_implement.<locals>.ICurrentN__name__
__module____qualname__r   r   r   ICurrentr!   -       r   r&   c                       e Zd Zy)=Test_verifyClass.test_class_doesnt_implement.<locals>.CurrentNr"   r   r   r   Currentr)   0   r'   r   r*   )zope.interfacer   zope.interface.exceptionsr   assertRaisesr   )r
   r   r   r&   r*   s        r   test_class_doesnt_implementz,Test_verifyClass.test_class_doesnt_implement)   s9    ,>	y 		 	 	*DMM8WMr   c                 |    ddl m} ddl m}  G d d|      } G d d      } |||       | j                  ||       y )Nr   r   classImplementsc                       e Zd Zy)XTest_verifyClass.test_class_doesnt_implement_but_classImplements_later.<locals>.ICurrentNr"   r   r   r   r&   r3   9   r'   r   r&   c                       e Zd Zy)WTest_verifyClass.test_class_doesnt_implement_but_classImplements_later.<locals>.CurrentNr"   r   r   r   r*   r5   <   r'   r   r*   )r+   r   r1   r   )r
   r   r1   r&   r*   s        r   5test_class_doesnt_implement_but_classImplements_laterzFTest_verifyClass.test_class_doesnt_implement_but_classImplements_later5   s8    ,2	y 		 	 	*h(r   c                     ddl m} ddl m} ddlm}  G d d|      } ||       G d d             }| j                  || j                  ||       y )	Nr   r   implementerBrokenImplementationc                       e Zd Zd Zy)PTest_verifyClass.test_class_doesnt_have_required_method_simple.<locals>.ICurrentc                       y	docstringNr   r   r   r   methodzWTest_verifyClass.test_class_doesnt_have_required_method_simple.<locals>.ICurrent.methodI       r   Nr#   r$   r%   rA   r   r   r   r&   r=   H        r   r&   c                       e Zd Zy)OTest_verifyClass.test_class_doesnt_have_required_method_simple.<locals>.CurrentNr"   r   r   r   r*   rF   L       r   r*   r+   r   r9   r,   r;   r-   r   )r
   r   r9   r;   r&   r*   s         r   -test_class_doesnt_have_required_method_simplez>Test_verifyClass.test_class_doesnt_have_required_method_simpleC   sS    ,.B	 y 	  
X		 	 
	 	.--7	<r   c                     ddl m} ddl m}  G d d|      } ||       G d d             }| j                  ||       y )Nr   r   r8   c                       e Zd Zd Zy)HTest_verifyClass.test_class_has_required_method_simple.<locals>.ICurrentc                       yr?   r   r   r   r   rA   zOTest_verifyClass.test_class_has_required_method_simple.<locals>.ICurrent.methodX   rB   r   NrC   r   r   r   r&   rL   W   rD   r   r&   c                       e Zd Zd Zy)GTest_verifyClass.test_class_has_required_method_simple.<locals>.Currentc                     t               r   NotImplementedErrorr	   s    r   rA   zNTest_verifyClass.test_class_has_required_method_simple.<locals>.Current.method^       )++r   NrC   r   r   r   r*   rO   [       ,r   r*   r+   r   r9   r   r
   r   r9   r&   r*   s        r   %test_class_has_required_method_simplez6Test_verifyClass.test_class_has_required_method_simpleS   sB    ,.	 y 	  
X		, 	, 
	,
 	h(r   c                     ddl m} ddl m} ddlm}  G d d|      } G d d|      } ||       G d	 d
             }| j                  || j                  ||       y )Nr   r   r8   r:   c                       e Zd Zd Zy)NTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IBasec                       yr?   r   r   r   r   rA   zUTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IBase.methodi   rB   r   NrC   r   r   r   IBaserZ   h   rD   r   r\   c                       e Zd Zy)QTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IDerivedNr"   r   r   r   IDerivedr^   l   r'   r   r_   c                       e Zd Zy)PTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.CurrentNr"   r   r   r   r*   ra   o   rG   r   r*   rH   )r
   r   r9   r;   r\   r_   r*   s          r   .test_class_doesnt_have_required_method_derivedz?Test_verifyClass.test_class_doesnt_have_required_method_derivedc   s_    ,.B	 I 	 	u 	 
X		 	 
	 	.--7	<r   c                     ddl m} ddl m}  G d d|      } G d d|      } ||       G d d	             }| j                  ||       y )
Nr   r   r8   c                       e Zd Zd Zy)FTest_verifyClass.test_class_has_required_method_derived.<locals>.IBasec                       yr?   r   r   r   r   rA   zMTest_verifyClass.test_class_has_required_method_derived.<locals>.IBase.method{   rB   r   NrC   r   r   r   r\   re   z   rD   r   r\   c                       e Zd Zy)ITest_verifyClass.test_class_has_required_method_derived.<locals>.IDerivedNr"   r   r   r   r_   rh   ~   r'   r   r_   c                       e Zd Zd Zy)HTest_verifyClass.test_class_has_required_method_derived.<locals>.Currentc                     t               r   rQ   r	   s    r   rA   zOTest_verifyClass.test_class_has_required_method_derived.<locals>.Current.method   rS   r   NrC   r   r   r   r*   rj      rT   r   r*   rU   )r
   r   r9   r\   r_   r*   s         r   &test_class_has_required_method_derivedz7Test_verifyClass.test_class_has_required_method_derivedv   sN    ,.	 I 	 	u 	 
X		, 	, 
	,
 	h(r   c                     ddl m} ddl m}  G d d|      } ||       G d d             }| j                  ||       y )Nr   r   r8   c                       e Zd Zd Zy)KTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.ICurrentc                      yr?   r   as    r   rA   zRTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.ICurrent.method   rB   r   NrC   r   r   r   r&   ro           r   r&   c                       e Zd Zd Zy)JTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.Currentc                     t               r   rQ   )r
   bs     r   rA   zQTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.Current.method   rS   r   NrC   r   r   r   r*   ru      rT   r   r*   rU   rV   s        r   (test_method_takes_wrong_arg_names_but_OKz9Test_verifyClass.test_method_takes_wrong_arg_names_but_OK   sB    ,.	 y 	 
 
X		, 	, 
	,
 	h(r   c                     ddl m} ddl m} ddlm}  G d d|      } ||       G d d             }| j                  || j                  ||       y )	Nr   r   r8   BrokenMethodImplementationc                       e Zd Zd Zy)DTest_verifyClass.test_method_takes_not_enough_args.<locals>.ICurrentc                      yr?   r   rq   s    r   rA   zKTest_verifyClass.test_method_takes_not_enough_args.<locals>.ICurrent.method   rB   r   NrC   r   r   r   r&   r}      rs   r   r&   c                       e Zd Zd Zy)CTest_verifyClass.test_method_takes_not_enough_args.<locals>.Currentc                     t               r   rQ   r	   s    r   rA   zJTest_verifyClass.test_method_takes_not_enough_args.<locals>.Current.method   rS   r   NrC   r   r   r   r*   r      rT   r   r*   r+   r   r9   r,   r{   r-   r   r
   r   r9   r{   r&   r*   s         r   !test_method_takes_not_enough_argsz2Test_verifyClass.test_method_takes_not_enough_args   S    ,.H	 y 	 
 
X		, 	, 
	,
 	4--7	<r   c                     ddl m} ddl m} ddlm}  G d d|      } ||       G d d             }| j                  || j                  ||       y )	Nr   r   r8   rz   c                       e Zd Zd Zy)LTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.ICurrentc                       yr?   r   argss    r   rA   zSTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.ICurrent.method   rB   r   NrC   r   r   r   r&   r      rs   r   r&   c                       e Zd Zd Zy)KTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.Currentc                     t               r   rQ   r	   s    r   rA   zRTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.Current.method   rS   r   NrC   r   r   r   r*   r      rT   r   r*   r   r   s         r   )test_method_doesnt_take_required_starargsz:Test_verifyClass.test_method_doesnt_take_required_starargs   r   r   c                     ddl m} ddl m} ddlm}  G d d|      } ||       G d d             }| j                  || j                  ||       y )	Nr   r   r8   rz   c                       e Zd Zd Zy)OTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.ICurrentc                       yr?   r   )kws    r   rA   zVTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.ICurrent.method   rB   r   NrC   r   r   r   r&   r      rs   r   r&   c                       e Zd Zd Zy)NTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.Currentc                     t               r   rQ   r	   s    r   rA   zUTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.Current.method   rS   r   NrC   r   r   r   r*   r      rT   r   r*   r   r   s         r   ,test_method_doesnt_take_required_only_kwargsz=Test_verifyClass.test_method_doesnt_take_required_only_kwargs   r   r   c                     ddl m} ddl m} ddlm}  G d d|      } ||       G d d             }| j                  || j                  ||       y )	Nr   r   r8   rz   c                       e Zd Zd Zy)>Test_verifyClass.test_method_takes_extra_arg.<locals>.ICurrentc                      yr?   r   rq   s    r   rA   zETest_verifyClass.test_method_takes_extra_arg.<locals>.ICurrent.method   rB   r   NrC   r   r   r   r&   r      rs   r   r&   c                       e Zd Zd Zy)=Test_verifyClass.test_method_takes_extra_arg.<locals>.Currentc                     t               r   rQ   r
   rr   rw   s      r   rA   zDTest_verifyClass.test_method_takes_extra_arg.<locals>.Current.method   rS   r   NrC   r   r   r   r*   r      rT   r   r*   r   r   s         r   test_method_takes_extra_argz,Test_verifyClass.test_method_takes_extra_arg   r   r   c                     ddl m} ddl m}  G d d|      } ||       G d d             }| j                  ||       y )Nr   r   r8   c                       e Zd Zd Zy)KTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.ICurrentc                      yr?   r   rq   s    r   rA   zRTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.ICurrent.method   rB   r   NrC   r   r   r   r&   r      rs   r   r&   c                       e Zd ZddZy)JTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.CurrentNc                     t               r   rQ   r   s      r   rA   zQTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.Current.method   rS   r   r   rC   r   r   r   r*   r      s    ,r   r*   rU   rV   s        r   (test_method_takes_extra_arg_with_defaultz9Test_verifyClass.test_method_takes_extra_arg_with_default   B    ,.	 y 	 
 
X		, 	, 
	,
 	h(r   c                     ddl m} ddl m}  G d d|      } ||       G d d             }| j                  ||       y )Nr   r   r8   c                       e Zd Zd Zy)ITest_verifyClass.test_method_takes_only_positional_args.<locals>.ICurrentc                      yr?   r   rq   s    r   rA   zPTest_verifyClass.test_method_takes_only_positional_args.<locals>.ICurrent.method   rB   r   NrC   r   r   r   r&   r      rs   r   r&   c                       e Zd Zd Zy)HTest_verifyClass.test_method_takes_only_positional_args.<locals>.Currentc                     t               r   rQ   r
   r   s     r   rA   zOTest_verifyClass.test_method_takes_only_positional_args.<locals>.Current.method  rS   r   NrC   r   r   r   r*   r     rT   r   r*   rU   rV   s        r   &test_method_takes_only_positional_argsz7Test_verifyClass.test_method_takes_only_positional_args   r   r   c                     ddl m} ddl m} ddlm}  G d d|      } ||       G d d             }| j                  || j                  ||       y )	Nr   r   r8   rz   c                       e Zd Zd Zy)@Test_verifyClass.test_method_takes_only_kwargs.<locals>.ICurrentc                      yr?   r   rq   s    r   rA   zGTest_verifyClass.test_method_takes_only_kwargs.<locals>.ICurrent.method  rB   r   NrC   r   r   r   r&   r     rs   r   r&   c                       e Zd Zd Zy)?Test_verifyClass.test_method_takes_only_kwargs.<locals>.Currentc                     t               r   rQ   r
   r   s     r   rA   zFTest_verifyClass.test_method_takes_only_kwargs.<locals>.Current.method  rS   r   NrC   r   r   r   r*   r     rT   r   r*   r   r   s         r   test_method_takes_only_kwargsz.Test_verifyClass.test_method_takes_only_kwargs	  r   r   c                     ddl m} ddl m}  G d d|      } ||       G d d             }| j                  ||       y )Nr   r   r8   c                       e Zd Zd Zy)CTest_verifyClass.test_method_takes_extra_starargs.<locals>.ICurrentc                      yr?   r   rq   s    r   rA   zJTest_verifyClass.test_method_takes_extra_starargs.<locals>.ICurrent.method"  rB   r   NrC   r   r   r   r&   r      rs   r   r&   c                       e Zd Zd Zy)BTest_verifyClass.test_method_takes_extra_starargs.<locals>.Currentc                     t               r   rQ   r
   rr   r   s      r   rA   zITest_verifyClass.test_method_takes_extra_starargs.<locals>.Current.method(  rS   r   NrC   r   r   r   r*   r   %  rT   r   r*   rU   rV   s        r    test_method_takes_extra_starargsz1Test_verifyClass.test_method_takes_extra_starargs  r   r   c                     ddl m} ddl m}  G d d|      } ||       G d d             }| j                  ||       y )Nr   r   r8   c                       e Zd Zd Zy)NTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.ICurrentc                      yr?   r   rq   s    r   rA   zUTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.ICurrent.method3  rB   r   NrC   r   r   r   r&   r   1  rs   r   r&   c                       e Zd Zd Zy)MTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.Currentc                     t               r   rQ   )r
   rr   r   r   s       r   rA   zTTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.Current.method9  rS   r   NrC   r   r   r   r*   r   6  rT   r   r*   rU   rV   s        r   +test_method_takes_extra_starargs_and_kwargsz<Test_verifyClass.test_method_takes_extra_starargs_and_kwargs-  r   r   c                     ddl m} ddl m} ddlm}  G d d|      } ||       G d d             }| j                  || j                  ||       y )	Nr   r   r8   rz   c                       e Zd Zd Zy)[Test_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.ICurrentc                      yr?   r   rr   r   s     r   rA   zbTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.ICurrent.methodE  rB   r   NrC   r   r   r   r&   r   C  rs   r   r&   c                       e Zd Zd Zy)ZTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.Currentc                     t               r   rQ   r
   rr   s     r   rA   zaTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.Current.methodK  rS   r   NrC   r   r   r   r*   r   H  rT   r   r*   r   r   s         r   8test_method_doesnt_take_required_positional_and_starargszITest_verifyClass.test_method_doesnt_take_required_positional_and_starargs>  r   r   c                     ddl m} ddl m}  G d d|      } ||       G d d             }| j                  ||       y )Nr   r   r8   c                       e Zd Zd Zy)UTest_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.ICurrentc                      yr?   r   r   s     r   rA   z\Test_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.ICurrent.methodW  rB   r   NrC   r   r   r   r&   r   U  rs   r   r&   c                       e Zd Zd Zy)TTest_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.Currentc                     t               r   rQ   r   s      r   rA   z[Test_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.Current.method]  rS   r   NrC   r   r   r   r*   r   Z  rT   r   r*   rU   rV   s        r   2test_method_takes_required_positional_and_starargszCTest_verifyClass.test_method_takes_required_positional_and_starargsQ  r   r   c                     ddl m} ddl m}  G d d|      } ||       G d d             }| j                  ||       y )Nr   r   r8   c                       e Zd Zd Zy)BTest_verifyClass.test_method_takes_only_starargs.<locals>.ICurrentc                      yr?   r   r   s     r   rA   zITest_verifyClass.test_method_takes_only_starargs.<locals>.ICurrent.methodh  rB   r   NrC   r   r   r   r&   r   f  rs   r   r&   c                       e Zd Zd Zy)ATest_verifyClass.test_method_takes_only_starargs.<locals>.Currentc                     t               r   rQ   r   s     r   rA   zHTest_verifyClass.test_method_takes_only_starargs.<locals>.Current.methodn  rS   r   NrC   r   r   r   r*   r   k  rT   r   r*   rU   rV   s        r   test_method_takes_only_starargsz0Test_verifyClass.test_method_takes_only_starargsb  r   r   c                     ddl m} ddl m}  G d d|      } ||       G d d             }| j                  ||       y )Nr   r   r8   c                       e Zd Zd Zy)DTest_verifyClass.test_method_takes_required_kwargs.<locals>.ICurrentc                       yr?   r   r   s    r   rA   zKTest_verifyClass.test_method_takes_required_kwargs.<locals>.ICurrent.methody  rB   r   NrC   r   r   r   r&   r   w  rs   r   r&   c                       e Zd Zd Zy)CTest_verifyClass.test_method_takes_required_kwargs.<locals>.Currentc                     t               r   rQ   r   s     r   rA   zJTest_verifyClass.test_method_takes_required_kwargs.<locals>.Current.method  rS   r   NrC   r   r   r   r*   r   |  rT   r   r*   rU   rV   s        r   !test_method_takes_required_kwargsz2Test_verifyClass.test_method_takes_required_kwargss  r   r   c                     ddl m} ddl m} ddlm}  G d d|      } ||       G d d             }| j                  || j                  ||       y )	Nr   r   r8   rz   c                       e Zd Zd Zy)VTest_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.ICurrentc                       yr?   r   r   s    r   rA   z]Test_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.ICurrent.method  rB   r   NrC   r   r   r   r&   r     rs   r   r&   c                       e Zd Zd Zy)UTest_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.Currentc                     t               r   rQ   r   s      r   rA   z\Test_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.Current.method  rS   r   NrC   r   r   r   r*   r     rT   r   r*   r   r   s         r   3test_method_takes_positional_plus_required_starargszDTest_verifyClass.test_method_takes_positional_plus_required_starargs  r   r   c                     ddl m} ddl m} ddlm}  G d d|      } ||       G d d             }| j                  || j                  ||       y )	Nr   r   r8   rz   c                       e Zd Zd Zy)JTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.ICurrentc                       yr?   r   r   s    r   rA   zQTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.ICurrent.method  rB   r   NrC   r   r   r   r&   r     rs   r   r&   c                       e Zd Zd Zy)ITest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.Currentc                     t               r   rQ   r   s     r   rA   zPTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.Current.method  rS   r   NrC   r   r   r   r*   r     rT   r   r*   r   r   s         r   'test_method_doesnt_take_required_kwargsz8Test_verifyClass.test_method_doesnt_take_required_kwargs  r   r   c                     ddl m ddl m} ddl m}  G fdd|      } ||       G d d             }| j	                  ||       y )	Nr   	Attributer   r8   c                        e Zd Z W  d      Zy)GTest_verifyClass.test_class_has_method_for_iface_attr.<locals>.ICurrentThe foo AttributeNr#   r$   r%   attrr  s   r   r&   r        01Dr   r&   c                       e Zd Zd Zy)FTest_verifyClass.test_class_has_method_for_iface_attr.<locals>.Currentc                     t               r   rQ   r	   s    r   r  zKTest_verifyClass.test_class_has_method_for_iface_attr.<locals>.Current.attr  rS   r   Nr  r   r   r   r*   r    rT   r   r*   r+   r  r   r9   r   r
   r   r9   r&   r*   r  s        @r   $test_class_has_method_for_iface_attrz5Test_verifyClass.test_class_has_method_for_iface_attr  sF    ,,.	2y 	2 
X		, 	, 
	,
 	h(r   c                     ddl m} ddl m} ddlm}  G d d|      } ||       G d d             }| j                  || j                  ||       y )	Nr   r   r8   rz   c                       e Zd Zd Zy)FTest_verifyClass.test_class_has_nonmethod_for_method.<locals>.ICurrentc                       yr?   r   r   r   r   rA   zMTest_verifyClass.test_class_has_nonmethod_for_method.<locals>.ICurrent.method  rB   r   NrC   r   r   r   r&   r    rD   r   r&   c                       e Zd ZdZy)ETest_verifyClass.test_class_has_nonmethod_for_method.<locals>.Current   NrC   r   r   r   r*   r    s    Fr   r*   r   r   s         r   #test_class_has_nonmethod_for_methodz4Test_verifyClass.test_class_has_nonmethod_for_method  sS    ,.H	 y 	  
X		 	 
	 	4--7	<r   c                     ddl m ddl m} ddl m}  G fdd|      } ||       G d d             }| j	                  ||       y )	Nr   r  r   r8   c                        e Zd Z W  d      Zy)ITest_verifyClass.test_class_has_attribute_for_attribute.<locals>.ICurrentr  Nr  r  s   r   r&   r    r	  r   r&   c                       e Zd ZdZy)HTest_verifyClass.test_class_has_attribute_for_attribute.<locals>.Currentr  Nr  r   r   r   r*   r    s	     Dr   r*   r  r  s        @r   &test_class_has_attribute_for_attributez7Test_verifyClass.test_class_has_attribute_for_attribute  sF    ,,.	2y 	2 
X		 	 
	 	h(r   c                     ddl m ddl m} ddl m}  G fdd|      } ||       G d d             }| j	                  ||       y )	Nr   r  r   r8   c                        e Zd Z W  d      Zy)LTest_verifyClass.test_class_misses_attribute_for_attribute.<locals>.ICurrentr  Nr  r  s   r   r&   r     r	  r   r&   c                       e Zd Zy)KTest_verifyClass.test_class_misses_attribute_for_attribute.<locals>.CurrentNr"   r   r   r   r*   r"    rG   r   r*   r  r  s        @r   )test_class_misses_attribute_for_attributez:Test_verifyClass.test_class_misses_attribute_for_attribute  sF    ,,.	2y 	2 
X		 	 
	 	h(r   c                     ddl m} ddl m} ddlm}  G d d|       G d d       G fd	d
|      } ||       G fdd             }| j                  ||       y )Nr   r   r8   )Methodc                       e Zd Zd Zy)ETest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiMethodc                     t               r   rQ   r
   r   r   s      r   __call__zNTest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiMethod.__call__  rS   r   Nr#   r$   r%   r*  r   r   r   QuasiMethodr'        ,r   r,  c                       e Zd Zd Zy)GTest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiCallablec                     t               r   rQ   r)  s      r   r*  zPTest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiCallable.__call__  rS   r   Nr+  r   r   r   QuasiCallabler/    r-  r   r1  c                        e Zd Z W  d      Zy)BTest_verifyClass.test_w_callable_non_func_method.<locals>.ICurrentzThis is callableNr  )r,  s   r   r&   r3    s    12Dr   r&   c                       e Zd Z W         Zy)ATest_verifyClass.test_w_callable_non_func_method.<locals>.CurrentNr  )r1  s   r   r*   r5    s
     ?Dr   r*   )r+   r   r9   zope.interface.interfacer%  r   )r
   r   r9   r%  r&   r*   r1  r,  s         @@r   test_w_callable_non_func_methodz0Test_verifyClass.test_w_callable_non_func_method  s\    ,.3	,& 	,	, 	,	3y 	3 
X		# 	# 
	# 	h(r   c                     ddl m} ddl m} d  G d d|      } ||       G fdd             }| j                  ||       y )	Nr   r   r8   c                       t         fd      S )Nc                 &    j                  |       S r   )__get__)r
   funcs    r   <lambda>zMTest_verifyClass.test_w_decorated_method.<locals>.decorator.<locals>.<lambda>  s    d); r   )property)r<  s   `r   	decoratorz;Test_verifyClass.test_w_decorated_method.<locals>.decorator  s    ;<<r   c                       e Zd Zd Zy):Test_verifyClass.test_w_decorated_method.<locals>.ICurrentc                      yr?   r   rq   s    r   rA   zATest_verifyClass.test_w_decorated_method.<locals>.ICurrent.method  rB   r   NrC   r   r   r   r&   rA    rs   r   r&   c                        e Zd ZW  d        Zy)9Test_verifyClass.test_w_decorated_method.<locals>.Currentc                     t               r   rQ   r   s     r   rA   z@Test_verifyClass.test_w_decorated_method.<locals>.Current.method  s    )++r   NrC   )r?  s   r   r*   rD    s     , ,r   r*   rU   )r
   r   r9   r&   r*   r?  s        @r   test_w_decorated_methodz(Test_verifyClass.test_w_decorated_method  sH    ,.	=	 y 	 
 
X		, 	, 
	, 	h(r   c                 @    ddl m} | j                  |t        d       y )Nr   )IFullMappingT	tentative)zope.interface.common.mappingrH  r   dict)r
   rH  s     r   test_dict_IFullMappingz'Test_verifyClass.test_dict_IFullMapping  s     	?lDD9r   c                 @    ddl m} | j                  |t        d       y )Nr   )	ISequenceTrI  )zope.interface.common.sequencerO  r   list)r
   rO  s     r   test_list_ISequencez$Test_verifyClass.test_list_ISequence  s    <i6r   c                 @    ddl m} | j                  |t        d       y )Nr   )IReadSequenceTrI  )rP  rT  r   tuple)r
   rT  s     r   test_tuple_IReadSequencez)Test_verifyClass.test_tuple_IReadSequence#  s    @mUd;r   c                    ddl m} ddl m} ddlm} ddlm} ddlm}  G d d|      } G d	 d
      }| j                  |      5 }| j                  ||       d d d        j                  }	| j                  dt        |	j                               | j                  |	j                  d   |       | j                  |	j                  d   |       | j                  |	j                  d   |        |||       d |_        | j                  |      5  | j                  ||       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r   r0   r:   r   )MultipleInvalidc                       e Zd Zd Zd Zy)?Test_verifyClass.test_multiple_invalid.<locals>.ISeveralMethodsc                      y)zMethod 1Nr   arg1s    r   meth1zETest_verifyClass.test_multiple_invalid.<locals>.ISeveralMethods.meth10  rB   r   c                      y)zMethod 2Nr   r\  s    r   meth2zETest_verifyClass.test_multiple_invalid.<locals>.ISeveralMethods.meth22  rB   r   N)r#   r$   r%   r^  r`  r   r   r   ISeveralMethodsrZ  /  s    r   ra  c                       e Zd Zy)>Test_verifyClass.test_multiple_invalid.<locals>.SeveralMethodsNr"   r   r   r   SeveralMethodsrc  5  r'   r   rd     r     c                      y)NHir   )r
   r]  s     r   r=  z8Test_verifyClass.test_multiple_invalid.<locals>.<lambda>D  rB   r   )r+   r   r1   r,   r;   r   rX  r-   r   	exceptionassertEquallen
exceptionsassertIsInstancer^  )
r
   r   r1   r;   r   rX  ra  rd  excexs
             r   test_multiple_invalidz&Test_verifyClass.test_multiple_invalid(  s   ,2B>=	i 		 	 / 	;3MM/>:	; ]]C./bmmA.0@AbmmA.0DEbmmA.0DE 	8634 	;MM/>:	; 	;	; 	;	; 	;s   D,D8,D58E))r#   r$   r%   r   r   classmethodr   r   r   r.   r6   rI   rW   rb   rl   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r#  r7  rF  rM  rR  rV  rp  r   r   r   r   r      s    H(  '

N)< ) <&)&)$<&<&<&<&)")"<&)")"<&)")")"<&<&) < ))),),:7
<
;r   r   c                   :    e Zd Zed        Zd Zd Zd Zd Zd Z	y)Test_verifyObjectc                     ddl m} |S )Nr   verifyObject)r   rv  )r   rv  s     r   r   zTest_verifyObject._get_FUTL  s    6r   c                 R    t        |t        t        t              f      r |       }|S r   )
isinstancetypeOldSkool)r
   targets     r   r   z.Test_verifyObject._adjust_object_before_verifyQ  s!    ftT(^45XFr   c                     ddl m ddl m} ddl m} ddlm}  G fdd|      } ||       G d d	             }| j                  || j                  ||       y )
Nr   r  r   r8   r:   c                        e Zd Z W  d      Zy)MTest_verifyObject.test_class_misses_attribute_for_attribute.<locals>.ICurrentr  Nr  r  s   r   r&   r~  ]  r	  r   r&   c                       e Zd Zy)LTest_verifyObject.test_class_misses_attribute_for_attribute.<locals>.CurrentNr"   r   r   r   r*   r  `  rG   r   r*   )r+   r  r   r9   r,   r;   r-   r   )r
   r   r9   r;   r&   r*   r  s         @r   r#  z;Test_verifyObject.test_class_misses_attribute_for_attributeV  sW    ,,.B	2y 	2 
X		 	 
	 	.--7	<r   c                 @    ddl m} ddlm} | j	                  ||       y )Nr   dummy)IDummyModule)zope.interface.testsr  zope.interface.tests.idummyr  r   )r
   r  r  s      r   test_module_hitz!Test_verifyObject.test_module_hitg  s    .<lE*r   c                 z    ddl m} ddlm} ddlm}  G d d|      }| j                  || j                  ||       y )Nr   r   r   r  c                       e Zd Zy)8Test_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  s        r   test_module_missz"Test_verifyObject.test_module_missm  s5    ,>.	9 	 	*--u	>r   c                 z    ddl m} ddl m} ddlm}  G d d|      } ||       G d d             } |||       y )	Nr   r   )providerru  c                       e Zd Zd Zy)>Test_verifyObject.test_staticmethod_hit_on_class.<locals>.IFooc                      y)zThe bar methodNr   rr   rw   s     r   barzBTest_verifyObject.test_staticmethod_hit_on_class.<locals>.IFoo.bar  rB   r   N)r#   r$   r%   r  r   r   r   IFoor  ~  s    !r   r  c                       e Zd Zed        Zy)=Test_verifyObject.test_staticmethod_hit_on_class.<locals>.Fooc                     t        d      )NzWe're never actually called)AssertionErrorr  s     r   r  zATest_verifyObject.test_staticmethod_hit_on_class.<locals>.Foo.bar  s    $%BCCr   N)r#   r$   r%   staticmethodr  r   r   r   Foor    s     D Dr   r  )r+   r   r  r   rv  )r
   r   r  rv  r  r  s         r   test_staticmethod_hit_on_classz0Test_verifyObject.test_staticmethod_hit_on_classy  sC    ,+6	!9 	!
 
$	D 	D 
	D 	T3r   N)
r#   r$   r%   rq  r   r   r#  r  r  r  r   r   r   rs  rs  J  s-     
<"+
> r   rs  c                       e Zd Zy)rz  Nr"   r   r   r   rz  rz    s    r   rz  )__doc__unittestTestCaser   rs  rz  r   r   r   <module>r     s<    
r;x(( r;jB ( B J	 	r   