
    Og/                        d Z ddlZ G d dej                        Z G d dej                        Z G d dej                        Z G d	 d
ej                        Z G d dej                        Z G d dej                        Z G d dej                        Z	 G d dej                        Z
 G d dej                        Z e       Z G d de      Z G d de      Zd Zy)zTests for z.c.hooks
    Nc                       e Zd Zd Zd Zd Zy)Test_read_propertyc                     ddl m} |S )Nr   )read_property)zope.component.hooksr   )selfr   s     Z/var/www/djangounited/venv/lib/python3.12/site-packages/zope/component/tests/test_hooks.py_getTargetClassz"Test_read_property._getTargetClass   s    6    c                       G  fddt               } |       } j                  |j                  d       d|_         j                  |j                  d       |` j                  |j                  d       y )Nc                   <    e Zd ZW  j                         d        Zy)1Test_read_property.test_via_instance.<locals>.Fooc                      yNBAR r   s    r	   barz5Test_read_property.test_via_instance.<locals>.Foo.bar       r   N__name__
__module____qualname__r
   r   r   s   r	   Foor          !!# $r   r   r   BAZ)objectassertEqualr   )r   r   foos   `  r	   test_via_instancez$Test_read_property.test_via_instance   s`    	& 	 e%(%(G%(r   c                       G  fddt               }|j                  } j                  t        | j	                                       j                  |j                  t                     d       y )Nc                   <    e Zd ZW  j                         d        Zy).Test_read_property.test_via_class.<locals>.Fooc                      yr   r   r   s    r	   r   z2Test_read_property.test_via_class.<locals>.Foo.bar'   r   r   Nr   r   s   r	   r   r#   &   r   r   r   r   )r   r   
assertTrue
isinstancer
   r   func)r   r   r   s   `  r	   test_via_classz!Test_read_property.test_via_class%   sQ    	& 	 gg
3(<(<(>?@&(+U3r   N)r   r   r   r
   r    r(   r   r   r	   r   r      s    
)4r   r   c                   $    e Zd Zd Zd Zd Zd Zy)SiteInfoTestsc                     ddl m} |S )Nr   )SiteInfo)r   r,   )r   r,   s     r	   r
   zSiteInfoTests._getTargetClass1   s
    1r   c                 ,     | j                                S N)r
   r   s    r	   _makeOnezSiteInfoTests._makeOne5   s    %t##%''r   c                     ddl m}  |       }| j                         }| j                  |j                  d        | j                  |j                  |u        y )Nr   getGlobalSiteManager)zope.component.globalregistryr2   r/   r   siter%   sm)r   r2   gsmsis       r	   test_initialzSiteInfoTests.test_initial8   s@    F"$]]_$'%r   c                    t                G fddt                G fddt               }| j                         } |       |_        | j                  d|j                  v        | j                  |j                  u        | j                  d|j                  v        |`| j                  d|j                  v        y )Nc                       e Zd ZW  Zy)2SiteInfoTests.test_adapter_hook.<locals>._RegistryN)r   r   r   adapter_hook)_hooks   r	   	_Registryr;   A   s     Lr   r>   c                       e Zd Z W         Zy)5SiteInfoTests.test_adapter_hook.<locals>._SiteManagerN)r   r   r   adapters)r>   s   r	   _SiteManagerr@   C   s
     {Hr   rB   r<   )r   r/   r5   assertFalse__dict__r%   r<   )r   rB   r7   r>   r=   s      @@r	   test_adapter_hookzSiteInfoTests.test_adapter_hook?   s    	! 	!	#6 	#]]_2;;67501"++56O2;;67r   N)r   r   r   r
   r/   r8   rE   r   r   r	   r*   r*   /   s    (&8r   r*   c                       e Zd Zd Zd Zd Zy)Test_setSitec                     ddl m}  ||      S )Nr   )setSite)r   rI   )r   r4   rI   s      r	   _callFUTzTest_setSite._callFUTP   s    0t}r   c                    ddl m} ddlm}  |       }t	               }t	               }t	               }t               }||_        ||_        ||_        t        ||      5  | j                  d        d d d        | j                  |j                  |u        | j                  |j                  d u        | j                  d|j                  v        y # 1 sw Y   axY w)Nr   hooksr1   siteinfor<   )zope.componentrM   r3   r2   r   _DummySiteInfor5   r4   adapterhook_MonkeyrJ   r%   rC   rD   )r   rM   r2   r6   _SM2_SITE_HOOKrO   s           r	   test_w_NonezTest_setSite.test_w_NoneT   s    (F"$x!#$UX. 	 MM$	 s*+-.8+<+<<=		  	 s   CCc                 ~   ddl m} t                G fddt              }t               } |       }t	        ||      5  | j                  |       d d d        | j                  |j                  u        | j                  |j                  |u        | j                  d|j                  v        y # 1 sw Y   axY w)Nr   rL   c                       e Zd Z fdZy)'Test_setSite.test_w_site.<locals>._Sitec                     S r.   r   r   rT   s    r	   getSiteManagerz6Test_setSite.test_w_site.<locals>._Site.getSiteManageri       r   Nr   r   r   r]   rT   s   r	   _SiterZ   h       r   ra   rN   r<   )rP   rM   r   rQ   rS   rJ   r%   r5   r4   rC   rD   )r   rM   ra   rO   _siterT   s        @r	   test_w_sitezTest_setSite.test_w_sitee   s    (x	F 	 "#UX. 	!MM% 	!t+,./8+<+<<=		! 	!s   B33B<Nr   r   r   rJ   rW   rd   r   r   r	   rG   rG   N   s    >">r   rG   c                       e Zd Zd Zd Zd Zy)Test_getSitec                     ddl m}  |       S )Nr   )getSite)r   ri   )r   ri   s     r	   rJ   zTest_getSite._callFUTv   s    0yr   c                     ddl m} ddlm}  |       }t	               }t        ||      5  | j                  | j                         d u        d d d        y # 1 sw Y   y xY wNr   rL   r1   rN   )rP   rM   r3   r2   rQ   rS   r%   rJ   )r   rM   r2   r6   rO   s        r	   rW   zTest_getSite.test_w_Nonez   sN    (F"$!#UX. 	5OODMMOt34	5 	5 	5s   "AAc                    ddl m} ddlm}  |       }t	               }t	               }t               }||_        ||_        t        ||      5  | j                  | j                         |u        d d d        y # 1 sw Y   y xY wrk   )rP   rM   r3   r2   r   rQ   r5   r4   rS   r%   rJ   )r   rM   r2   r6   rT   rU   rO   s          r	   rd   zTest_getSite.test_w_site   sj    (F"$x!#UX. 	6OODMMOu45	6 	6 	6s   "A88BNre   r   r   r	   rg   rg   t   s    5
6r   rg   c                       e Zd Zd Zd Zy)	Test_sitec                     ddl m}  ||      S )Nr   )r4   )r   r4   )r   new_siter4   s      r	   rJ   zTest_site._callFUT   s    -H~r   c                 x   ddl m} ddlm}  |       }t	                G fddt              } |       }t               }| j                  |j                  d u        | j                  |j                  t        u        t        ||      5  | j                  |      5  | j                  |j                  |u        | j                  |j                  u        d d d        | j                  |j                  d u        | j                  |j                  |u        d d d        y # 1 sw Y   LxY w# 1 sw Y   y xY w)Nr   rL   r1   c                       e Zd Z fdZy) Test_site.test_it.<locals>._Sitec                     S r.   r   r\   s    r	   r]   z/Test_site.test_it.<locals>._Site.getSiteManager   r^   r   Nr_   r`   s   r	   ra   rs      rb   r   ra   rN   )rP   rM   r3   r2   r   rQ   r%   r4   r5   _SMrS   rJ   )r   rM   r2   r6   ra   rc   rO   rT   s          @r	   test_itzTest_site.test_it   s    (F"$x	F 	 !#-.s*+UX. 	0u% 5 67t 345 OOHMMT12OOHKK3./	0 	05 5	0 	0s%   D0;D$AD0$D-	)D00D9Nr   r   r   rJ   rv   r   r   r	   rn   rn      s    0r   rn   c                   &    e Zd ZddZd Zd Zd Zy)Test_getSiteManagerNc                     ddl m}  ||      S )Nr   )r]   )r   r]   )r   contextr]   s      r	   rJ   zTest_getSiteManager._callFUT   s    7g&&r   c                     ddl m} ddlm}  |       }t	               }t               }||_        t        ||      5  | j                  | j                         |u        d d d        y # 1 sw Y   y xY wrk   
rP   rM   r3   r2   r   rQ   r5   rS   r%   rJ   r   rM   r2   r6   rT   rO   s         r	   test_defaultz Test_getSiteManager.test_default   s\    (F"$x!#UX. 	5OODMMOt34	5 	5 	5s   "A''A0c                     ddl m} ddlm}  |       }t	               }t               }||_        t        ||      5  | j                  | j                  t	                     |u        d d d        y # 1 sw Y   y xY wrk   r}   r~   s         r	   +test_w_explicit_context_no_IComponentLookupz?Test_getSiteManager.test_w_explicit_context_no_IComponentLookup   sa    (F"$x!#UX. 	<OODMM&(3s:;	< 	< 	<s   +A00A9c                    ddl m} ddlm} ddlm} ddlm}  G d dt              } |       }|j                  ||f|d       t               }t               }||_        t               }	t        ||	      5  | j                  |	      }
d d d        | j                  t        
|             | j                  |
j                   |	u        y # 1 sw Y   BxY w)
Nr   	InterfacerL   r1   )IComponentLookupc                       e Zd Zd Zy)OTest_getSiteManager.test_w_explicit_context_w_IComponentLookup.<locals>._Lookupc                     || _         y r.   )r{   )r   r{   s     r	   __init__zXTest_getSiteManager.test_w_explicit_context_w_IComponentLookup.<locals>._Lookup.__init__   s	    &r   N)r   r   r   r   r   r   r	   _Lookupr      s    'r   r    rN   )zope.interfacer   rP   rM   r3   r2   zope.component.interfacesr   r   registerAdapterrQ   r5   rS   rJ   r%   r&   r{   )r   r   rM   r2   r   r   r6   rT   rO   r{   r5   s              r	   *test_w_explicit_context_w_IComponentLookupz>Test_getSiteManager.test_w_explicit_context_w_IComponentLookup   s    ,(F>	'f 	' #$Gi\3CRHx!#(UX. 	(w'B	(
2w/0

g-.	( 	(s   6C		Cr.   )r   r   r   rJ   r   r   r   r   r   r	   ry   ry      s    '5</r   ry   c                        e Zd ZddZd Zd Zy)Test_adapter_hookNc                 $    ddl m}  |||||      S )Nr   )r<   )r   r<   )r   	interfacer   namedefaultr<   s         r	   rJ   zTest_adapter_hook._callFUT   s    5IvtW==r   c                 ~   ddl m} ddlm} ddlm}  G d d|      } |       }t               t               }t               }g fd}t               }	||	_        t        ||	      5  | j                  ||d	|      }
d d d        | j                  
u        | j                  ||d	|fg       y # 1 sw Y   4xY w)
Nr   r   rL   r1   c                       e Zd Zy),Test_adapter_hook.test_success.<locals>.IFooNr   r   r   r   r   r	   IFoor          r   r   c                 2    j                  | |||f       S r.   append)r   r   r   r   _ADAPTER_calleds       r	   _adapter_hookz5Test_adapter_hook.test_success.<locals>._adapter_hook   s    NNIvtW=>Or   rN   r   )r   r   rP   rM   r3   r2   r   rQ   r<   rS   rJ   r%   r   )r   r   rM   r2   r   r6   _DEFAULT_CONTEXTr   rO   adapterr   r   s              @@r	   test_successzTest_adapter_hook.test_success   s    ,(F	9 	"$888	 "# -UX. 	EmmD(E8DG	E8+,D(E8#D"EF	E 	Es   +B33B<c                 v   ddl m} ddlm} ddlm} ddlm  G d d|      } |       }t               }t               }g fd}t               }	||	_
        t        ||		      5  | j                  ||d
|      }
d d d        | j                  
|u        | j                  ||d
|fg       y # 1 sw Y   4xY w)Nr   r   rL   r1   )ComponentLookupErrorc                       e Zd Zy)0Test_adapter_hook.test_hook_raises.<locals>.IFooNr   r   r   r	   r   r      r   r   r   c                 >    j                  | |||f        d      )Ntestingr   )r   r   r   r   r   r   s       r	   r   z9Test_adapter_hook.test_hook_raises.<locals>._adapter_hook   s#    NNIvtW=>&y11r   rN   r   )r   r   rP   rM   r3   r2   r   r   r   rQ   r<   rS   rJ   r%   r   )r   r   rM   r2   r   r6   r   r   r   rO   r   r   r   s              @@r	   test_hook_raisesz"Test_adapter_hook.test_hook_raises   s    ,(FB	9 	"$88	2 "# -UX. 	EmmD(E8DG	E8+,D(E8#D"EF	E 	Es   'B//B8)r   N)r   r   r   rJ   r   r   r   r   r	   r   r      s    >G*Gr   r   c                       e Zd Zd Zd Zy)Test_setHooksc                     ddl m}  |       S )Nr   )setHooks)r   r   )r   r   s     r	   rJ   zTest_setHooks._callFUT
  s    1zr   c                 x   dd l }ddlm}  G d dt              } |       } |       }t	        |j
                  j                  ||      5  | j                          d d d        | j                  |j                  |j                         | j                  |j                  |j                         y # 1 sw Y   VxY w)Nr   rL   c                       e Zd Zd Zd Zy)$Test_setHooks.test_it.<locals>._Hookc                     d | _         y r.   _hookedr   s    r	   r   z-Test_setHooks.test_it.<locals>._Hook.__init__  s	    #r   c                     || _         y r.   r   )r   values     r	   sethookz,Test_setHooks.test_it.<locals>._Hook.sethook  s	    $r   N)r   r   r   r   r   r   r   r	   _Hookr     s    $%r   r   r<   r]   )zope.component._apirP   rM   r   rS   	component_apirJ   r   r   r<   r]   r   zoperM   r   r<   r]   s         r	   rv   zTest_setHooks.test_it  s    "(	%F 	%
 wT^^((".$24 	 MMO	 	--u/A/AB//1E1EF	 	s   
B00B9Nrw   r   r   r	   r   r     s    Gr   r   c                       e Zd Zd Zd Zy)Test_resetHooksc                     ddl m}  |       S )Nr   )
resetHooks)r   r   )r   r   s     r	   rJ   zTest_resetHooks._callFUT"  s    3|r   c                    dd l }ddlm}  G d dt              } |       } |       }t	        |j
                  j                  ||      5  t        |j                  d       | j                  d|j                  j                  v        | j                          d d d        | j                  |j                         | j                  |j                         | j                  d|j                  j                  v        y # 1 sw Y   gxY w)Nr   rL   c                       e Zd Zd Zd Zy)&Test_resetHooks.test_it.<locals>._Hookc                     d| _         y )NF_resetr   s    r	   r   z/Test_resetHooks.test_it.<locals>._Hook.__init__*  s	    #r   c                     d| _         y )NTr   r   s    r	   resetz,Test_resetHooks.test_it.<locals>._Hook.reset,  s	    "r   N)r   r   r   r   r   r   r   r	   r   r   )  s    $#r   r   r   r<   )r   rP   rM   r   rS   r   r   getattrrO   r%   rD   rJ   r   rC   r   s         r	   rv   zTest_resetHooks.test_it&  s    "(	#F 	#
 wT^^((".$24 	
 ENNN3OONenn.E.EEFMMO	 	++,--.5>>+B+BBC	 	s   
AC>>DNrw   r   r   r	   r   r      s    Dr   r   c                       e Zd ZeZdZy)rQ   N)r   r   r   ru   r5   r4   r   r   r	   rQ   rQ   A  s    	BDr   rQ   c                       e Zd Zd Zd Zd Zy)rS   c           
          || _         t        |D cg c]  }|t        ||      f c}      | _        |j	                         D ]  \  }}t        |||        y c c}w r.   )moduledictr   
to_restoreitemssetattr)r   r   kwkeyr   s        r	   r   z_Monkey.__init__G  sW    rJgfc&: ;JK((* 	(JCFC'	(  Ks   Ac                     | S r.   r   r   s    r	   	__enter__z_Monkey.__enter__M  s    r   c                 v    | j                   j                         D ]  \  }}t        | j                  ||        y r.   )r   r   r   r   )r   exc_typeexc_valexc_tbr   r   s         r	   __exit__z_Monkey.__exit__P  s2    ////1 	-JCDKKe,	-r   N)r   r   r   r   r   r   r   r   r	   rS   rS   E  s    (-r   rS   c                     t        j                  t        j                  t              t        j                  t              t        j                  t
              t        j                  t              t        j                  t              t        j                  t              t        j                  t              t        j                  t              t        j                  t              f	      S r.   )unittest	TestSuite	makeSuiter   r*   rG   rg   rn   ry   r   r   r   r   r   r	   
test_suiter   U  s    -.=)<(<(9%./,-=)?+
 
 
r   )__doc__r   TestCaser   r*   rG   rg   rn   ry   r   r   r   r   ru   rQ   rS   r   r   r   r	   <module>r      s    4** 488H%% 8>#>8$$ #>L68$$ 660!! 04+/(++ +/\.G)) .GbGH%% G0Dh'' D@ hV -f - r   