
    eJ                     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    B/usr/lib/python3/dist-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   <lambda>zTest_verifyClass.<lambda>    s    1 r   c                 H     | j                   || j                  |      fi |S r   )r   _adjust_object_before_verify)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*   .   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'   r4   7   r(   r   r'   c                       e Zd Zy)WTest_verifyClass.test_class_doesnt_implement_but_classImplements_later.<locals>.CurrentNr#   r   r   r   r+   r6   :   r(   r   r+   )r,   r   r2   r   )r
   r   r2   r'   r+   s        r   5test_class_doesnt_implement_but_classImplements_laterzFTest_verifyClass.test_class_doesnt_implement_but_classImplements_later3   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.methodG       r   Nr$   r%   r&   rB   r   r   r   r'   r>   F        r   r'   c                       e Zd Zy)OTest_verifyClass.test_class_doesnt_have_required_method_simple.<locals>.CurrentNr#   r   r   r   r+   rG   J       r   r+   r,   r   r:   r-   r<   r.   r   )r
   r   r:   r<   r'   r+   s         r   -test_class_doesnt_have_required_method_simplez>Test_verifyClass.test_class_doesnt_have_required_method_simpleA   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   r9   c                       e Zd Zd Zy)HTest_verifyClass.test_class_has_required_method_simple.<locals>.ICurrentc                       yr@   r   r   r   r   rB   zOTest_verifyClass.test_class_has_required_method_simple.<locals>.ICurrent.methodV   rC   r   NrD   r   r   r   r'   rM   U   rE   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   rB   zNTest_verifyClass.test_class_has_required_method_simple.<locals>.Current.method\       )++r   NrD   r   r   r   r+   rP   Y       ,r   r+   r,   r   r:   r   r
   r   r:   r'   r+   s        r   %test_class_has_required_method_simplez6Test_verifyClass.test_class_has_required_method_simpleQ   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   r9   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   rB   zUTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IBase.methodg   rC   r   NrD   r   r   r   IBaser[   f   rE   r   r]   c                       e Zd Zy)QTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.IDerivedNr#   r   r   r   IDerivedr_   j   r(   r   r`   c                       e Zd Zy)PTest_verifyClass.test_class_doesnt_have_required_method_derived.<locals>.CurrentNr#   r   r   r   r+   rb   m   rH   r   r+   rI   )r
   r   r:   r<   r]   r`   r+   s          r   .test_class_doesnt_have_required_method_derivedz?Test_verifyClass.test_class_doesnt_have_required_method_deriveda   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   r9   c                       e Zd Zd Zy)FTest_verifyClass.test_class_has_required_method_derived.<locals>.IBasec                       yr@   r   r   r   r   rB   zMTest_verifyClass.test_class_has_required_method_derived.<locals>.IBase.methody   rC   r   NrD   r   r   r   r]   rf   x   rE   r   r]   c                       e Zd Zy)ITest_verifyClass.test_class_has_required_method_derived.<locals>.IDerivedNr#   r   r   r   r`   ri   |   r(   r   r`   c                       e Zd Zd Zy)HTest_verifyClass.test_class_has_required_method_derived.<locals>.Currentc                     t               r   rR   r	   s    r   rB   zOTest_verifyClass.test_class_has_required_method_derived.<locals>.Current.method   rT   r   NrD   r   r   r   r+   rk      rU   r   r+   rV   )r
   r   r:   r]   r`   r+   s         r   &test_class_has_required_method_derivedz7Test_verifyClass.test_class_has_required_method_derivedt   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   r9   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   rB   zRTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.ICurrent.method   rC   r   NrD   r   r   r   r'   rp           r   r'   c                       e Zd Zd Zy)JTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.Currentc                     t               r   rR   )r
   bs     r   rB   zQTest_verifyClass.test_method_takes_wrong_arg_names_but_OK.<locals>.Current.method   rT   r   NrD   r   r   r   r+   rv      rU   r   r+   rV   rW   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   r9   BrokenMethodImplementationc                       e Zd Zd Zy)DTest_verifyClass.test_method_takes_not_enough_args.<locals>.ICurrentc                      yr@   r   rr   s    r   rB   zKTest_verifyClass.test_method_takes_not_enough_args.<locals>.ICurrent.method   rC   r   NrD   r   r   r   r'   r~      rt   r   r'   c                       e Zd Zd Zy)CTest_verifyClass.test_method_takes_not_enough_args.<locals>.Currentc                     t               r   rR   r	   s    r   rB   zJTest_verifyClass.test_method_takes_not_enough_args.<locals>.Current.method   rT   r   NrD   r   r   r   r+   r      rU   r   r+   r,   r   r:   r-   r|   r.   r   r
   r   r:   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   r9   r{   c                       e Zd Zd Zy)LTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.ICurrentc                       yr@   r   argss    r   rB   zSTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.ICurrent.method   rC   r   NrD   r   r   r   r'   r      rt   r   r'   c                       e Zd Zd Zy)KTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.Currentc                     t               r   rR   r	   s    r   rB   zRTest_verifyClass.test_method_doesnt_take_required_starargs.<locals>.Current.method   rT   r   NrD   r   r   r   r+   r      rU   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   r9   r{   c                       e Zd Zd Zy)OTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.ICurrentc                       yr@   r   )kws    r   rB   zVTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.ICurrent.method   rC   r   NrD   r   r   r   r'   r      rt   r   r'   c                       e Zd Zd Zy)NTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.Currentc                     t               r   rR   r	   s    r   rB   zUTest_verifyClass.test_method_doesnt_take_required_only_kwargs.<locals>.Current.method   rT   r   NrD   r   r   r   r+   r      rU   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   r9   r{   c                       e Zd Zd Zy)>Test_verifyClass.test_method_takes_extra_arg.<locals>.ICurrentc                      yr@   r   rr   s    r   rB   zETest_verifyClass.test_method_takes_extra_arg.<locals>.ICurrent.method   rC   r   NrD   r   r   r   r'   r      rt   r   r'   c                       e Zd Zd Zy)=Test_verifyClass.test_method_takes_extra_arg.<locals>.Currentc                     t               r   rR   r
   rs   rx   s      r   rB   zDTest_verifyClass.test_method_takes_extra_arg.<locals>.Current.method   rT   r   NrD   r   r   r   r+   r      rU   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   r9   c                       e Zd Zd Zy)KTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.ICurrentc                      yr@   r   rr   s    r   rB   zRTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.ICurrent.method   rC   r   NrD   r   r   r   r'   r      rt   r   r'   c                       e Zd ZddZy)JTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.CurrentNc                     t               r   rR   r   s      r   rB   zQTest_verifyClass.test_method_takes_extra_arg_with_default.<locals>.Current.method   rT   r   r   rD   r   r   r   r+   r      s    ,r   r+   rV   rW   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   r9   c                       e Zd Zd Zy)ITest_verifyClass.test_method_takes_only_positional_args.<locals>.ICurrentc                      yr@   r   rr   s    r   rB   zPTest_verifyClass.test_method_takes_only_positional_args.<locals>.ICurrent.method   rC   r   NrD   r   r   r   r'   r      rt   r   r'   c                       e Zd Zd Zy)HTest_verifyClass.test_method_takes_only_positional_args.<locals>.Currentc                     t               r   rR   r
   r   s     r   rB   zOTest_verifyClass.test_method_takes_only_positional_args.<locals>.Current.method  rT   r   NrD   r   r   r   r+   r      rU   r   r+   rV   rW   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   r9   r{   c                       e Zd Zd Zy)@Test_verifyClass.test_method_takes_only_kwargs.<locals>.ICurrentc                      yr@   r   rr   s    r   rB   zGTest_verifyClass.test_method_takes_only_kwargs.<locals>.ICurrent.method  rC   r   NrD   r   r   r   r'   r     rt   r   r'   c                       e Zd Zd Zy)?Test_verifyClass.test_method_takes_only_kwargs.<locals>.Currentc                     t               r   rR   r
   r   s     r   rB   zFTest_verifyClass.test_method_takes_only_kwargs.<locals>.Current.method  rT   r   NrD   r   r   r   r+   r     rU   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   r9   c                       e Zd Zd Zy)CTest_verifyClass.test_method_takes_extra_starargs.<locals>.ICurrentc                      yr@   r   rr   s    r   rB   zJTest_verifyClass.test_method_takes_extra_starargs.<locals>.ICurrent.method   rC   r   NrD   r   r   r   r'   r     rt   r   r'   c                       e Zd Zd Zy)BTest_verifyClass.test_method_takes_extra_starargs.<locals>.Currentc                     t               r   rR   r
   rs   r   s      r   rB   zITest_verifyClass.test_method_takes_extra_starargs.<locals>.Current.method&  rT   r   NrD   r   r   r   r+   r   #  rU   r   r+   rV   rW   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   r9   c                       e Zd Zd Zy)NTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.ICurrentc                      yr@   r   rr   s    r   rB   zUTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.ICurrent.method1  rC   r   NrD   r   r   r   r'   r   /  rt   r   r'   c                       e Zd Zd Zy)MTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.Currentc                     t               r   rR   )r
   rs   r   r   s       r   rB   zTTest_verifyClass.test_method_takes_extra_starargs_and_kwargs.<locals>.Current.method7  rT   r   NrD   r   r   r   r+   r   4  rU   r   r+   rV   rW   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   r9   r{   c                       e Zd Zd Zy)[Test_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.ICurrentc                      yr@   r   rs   r   s     r   rB   zbTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.ICurrent.methodC  rC   r   NrD   r   r   r   r'   r   A  rt   r   r'   c                       e Zd Zd Zy)ZTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.Currentc                     t               r   rR   r
   rs   s     r   rB   zaTest_verifyClass.test_method_doesnt_take_required_positional_and_starargs.<locals>.Current.methodI  rT   r   NrD   r   r   r   r+   r   F  rU   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   r9   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   rB   z\Test_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.ICurrent.methodU  rC   r   NrD   r   r   r   r'   r   S  rt   r   r'   c                       e Zd Zd Zy)TTest_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.Currentc                     t               r   rR   r   s      r   rB   z[Test_verifyClass.test_method_takes_required_positional_and_starargs.<locals>.Current.method[  rT   r   NrD   r   r   r   r+   r   X  rU   r   r+   rV   rW   s        r   2test_method_takes_required_positional_and_starargszCTest_verifyClass.test_method_takes_required_positional_and_starargsO  r   r   c                     ddl m} ddl m}  G d d|      } ||       G d d             }| j                  ||       y )Nr   r   r9   c                       e Zd Zd Zy)BTest_verifyClass.test_method_takes_only_starargs.<locals>.ICurrentc                      yr@   r   r   s     r   rB   zITest_verifyClass.test_method_takes_only_starargs.<locals>.ICurrent.methodf  rC   r   NrD   r   r   r   r'   r   d  rt   r   r'   c                       e Zd Zd Zy)ATest_verifyClass.test_method_takes_only_starargs.<locals>.Currentc                     t               r   rR   r   s     r   rB   zHTest_verifyClass.test_method_takes_only_starargs.<locals>.Current.methodl  rT   r   NrD   r   r   r   r+   r   i  rU   r   r+   rV   rW   s        r   test_method_takes_only_starargsz0Test_verifyClass.test_method_takes_only_starargs`  r   r   c                     ddl m} ddl m}  G d d|      } ||       G d d             }| j                  ||       y )Nr   r   r9   c                       e Zd Zd Zy)DTest_verifyClass.test_method_takes_required_kwargs.<locals>.ICurrentc                       yr@   r   r   s    r   rB   zKTest_verifyClass.test_method_takes_required_kwargs.<locals>.ICurrent.methodw  rC   r   NrD   r   r   r   r'   r   u  rt   r   r'   c                       e Zd Zd Zy)CTest_verifyClass.test_method_takes_required_kwargs.<locals>.Currentc                     t               r   rR   r   s     r   rB   zJTest_verifyClass.test_method_takes_required_kwargs.<locals>.Current.method}  rT   r   NrD   r   r   r   r+   r   z  rU   r   r+   rV   rW   s        r   !test_method_takes_required_kwargsz2Test_verifyClass.test_method_takes_required_kwargsq  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   r9   r{   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   rB   z]Test_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.ICurrent.method  rC   r   NrD   r   r   r   r'   r     rt   r   r'   c                       e Zd Zd Zy)UTest_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.Currentc                     t               r   rR   r   s      r   rB   z\Test_verifyClass.test_method_takes_positional_plus_required_starargs.<locals>.Current.method  rT   r   NrD   r   r   r   r+   r     rU   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   r9   r{   c                       e Zd Zd Zy)JTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.ICurrentc                       yr@   r   r   s    r   rB   zQTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.ICurrent.method  rC   r   NrD   r   r   r   r'   r     rt   r   r'   c                       e Zd Zd Zy)ITest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.Currentc                     t               r   rR   r   s     r   rB   zPTest_verifyClass.test_method_doesnt_take_required_kwargs.<locals>.Current.method  rT   r   NrD   r   r   r   r+   r     rU   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   r9   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   rR   r	   s    r   r	  zKTest_verifyClass.test_class_has_method_for_iface_attr.<locals>.Current.attr  rT   r   Nr  r   r   r   r+   r    rU   r   r+   r,   r  r   r:   r   r
   r   r:   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   r9   r{   c                       e Zd Zd Zy)FTest_verifyClass.test_class_has_nonmethod_for_method.<locals>.ICurrentc                       yr@   r   r   r   r   rB   zMTest_verifyClass.test_class_has_nonmethod_for_method.<locals>.ICurrent.method  rC   r   NrD   r   r   r   r'   r    rE   r   r'   c                       e Zd ZdZy)ETest_verifyClass.test_class_has_nonmethod_for_method.<locals>.Current   NrD   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   r9   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   r9   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#    rH   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   )Methodr   r9   c                       e Zd Zd Zy)ETest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiMethodc                     t               r   rR   r
   r   r   s      r   __call__zNTest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiMethod.__call__  rT   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   rR   r*  s      r   r+  zPTest_verifyClass.test_w_callable_non_func_method.<locals>.QuasiCallable.__call__  rT   r   Nr,  r   r   r   QuasiCallabler0    r.  r   r2  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'   r4    s    12Dr   r'   c                       e Zd Z W         Zy)ATest_verifyClass.test_w_callable_non_func_method.<locals>.CurrentNr  )r2  s   r   r+   r6    s
     ?Dr   r+   )zope.interface.interfacer&  r,   r   r:   r   )r
   r&  r   r:   r'   r+   r2  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   r9   c                       t         fd      S )Nc                 &    j                  |       S r   )__get__)r
   funcs    r   r   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   rr   s    r   rB   zATest_verifyClass.test_w_decorated_method.<locals>.ICurrent.method	  rC   r   NrD   r   r   r   r'   rA    rt   r   r'   c                        e Zd ZW  d        Zy)9Test_verifyClass.test_w_decorated_method.<locals>.Currentc                     t               r   rR   r   s     r   rB   z@Test_verifyClass.test_w_decorated_method.<locals>.Current.method  s    )++r   NrD   )r?  s   r   r+   rD    s     , ,r   r+   rV   )r
   r   r:   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   )MultipleInvalidr   r;   r   r1   c                       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.meth12  rC   r   c                      y)zMethod 2Nr   r\  s    r   meth2zETest_verifyClass.test_multiple_invalid.<locals>.ISeveralMethods.meth24  rC   r   N)r$   r%   r&   r^  r`  r   r   r   ISeveralMethodsrZ  1  s    r   ra  c                       e Zd Zy)>Test_verifyClass.test_multiple_invalid.<locals>.SeveralMethodsNr#   r   r   r   SeveralMethodsrc  7  r(   r   rd     r     c                      y)NHir   )r
   r]  s     r   r   z8Test_verifyClass.test_multiple_invalid.<locals>.<lambda>F  rC   r   )r-   rX  r    r<   r,   r   r2   r.   r   	exceptionassertEquallen
exceptionsassertIsInstancer^  )
r
   rX  r    r<   r   r2   ra  rd  excexs
             r   test_multiple_invalidz&Test_verifyClass.test_multiple_invalid*  s   =>B,2	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/   r7   rJ   rX   rc   rm   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r$  r8  rF  rM  rR  rV  rp  r   r   r   r   r      s    H(   $5 '

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_FUTM  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_verifyR  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   r9   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  a  rH   r   r+   )r,   r  r   r:   r-   r<   r.   r   )r
   r   r:   r<   r'   r+   r  s         @r   r$  z;Test_verifyObject.test_class_misses_attribute_for_attributeW  sW    ,,.B	2y 	2 
X		 	 
	 	.--7	<r   c                 @    ddl m} ddlm} | j	                  ||       y )Nr   )IDummyModuledummy)zope.interface.tests.idummyr  zope.interface.testsr  r   )r
   r  r  s      r   test_module_hitz!Test_verifyObject.test_module_hith  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  t  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_missn  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   rs   rx   s     r   barzBTest_verifyObject.test_staticmethod_hit_on_class.<locals>.IFoo.bar  rC   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_classz  sC    ,+6	!9 	!
 
$	D 	D 
	D 	T3r   N)
r$   r%   r&   rq  r   r   r$  r  r  r  r   r   r   rs  rs  K  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<    u;x(( u;nB ( B H	 	r   