
    Ogg                     p    d Z ddlZ G d dej                        Z G d dej                        Zd Zd Zy)	zTests for z.c.hooks
    Nc                   P    e Zd Zd Zd Zd Zd ZddZd Zd Z	d Z
d	 Zd
 Zd Zy)PersistentAdapterRegistryTestsc                     ddl m} |S )Nr   PersistentAdapterRegistry)!zope.component.persistentregistryr   )selfr   s     g/var/www/djangounited/venv/lib/python3.12/site-packages/zope/component/tests/test_persistentregistry.py_getTargetClassz.PersistentAdapterRegistryTests._getTargetClass   s    O((    c                 .     | j                         |i |S Nr   r	   argskws      r
   _makeOnez'PersistentAdapterRegistryTests._makeOne       %t##%t2r22r   c                 0     G d dt               } ||      S )Nc                   $    e Zd Zd Zd Zd Zd Zy)9PersistentAdapterRegistryTests._makeCache.<locals>._Cachec                      || _         g | _        y r   )_jar_mru)r	   jars     r
   __init__zBPersistentAdapterRegistryTests._makeCache.<locals>._Cache.__init__    s    		r   c                 :    | j                   j                  |       y r   )r   append)r	   oids     r
   mruz=PersistentAdapterRegistryTests._makeCache.<locals>._Cache.mru#   s    		  %r   c                 4    | j                   |_        ||_        y r   )r   _p_jar_p_oid)r	   r   objs      r
   	new_ghostzCPersistentAdapterRegistryTests._makeCache.<locals>._Cache.new_ghost%   s    !YY
 
r   c                      y r    )r	   r   sizes      r
   update_object_size_estimationzWPersistentAdapterRegistryTests._makeCache.<locals>._Cache.update_object_size_estimation(   s    r   N)__name__
__module____qualname__r   r    r%   r)   r'   r   r
   _Cacher      s    &!r   r-   )object)r	   r   r-   s      r
   
_makeCachez)PersistentAdapterRegistryTests._makeCache   s    
	V 
	 c{r   c                     ddl m} ddlm}  ||       G d dt                     } |       }| j                  |      |_        |S )Nr   )implementer)IPersistentDataManagerc                       e Zd Zd Zd Zd Zy)5PersistentAdapterRegistryTests._makeJar.<locals>._Jarc                      g | _         g | _        y r   )_loaded_registered)r	   s    r
   r   z>PersistentAdapterRegistryTests._makeJar.<locals>._Jar.__init__4   s    !#% r   c                 N    | j                   j                  |j                         y r   )r6   r   r#   r	   r$   s     r
   setstatez>PersistentAdapterRegistryTests._makeJar.<locals>._Jar.setstate7   s    ##CJJ/r   c                 N    | j                   j                  |j                         y r   )r7   r   r#   r9   s     r
   registerz>PersistentAdapterRegistryTests._makeJar.<locals>._Jar.register9   s      ''

3r   N)r*   r+   r,   r   r:   r<   r'   r   r
   _Jarr4   2   s    &04r   r=   )zope.interfacer1   persistent.interfacesr2   r.   r/   _cache)r	   r1   r2   r=   r   s        r
   _makeJarz'PersistentAdapterRegistryTests._makeJar-   sE    .@	+	,	46 	4 
-	4 f__S)

r   c                     t        d      } | j                  di |}| j                         }|j                  j	                  ||       |||fS )Nzr'   )_makeOctetsr   rA   r@   r%   )r	   dirtyr   OIDinstr   s         r
   _makeOneWithJarz.PersistentAdapterRegistryTests._makeOneWithJar@   sJ    *%t}}"r"mmo

S$'S#~r   c                    | j                         \  }}}| j                  |j                  d       |j                  t	                      | j                  |j
                  d       | j                  |j                  d       y N   T   )rG   assertEqual_generationchangedr.   
_p_changedr	   registryr   rE   s       r
   test_changed_original_is_not_usz>PersistentAdapterRegistryTests.test_changed_original_is_not_usH   sk    !113#s--q1" 	,,d3--q1r   c                     | j                         \  }}}| j                  |j                  d       |j                  |       | j                  |j                  d       | j                  |j                  d       y rI   )rG   rL   rM   rN   rO   rP   s       r
   test_changed_original_is_usz:PersistentAdapterRegistryTests.test_changed_original_is_usR   sg    !113#s--q1",,d3--q1r   c                    ddl m} |j                  |j                  f}| j	                  |      \  }}}|j                         }| j                  |d   |       | j                  |d   d       | j                  |d   i        | j                  |d   g        | j                  |d	   g        | j                  d
|v        y )Nr   globalSiteManagerbases	__bases__rM   rJ   	_provided	_adapters_subscribersro)zope.componentrW   adapters	utilitiesrG   __getstate__rL   assertFalser	   rW   rY   rQ   r   rE   states          r
   test___getstate___simplez7PersistentAdapterRegistryTests.test___getstate___simple[   s    4"++->-H-HI!111>#s%%'{+U3}-q1{+R0{+R0~.3'r   c                 ~    | j                         \  }}}d |_        | j                  d|j                         v        y )Nc                  
    g dS )N)abcr'   )r   s    r
   <lambda>zXPersistentAdapterRegistryTests.test___getstate___skips_delegated_names.<locals>.<lambda>i   s     r   names)rG   rm   rc   rb   rP   s       r
   'test___getstate___skips_delegated_nameszFPersistentAdapterRegistryTests.test___getstate___skips_delegated_namesg   s:    !113#s6H$9$9$;;<r   c                 *   | j                         \  }}}|j                         }| j                  d|j                  v        d |_        | j                  d|j                  v        |j                  |       | j                  d|j                  v        y )N	_v_lookup)rG   rb   
assertTrue__dict__rO   rc   __setstate__)r	   rQ   r   rE   re   s        r
   $test___setstate___rebuilds__v_lookupzCPersistentAdapterRegistryTests.test___setstate___rebuilds__v_lookupl   s    !113#s%%'x'8'889"(9(99:e$x'8'889r   c                 8   ddl m} |j                  |j                  f}| j	                  |      \  }}}|j                         }|j                  |       | j                  |j                  |       | j                  |j                  |gt        |      z          y )Nr   rV   rX   )r_   rW   r`   ra   rG   rb   rs   rL   rZ   r^   listrd   s          r
   test___setstate___rebuilds__roz=PersistentAdapterRegistryTests.test___setstate___rebuilds__rou   s    4"++->-H-HI!111>#s%%'e$++U3xj4;&>?r   N)F)r*   r+   r,   r   r   r/   rA   rG   rR   rT   rf   rn   rt   rw   r'   r   r
   r   r      s:    )3"&22
(=
:@r   r   c                       e Zd Zd Zd Zd Zy)PersistentComponentsTestsc                     ddl m} |S )Nr   )PersistentComponents)r   r{   )r	   r{   s     r
   r   z)PersistentComponentsTests._getTargetClass   s    J##r   c                 .     | j                         |i |S r   r   r   s      r
   r   z"PersistentComponentsTests._makeOne   r   r   c                    ddl m} ddlm} ddlm} | j                         }| j                  t        |j                  |             | j                  t        |j                  |             | j                  t        |j                  |             | j                  t        |j                  |             | j                  t        |j                  |             | j                  t        |j                  |             y )Nr   )PersistentMapping)PersistentListr   )persistent.mappingr~   persistent.listr   r   r   r   rq   
isinstancer`   ra   _adapter_registrations_utility_registrations_subscription_registrations_handler_registrations)r	   r~   r   r   rQ   s        r
   2test_ctor_initializes_registries_and_registrationszLPersistentComponentsTests.test_ctor_initializes_registries_and_registrations   s    82O==?
8#4#4#<> 	?
8#5#5#<> 	?
8#B#B#46 	7
8#B#B#46 	7
8#G#G#13 	4
8#B#B#13 	4r   N)r*   r+   r,   r   r   r   r'   r   r
   ry   ry      s    $34r   ry   c                 V    dd l }|j                  dk  rt        |       S t        | d      S )Nr   )   ascii)sysversion_infobytes)sr   s     r
   rC   rC      s)    
$QxGr   c                      t        j                  t        j                  t              t        j                  t              f      S r   )unittest	TestSuite	makeSuiter   ry   r'   r   r
   
test_suiter      s8    9:45  r   )__doc__r   TestCaser   ry   rC   r   r'   r   r
   <module>r      s@    i@X%6%6 i@X4 1 1 46r   