
    ug                     P   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j2                  Zd	Z ej8                  d
      defd       Z ej8                  d
      dedeeddf   fd       ZdededdfdZ dededdfdZ!y)    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                       y)Nvalid_token r       [/var/www/openai/venv/lib/python3.12/site-packages/chromadb/test/client/test_cloud_client.pyr   r      s    r   r   c           
   #     K   d}| }t         }t               }|dd |d ||d d d f
}t        j                  d      }|j	                  t
        |d      }|j                          t        dt        |d| t               }t        |      }	|	j                  t              }
|	j                          t        |
       |	 |	j                          |j                          y w)	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apis              r   mock_cloud_serverr8      s      	F ! ,7#.D&D 	$'*	 	. 
%
%g
.C;;kT;BDJJL6* $$W'2+AH HF
//)
$C
LLN#
L
KKMIIKs   CCr8   c                     t        t        t        |t        | j                  j
                  xs dd      }|j                         sJ y )N@  Ftenantdatabaseapi_key
cloud_host
cloud_port
enable_ssl)r   r   r   r,   r5   r#   	heartbeat)r8   r   valid_clients      r   test_valid_keyrD   L   sC    !"$--EEML !!###r   c           	          |dz   }t        j                  t              5  t        t        t
        |t        | j                  j                  xs dd      }|j                          d d d        y # 1 sw Y   y xY w)N_invalidr:   Fr;   )
pytestraisesr   r   r   r   r,   r5   r#   rB   )r8   r   invalid_tokenclients       r   test_invalid_keyrK   Y   s_    *,M		'!%!&(11IIQT
 	 
(	'	's   AA..A7)"r(   typingr   r   r   r   r   rG   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   r8   rD   rK   r   r   r   <module>rV      s     8 8    " : N N + M M-<<  hS    h33 39VT45G+H 3  3l
$f 
$3 
$4 
$ S T r   