
    3i                        S SK r S SKJrJrJrJr  S SKJr  S SKrS SK	J
r
  S SKJr  S SKrS SKrS SKrS SKr\R"                  S\\SS4   4S j5       r\R"                  S\\SS4   4S j5       r\S	\4   r\R"                  " S
S/S9S\R*                  S\\SS4   4S j5       r\R"                  " 5       S\S\\SS4   4S j5       rS\SS4S jrS\SS4S jrS\SS4S jrS\SS4S jrS\SS4S jrg)    N)AnyCallable	Generatorcast)patch)Settings)	ClientAPIreturnc               #      #    [         R                  R                  S5      (       a  [        R                  " S5        [
        R                  " 5       n U v   U R                  5         g 7f)NCHROMA_INTEGRATION_TEST_ONLYIntegration test only)osenvirongetpytestskipchromadbEphemeralClientclear_system_cacheclients    S/home/james-whalen/.local/lib/python3.13/site-packages/chromadb/test/test_client.pyephemeral_apir      sE     	zz~~455+,%%'F
L
s   A%A'c               #      #    [         R                  R                  S5      (       a  [        R                  " S5        [
        R                  " [        R                  " 5       S-   S9n U v   U R                  5         g 7f)Nr   r   z/test_server)path)
r   r   r   r   r   r   PersistentClienttempfile
gettempdirr   r   s    r   persistent_apir      sZ     	zz~~455+,&&  "^3F L
s   A:A<.sync_clientasync_client)paramsrequestc              #     #    U R                   S:X  a;  [        S5         [        S5         [        R                  v   S S S 5        S S S 5        g [        S5         [        S5         S[        S[        S[        4S	 jn[        [        U5      v   S S S 5        S S S 5        g ! , (       d  f       Ni= f! , (       d  f       g = f! , (       d  f       N9= f! , (       d  f       g = f7f)
Nr    z4chromadb.api.client.Client._validate_tenant_databasez,chromadb.api.client.Client.get_user_identityz?chromadb.api.async_client.AsyncClient._validate_tenant_databasez7chromadb.api.async_client.AsyncClient.get_user_identityargskwargsr
   c                  v    [         R                  " 5       R                  [        R                  " U 0 UD65      nU$ )N)asyncioget_event_looprun_until_completer   AsyncHttpClient)r%   r&   clss      r   factory!http_api_factory.<locals>.factory0   s5    !002EE 00$A&AC J    )paramr   r   
HttpClientr   r   HttpAPIFactory)r#   r-   s     r   http_api_factoryr3   $   s      }}%IJEF))) G KJ TUPQ3 # #  >733 R VU GF KJ
 RQ VUsb   C$B1B B1C$C%*CC	C$ 
B.	*B11
B?;C$
C	C
C!C$r3   c              #      #    [         R                  R                  S5      b/  [        [         R                  R                  S5      5      nU " US9nOU " 5       nUv   UR	                  5         g 7f)NCHROMA_SERVER_HTTP_PORT)port)r   r   r   intr   )r3   r6   r   s      r   http_apir8   9   sT     	zz~~/0<2::>>";<=!t,!#
L
s   A,A.r   c                 F    U R                  5       nUR                  SL d   eg )NFget_settingsis_persistent)r   settingss     r   test_ephemeral_clientr>   D   s$    ))+H!!U***r/   r   c                 F    U R                  5       nUR                  SL d   eg )NTr:   )r   r=   s     r   test_persistent_clientr@   I   s$    **,H!!T)))r/   r8   c                 j    U R                  5       nUR                  S:X  d  UR                  S:X  d   eg g )Nzchromadb.api.fastapi.FastAPIz'chromadb.api.async_fastapi.AsyncFastAPI)r;   chroma_api_impl)r8   r=   s     r   test_http_clientrC   N   sB    $$&H  $BB##'PP	QP 	Cr/   c                 p     U " [        SS9S9  g ! [         a  n[        U5      S:X  d   e S nAg S nAff = f)Nz	127.0.0.1)chroma_server_host)r=   znChroma server host provided in settings[127.0.0.1] is different to the one provided in HttpClient: [localhost]r   
ValueErrorstrr3   es     r   0test_http_client_with_inconsistent_host_settingsrK   V   s?    
(k"JK 
F@	
@
s    
505c                 r     U " S[        SS9S9  g ! [         a  n[        U5      S:X  d   e S nAg S nAff = f)NiB  iA  )chroma_server_http_port)r6   r=   ziChroma server http port provided in settings[8001] is different to the one provided in HttpClient: [8002]rF   rI   s     r   0test_http_client_with_inconsistent_port_settingsrN   b   sJ    
(,	
  
Fz{	
{
s    
616)r(   typingr   r   r   r   unittest.mockr   r   chromadb.configr   chromadb.apir	   chromadb.server.fastapir   r   r   fixturer   r   r2   FixtureRequestr3   r8   r>   r@   rC   rK   rN    r/   r   <module>rW      sh    1 1   $ "    	  yD$!67      	)T4"78     #y.) ~674""4~tT)*4 84(  ~  )ItT<Q2R    + +t +
*9 * *
y T 	
$	
		

$
	
r/   