o
    \h                     @   s   d dl Z d dlZd dlmZmZ d dlZd dlZd dlZd dlm	Z	 d dl
mZmZ G dd de jZG dd de jZdd
dZdS )    N)patchMock)SysDB)ConsumerProducerc                   @   sf   e Zd ZeddddeddfddZeddddeddfd	d
ZeddddeddfddZdS )	GetDBTest chromadb.db.impl.sqlite.SqliteDBTautospecmockreturnNc                 C   s.   t jt jjdd}|t |jsJ d S N./foo)persist_directorychromadbconfigSystemSettingsinstancer   calledselfr   system r   \/home/air/segue/gemini/backup/venv/lib/python3.10/site-packages/chromadb/test/test_chroma.pytest_default_db   s
   
zGetDBTest.test_default_dbc                 C   s0   t jt jjddd}|t |jsJ d S )Nr   r   )chroma_sysdb_implr   r   r   r   r   r   test_sqlite_sysdb   s   
zGetDBTest.test_sqlite_sysdbc                 C   s>   t jt jjddddd}|t |t |jsJ d S )Nr   r   )r   chroma_producer_implchroma_consumer_implr   )r   r   r   r   r   r   r   r   r   r   r   r   test_sqlite_queue   s   

zGetDBTest.test_sqlite_queue)__name__
__module____qualname__r   r   r   r   r!   r   r   r   r   r      s    



r   c                   @   s   e Zd Zedddejejddidddeddfd	d
ZedddejejddidddeddfddZ	edddejeji dddeddfddZ
edddejeji dddeddfddZdS )
GetAPITestzchromadb.api.segment.SegmentAPITr	   CHROMA_API_IMPL)clearmock_apir   Nc                 C   *   t t jjdd}|jsJ |  d S r   r   Clientr   r   r   clear_system_cache)r   r(   clientr   r   r   
test_local/      
zGetAPITest.test_localr   mock_dbc                 C   r)   r   r*   )r   r0   r-   r   r   r   test_local_db8   r/   zGetAPITest.test_local_dbchromadb.api.fastapi.FastAPIr   c                 C   s0   t t jjddddd}|jsJ |  d S )Nr2   r   fooP   chroma_api_implr   chroma_server_hostchroma_server_http_portr*   )r   r   r-   r   r   r   test_fastapiA   s   
zGetAPITest.test_fastapic                 C   s`   t jjdddddid}t |}|jsJ |j\}}|r!|d nd }|j|ks*J |  d S )Nr2   r3   r4   bar)r6   r7   r8   chroma_server_headersr   )r   r   r   r+   r   	call_argssettingsr,   )r   r   r=   r-   argskwargspassed_settingsr   r   r   test_settings_pass_to_fastapiO   s   


z(GetAPITest.test_settings_pass_to_fastapi)r"   r#   r$   r   dictosenvironr   r.   r1   r9   rA   r   r   r   r   r%   .   s"    



r%   r   c               	   C   sR   t t ttjjddddd} |   W d    d S 1 s"w   Y  d S )Nzchromadb.api.local.LocalAPIr   r3   r4   r5   )pytestraises
ValueErrorr   r+   r   r   r,   )r-   r   r   r   test_legacy_valuesj   s   
"rH   )r   N)unittestrC   unittest.mockr   r   rE   r   chromadb.configchromadb.db.systemr   chromadb.ingestr   r   TestCaser   r%   rH   r   r   r   r   <module>   s    #<