
    _j                        d dl mZmZmZ d dlmZ d dlmZ d dlmZ d dl	Z	d dl
Z
d dlZ e            ad"dZ G d d	e          Z G d
 de          Z G d de          Z G d de          Zd"dZd"dZd"dZd"dZ G d de          Zd"dZd"dZd"dZ ej        e
j        ddid          d"d            Z ej        e
j        ddid          d"d             Zd"d!ZdS )#    )	ComponentSystemSettings)	overrides)local)patchNreturnc                  N    g t           _        g t           _        g t           _        d S N)datastartsstopsinits     V/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/chromadb/test/test_config.pyresetr      s    DKDJDJJJr   c                   T     e Zd Zdef fdZedd            Zedd            Z xZS )
ComponentAsystemc                     t           xj        dz  c_        t                                          |           |                     t
                     |                     t                     d S NA)r   r   super__init__require
ComponentB
ComponentCselfr   	__class__s     r   r   zComponentA.__init__   U    

c

   Z   Z     r   r	   Nc                 0    t           xj        dz  c_        d S r   r   r   r    s    r   startzComponentA.start       sr   c                 0    t           xj        dz  c_        d S r   r   r   r%   s    r   stopzComponentA.stop       

c



r   r	   N	__name__
__module____qualname__r   r   r   r&   r*   __classcell__r!   s   @r   r   r              !v ! ! ! ! ! !    Y    Y    r   r   c                   T     e Zd Zdef fdZedd            Zedd            Z xZS )r   r   c                     t           xj        dz  c_        t                                          |           |                     t
                     |                     t                     d S NB)r   r   r   r   r   r   
ComponentDr   s     r   r   zComponentB.__init__$   r"   r   r	   Nc                 0    t           xj        dz  c_        d S r6   r$   r%   s    r   r&   zComponentB.start*   r'   r   c                 0    t           xj        dz  c_        d S r6   r)   r%   s    r   r*   zComponentB.stop.   r+   r   r,   r-   r2   s   @r   r   r   #   r3   r   r   c                   T     e Zd Zdef fdZedd            Zedd            Z xZS )r   r   c                     t           xj        dz  c_        t                                          |           |                     t
                     d S NC)r   r   r   r   r   r8   r   s     r   r   zComponentC.__init__4   sC    

c

   Z     r   r	   Nc                 0    t           xj        dz  c_        d S r=   r$   r%   s    r   r&   zComponentC.start9   r'   r   c                 0    t           xj        dz  c_        d S r=   r)   r%   s    r   r*   zComponentC.stop=   r+   r   r,   r-   r2   s   @r   r   r   3   s        !v ! ! ! ! ! !
    Y    Y    r   r   c                   T     e Zd Zdef fdZedd            Zedd            Z xZS )r8   r   c                 t    t           xj        dz  c_        t                                          |           d S ND)r   r   r   r   r   s     r   r   zComponentD.__init__C   s1    

c

     r   r	   Nc                 0    t           xj        dz  c_        d S rC   r$   r%   s    r   r&   zComponentD.startG   r'   r   c                 0    t           xj        dz  c_        d S rC   r)   r%   s    r   r*   zComponentD.stopK   r+   r   r,   r-   r2   s   @r   r8   r8   B   s        !v ! ! ! ! ! !    Y    Y    r   r8   c                     t                      } t          |           }t                       |                    t                    }t          |t                    sJ t          j        dgk    sJ |                                 t          j	        dgk    sJ |
                                 t          j        dgk    sJ d S rC   )r   r   r   instancer8   
isinstancer   r   r&   r   r*   r   )settingsr   ds      r   test_leaf_onlyrL   _   s    zzHHF	GGG
##Aa$$$$$:#
LLNNN;3%
KKMMM:#r   c                     t                      } t          |           }t                       |                    t                    }t          |t                    sJ t          j        ddgk    sJ |                                 t          j	        ddgk    sJ |
                                 t          j        ddgk    sJ d S )Nr>   rD   )r   r   r   rH   r   rI   r   r   r&   r   r*   r   )rJ   r   cs      r   test_partialrO   o   s    zzHHF	GGG
##Aa$$$$$:#s####
LLNNN;3*$$$$
KKMMM:#s######r   c                     t                      } t          |           }t                       |                    t                    }t          |t                    sJ t          j        g dk    sJ |                                 t          j	        g dk    sJ |
                                 t          j        g dk    sJ d S )Nr   r7   r>   rD   rD   r>   r7   r   )r   r   r   rH   r   rI   r   r   r&   r   r*   r   )rJ   r   as      r   test_system_startuprT      s    zzHHF	GGG
##Aa$$$$$:-------
LLNNN;.......
KKMMM:---------r   c                     t                      } t          |           }t                       |                    t                     t          j        d           t          |j        	                                          }t          j
        |           d |D             |_        |                                 t          j        g dk    sJ |                                 t          j        g dk    sJ d S )Nr   c                     i | ]\  }}||	S r   r   ).0kvs      r   
<dictcomp>z.test_system_override_order.<locals>.<dictcomp>   s    222$!QA222r   rR   rQ   )r   r   r   rH   r   randomseedlist
_instancesitemsshuffler&   r   r   r*   r   )rJ   r   entriess      r   test_system_override_orderrb      s    zzHHF	GGG
OOJ KNNN6$**,,--G
N722'222F
LLNNN;.......
KKMMM:---------r   c                   T     e Zd Zdef fdZedd            Zedd            Z xZS )
ComponentZr   c                 ~    t                                          |           |                     t                     d S r   )r   r   r   r   r   s     r   r   zComponentZ.__init__   s3       Z     r   r	   Nc                     d S r   r   r%   s    r   r&   zComponentZ.start       r   c                     d S r   r   r%   s    r   r*   zComponentZ.stop   rg   r   r,   r-   r2   s   @r   rd   rd      s        !v ! ! ! ! ! !    Y    Y    r   rd   c                  >   t                      } t          |           }t                       |                                 t          j        g k    sJ t          |           t          j        ddgk    sJ |                                 t          j        ddgk    sJ d S )NrD   r>   )	r   r   r   r&   r   r   rd   r*   r   )rJ   r   s     r   test_runtime_dependenciesrj      s    zzHHF	GGG LLNNN;" v;3*$$$$
KKMMM:#s######r   c                  `    t                      } | j        dk    sJ | j        J | j        J d S )Ng      D@r   chroma_http_keepalive_secschroma_http_max_connections%chroma_http_max_keepalive_connectionsrJ   s    r   !test_http_client_setting_defaultsrq      sC    zzH.$6666/7779AAAAAr   c                  x    t          ddd          } | j        dk    sJ | j        dk    sJ | j        dk    sJ d S )Ng      @{      )rm   rn   ro   rl   rp   s    r   "test_http_client_setting_overridesru      sc    #&$'.0  H
 .#5555/366669R??????r   CHROMA_API_IMPLmy_api_implT)clearc                  <    t                      } | j        dk    sJ d S )Nrw   )r   chroma_api_implrp   s    r   test_uses_envr{      s%    zzH#}444444r   
MY_ENV_VAR
my_env_varc                      t                      } t          j        t                    5  | j        }d d d            d S # 1 swxY w Y   d S r   )r   pytestraisesAttributeErrorr}   rJ   _s     r   test_ignores_extra_env_varsr      s    zzH	~	&	&                                       s   =AAc                      t          dd          } | j        dk    sJ t          j        t                    5  | j        }d d d            d S # 1 swxY w Y   d S )Nasdsdsdstest)extra_param	tenant_id)r   r   r   r   r   r   r   s     r   'test_local_ignores_extra_settings_paramr      s    J&AAAH''''	~	&	& ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   AAAr,   )chromadb.configr   r   r   r   	threadingr   unittest.mockr   r   osr[   r   r   r   r   r   r8   rL   rO   rT   rb   rd   rj   rq   ru   dictenvironr{   r   r   r   r   r   <module>r      s   7 7 7 7 7 7 7 7 7 7                    				 uww                                 :    $ $ $ $ . . . . . . . ..       $ $ $ $"B B B B@ @ @ @ BJ*M:$GGG5 5 5 HG5
 BJ|4DAAA      BA ! ! ! ! ! !r   