
    g
                     <     G d  d      Z  G d de      Z e        Zy)c                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	MockRegistryzRegistry for mocks

    Registers mock()s, ensures that we only have one mock() per mocked_obj, and
    iterates over them to unstub each stubbed method.
    c                 "    t               | _        y N)IdentityMapmocksselfs    J/var/www/openai/venv/lib/python3.12/site-packages/mockito/mock_registry.py__init__zMockRegistry.__init__   s     ]
    c                 "    || j                   |<   y r   )r   r	   objmocks      r
   registerzMockRegistry.register!   s    

3r   c                 :    | j                   j                  |d       S r   )r   get)r	   r   s     r
   mock_forzMockRegistry.mock_for$   s    zz~~c4((r   c                 z    	 | j                   j                  |      }|j                          y # t        $ r Y y w xY wr   )r   popunstubKeyErrorr   s      r
   r   zMockRegistry.unstub'   s8    	::>>#&D KKM  		s   . 	::c                     | j                         D ]  }|j                           | j                  j                          y r   )get_registered_mocksr   r   clear)r	   r   s     r
   
unstub_allzMockRegistry.unstub_all/   s.    --/DKKM 0

r   c                 6    | j                   j                         S r   )r   valuesr   s    r
   r   z!MockRegistry.get_registered_mocks4   s    zz  ""r   N)
__name__
__module____qualname____doc__r   r   r   r   r   r    r   r
   r   r      s%    #)
#r   r   c                   8    e Zd Zd Zd Zd Zd Zd	dZd Zd Z	y)
r   c                     g | _         y r   _storer   s    r
   r   zIdentityMap.__init__:   s	    r   c                 `    | j                  |       | j                  j                  ||f       y r   )remover'   append)r	   keyvalues      r
   __setitem__zIdentityMap.__setitem__=   s$    CC<(r   c                 f    | j                   D cg c]  \  }}||us||f c}}| _         y c c}}w r   r&   )r	   r+   kvs       r
   r)   zIdentityMap.removeA   s-    *.++F+$!Q#1v+FFs   --c                 b    | j                  |      }|| j                  |       |S t               r   )r   r)   r   )r	   r+   rvs      r
   r   zIdentityMap.popD   s-    XXc]>KKI*r   Nc                 >    | j                   D ]  \  }}||u s|c S  |S r   r&   )r	   r+   defaultr/   r,   s        r
   r   zIdentityMap.getL   s'    HAuCx $ r   c                 L    | j                   D cg c]  \  }}|	 c}}S c c}}w r   r&   )r	   r/   r0   s      r
   r   zIdentityMap.valuesR   s"    "kk*kdak***s    c                 "    g | j                   d d  y r   r&   r   s    r
   r   zIdentityMap.clearU   s    Ar   r   )
r   r    r!   r   r-   r)   r   r   r   r   r#   r   r
   r   r   9   s&    )G+r   r   N)r   objectr   mock_registryr#   r   r
   <module>r9      s&   .# #D& @ r   