o
    g                     @   s  d dl Z d dlmZmZmZmZmZ d dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZmZmZmZ d dlmZ d dlmZmZmZ ejZd	Zejd
ddefddZejd
ddedeeddf fddZdededdfddZ dededdfddZ!dS )    N)AnyDict	GeneratorOptionalTuple)CloudClient)	ServerAPI)TokenTransportHeader)DEFAULT_DATABASEDEFAULT_TENANTSettingsSystem)ChromaAuthError)_await_server_run_serverfind_free_port	localhostmodule)scopereturnc                   C   s   dS )Nvalid_token r   r   r   ]/var/www/visachat/venv/lib/python3.10/site-packages/chromadb/test/client/test_cloud_client.pyr      s   r   c              
   c   s    d}| }t }t }|dd |d ||d d d f
}td}|jt|dd}|  tdt|d| t d}t	|}	|	
t}
|	  t|
 |	V  |	  |  d S )	Nz;chromadb.auth.token_authn.TokenAuthenticationServerProviderFspawnT)targetargsdaemonzchromadb.api.fastapi.FastAPIz1chromadb.auth.token_authn.TokenAuthClientProvider)chroma_api_implchroma_server_hostchroma_server_http_portchroma_client_auth_providerchroma_client_auth_credentials"chroma_auth_token_transport_header)TOKEN_TRANSPORT_HEADERr   multiprocessingget_contextProcessr   startr   TEST_CLOUD_HOSTr   instancer   r   stopkill)r   chroma_server_authn_providerchroma_server_authn_credentialsr"   portr   ctxprocsettingssystemapir   r   r   mock_cloud_server   sH   
	
r4   c                 C   s,   t tt|t| jjp
ddd}| sJ d S )N@  Ftenantdatabaseapi_key
cloud_host
cloud_port
enable_ssl)r   r   r
   r(   r1   r   	heartbeat)r4   r   valid_clientr   r   r   test_valid_keyL   s   
	r?   c              	   C   s\   |d }t t ttt|t| jjpddd}|	  W d    d S 1 s'w   Y  d S )N_invalidr5   Fr6   )
pytestraisesr   r   r   r
   r(   r1   r   r=   )r4   r   invalid_tokenclientr   r   r   test_invalid_keyY   s   

"rE   )"r$   typingr   r   r   r   r   rA   chromadbr   chromadb.apir   chromadb.auth.token_authnr	   chromadb.configr
   r   r   r   chromadb.errorsr   chromadb.test.conftestr   r   r   X_CHROMA_TOKENr#   r(   fixturestrr   r4   r?   rE   r   r   r   r   <module>   s"    

6