
    Og                         d Z ddlZd Zd Zd Z G d de      Z G d d	e      Z G d
 deej                        Z	 G d deej                        Z
 G d dee	      Z G d dee
      Zd Zy)z$Test the hookable support Extension
    Nc                       yNFOO r       \/var/www/djangounited/venv/lib/python3.12/site-packages/zope/hookable/tests/test_hookable.py
return_foor	          r   c                       yNBARr   r   r   r   
return_barr      r
   r   c                      t        d      )NzThis should not be called)AssertionErrorr   r   r   
not_calledr      s    
4
55r   c                       e Zd Zd Zy)PyHookableMixinc                     ddl m}  ||i |S )Nr   )_py_hookable)zope.hookabler   )selfargskwr   s       r   _callFUTzPyHookableMixin._callFUT!   s    .T(R((r   N__name__
__module____qualname__r   r   r   r   r   r      s    )r   r   c                       e Zd Zd Zy)HookableMixinc                 T    ddl m}m} ||u rt        j                  d       ||i |S )Nr   )hookabler   z$Hookable and PyHookable are the same)r   r"   r   unittestSkipTest)r   r   r   r"   r   s        r   r   zHookableMixin._callFUT(   s/    8|###$JKK$$$r   Nr   r   r   r   r    r    &   s    %r   r    c                   N    e 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)PyHookableTestsc                 Z    ddl m}m} ddl m}m} | j                  ||r|       y |       y )Nr   )_PURE_PYTHONr"   )r   _c_hookable)r   r(   r"   r   r)   assertIs)r   r(   r"   r   r)   s        r   test_pure_pythonz PyHookableTests.test_pure_python2   s    8;hN+Nr   c                     | j                  t              }| j                  |j                  t               | j                  |j                  t               | j                   |       d       y r   r   r	   r*   originalimplementationassertEqualr   hookeds     r   test_before_hookz PyHookableTests.test_before_hook7   sH    z*fooz2f++Z85)r   c                 2   | j                  t              }|j                  t              }| j	                  |t               | j	                  |j
                  t               | j	                  |j                  t               | j                   |       d       y r   )r   r   sethookr   r*   r.   r/   r0   r   r2   olds      r   test_after_hookzPyHookableTests.test_after_hook=   sd    z*nnZ(c:&fooz2f++Z85)r   c                 R   | j                  t              }|j                  t              }|j	                          | j                  |t               | j                  |j                  t               | j                  |j                  t               | j                   |       d       y r   )	r   r	   r5   r   resetr*   r.   r/   r0   r6   s      r   test_after_hook_and_resetz)PyHookableTests.test_after_hook_and_resetE   sm    z*nnZ(c:&fooz2f++Z85)r   c                     | j                  t              }| j                  t        t        f      5  |`d d d        y # 1 sw Y   y xY wN)r   r   assertRaises	TypeErrorAttributeErrorr.   r1   s     r   test_original_cannot_be_deletedz/PyHookableTests.test_original_cannot_be_deletedN   s=    z*	>:; 	 	  	  	 	   =Ac                     | j                  t              }| j                  t        t        f      5  |`d d d        y # 1 sw Y   y xY wr=   )r   r   r>   r?   r@   r/   r1   s     r   %test_implementation_cannot_be_deletedz5PyHookableTests.test_implementation_cannot_be_deletedS   s>    z*	>:; 	&%	& 	& 	&rB   c                 x    | j                  t              5  | j                          d d d        y # 1 sw Y   y xY wr=   r>   r?   r   r   s    r   test_no_argszPyHookableTests.test_no_argsX   s.    y) 	MMO	 	 	s   09c                     | j                  t              5  | j                  t        t               d d d        y # 1 sw Y   y xY wr=   )r>   r?   r   r   rG   s    r   test_too_many_argsz"PyHookableTests.test_too_many_args\   s3    y) 	2MM*j1	2 	2 	2s	   :Ac                     | j                  t              }| j                  |j                  t               | j                  |j                  t               | j                   |       d       y )N)r/   r   r-   r1   s     r   test_w_implementation_kwargz+PyHookableTests.test_w_implementation_kwarg`   sJ    j9fooz2f++Z85)r   c                 |    | j                  t              5  | j                  d       d d d        y # 1 sw Y   y xY w)N*   )nonesuchrF   rG   s    r   test_w_unknown_kwargz$PyHookableTests.test_w_unknown_kwargf   s3    y) 	'MM2M&	' 	' 	's   2;c                      G d dt               }| j                  |      }| j                   |       |       |j                  t               | j                   |       d       y )Nc                       e Zd Zy)%PyHookableTests.test_class.<locals>.CNr   r   r   r   r   r   CrS   k       r   rU   r   )objectr   assertIsInstancer5   r   r0   r   rU   r2   s      r   
test_classzPyHookableTests.test_classj   sN    	 	 q!fh*z"5)r   N)r   r   r   r+   r3   r8   r;   rA   rD   rH   rJ   rL   rP   rZ   r   r   r   r&   r&   /   s:    O
*** 
&
2*'*r   r&   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestIssue6Pyc                     | j                  d|j                         | j                  |      }| j                  |j                  |j                         y )NI have some docs)r0   __doc__r   )r   docsr2   s      r   _check_preserves_docz!TestIssue6Py._check_preserves_doc}   s=    +T\\:t$6r   c                 ,    d }| j                  |       y )Nc                       y)r^   Nr   r   r   r   r`   z6TestIssue6Py.test_preserves_doc_function.<locals>.docs   s    r   )ra   )r   r`   s     r   test_preserves_doc_functionz(TestIssue6Py.test_preserves_doc_function   s    	#!!$'r   c                 D     G d dt               }| j                  |       y )Nc                       e Zd ZdZy)3TestIssue6Py.test_preserves_doc_class.<locals>.Docsr^   N)r   r   r   r_   r   r   r   Docsrg      s    "r   rh   )rW   ra   )r   rh   s     r   test_preserves_doc_classz%TestIssue6Py.test_preserves_doc_class   s    	#6 	# 	!!$'r   c                 f    | j                  t              }| j                  d|j                         y )Nr   )r   r	   r0   	__bases__r1   s     r   test_empty_bases_functionz&TestIssue6Py.test_empty_bases_function   s&    z*V--.r   c                 f    | j                  t              }| j                  i |j                         y r=   )r   r	   r0   __dict__r1   s     r   test_empty_dict_functionz%TestIssue6Py.test_empty_dict_function   s$    z*V__-r   c                      G d dt               }| j                  |j                  t         f       | j                  |      }| j                  |j                  t         f       y )Nc                       e Zd Zy)(TestIssue6Py.test_bases_class.<locals>.CNrT   r   r   r   rU   rr      rV   r   rU   )rW   r0   rk   r   rY   s      r   test_bases_classzTestIssue6Py.test_bases_class   sJ    	 	vi0q!))F95r   c                      G d dt               }| j                  |      }| j                  |j                  |j                         y )Nc                       e Zd Zy)'TestIssue6Py.test_dict_class.<locals>.CNrT   r   r   r   rU   rv      rV   r   rU   )rW   r   r0   rn   rY   s      r   test_dict_classzTestIssue6Py.test_dict_class   s6    	 	 q!!**5r   c                    | j                  t              }| j                  t              5  t	        |d       d d d        | j                  t              5  |j                  d       d d d        y # 1 sw Y   9xY w# 1 sw Y   y xY w)NrN   )r   r	   r>   r?   getattr__getattribute__r1   s     r   test_non_string_attr_namez&TestIssue6Py.test_non_string_attr_name   su    z*y) 	 FB	  y) 	(##B'	( 	(	  	 	( 	(s   A0A<0A9<Bc                 t    | j                  t              }|j                  d      }| j                  |d       y )Nrk   r   )r   r	   rz   r0   )r   r2   results      r   test_unicode_attribute_namez(TestIssue6Py.test_unicode_attribute_name   s0    z*((6$r   c                     | j                  t              }| j                  t              5  |j	                  d       d d d        y # 1 sw Y   y xY w)N )r   r	   r>   r@   rz   r1   s     r   test_short_namezTestIssue6Py.test_short_name   sA    z*~. 	(##B'	( 	( 	(s   AAN)r   r   r   ra   rd   ri   rl   ro   rs   rw   r{   r~   r   r   r   r   r\   r\   u   s4    7(
(/.66(%(r   r\   c                       e Zd Zy)HookableTestsNrT   r   r   r   r   r          r   r   c                       e Zd Zy)
TestIssue6NrT   r   r   r   r   r      r   r   r   c                  H    t         j                  j                  t              S r=   )r#   defaultTestLoaderloadTestsFromNamer   r   r   r   
test_suiter      s    %%77AAr   )r_   r#   r	   r   r   rW   r   r    TestCaser&   r\   r   r   r   r   r   r   <module>r      s    6)f )%F %C*o''C*LB(?$$B(J	M? 		 	Br   