o
    ge                     @   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   P/var/www/visachat/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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
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	   )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   r/   r,   r   r   r   test_local_db6   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 )Nr1   r   fooP   chroma_api_implr   chroma_server_hostchroma_server_http_portr)   )r   r   r,   r   r   r   test_fastapi=   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 )Nr1   r2   r3   bar)r5   r6   r7   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_fastapiK   s   


z(GetAPITest.test_settings_pass_to_fastapi)r"   r#   r$   r   dictosenvironr   r-   r0   r8   r@   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   r2   r3   r4   )pytestraises
ValueErrorr   r*   r   r   r+   )r,   r   r   r   test_legacy_valuesf   s   
"rG   )r   N)unittestrB   unittest.mockr   r   rD   r   chromadb.configchromadb.db.systemr   chromadb.ingestr   r   TestCaser   r%   rG   r   r   r   r   <module>   s    #8