
    ug&                        d dl Z d dlmZmZmZ d dlZd dlmZmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlZg dg d	gd
dgdZg dg d	gddgddddddigdZg dg d	gddgddgddddddddgdZdZde
dedeeeeef   f   d ed!ed"dfd#Z e       d$        Z e       d%        Z e       d&        Zej8                  j:                   e       d'               Z e       d(        Zy))    N)DictAnyCallable)SystemSettings)
LogService)skip_if_not_cluster)records)
Collection)g?gffffff@皙	@)g333333?gQ@r   zhttps://example.com/1zhttps://example.com/2)
embeddingsidsid1id2   onegjt?)	int_valuestring_valuefloat_valuer      )r   r   	metadataszthis is doc1 and it's great!zdoc2 is also great!gjt @two)r   r   r   )r   	documentsr   r      
logservice
collectiontest_records_map	test_func	operationreturnc                    d}|j                         D ]c  } |d
i | | j                  |j                  |d      }t        |      t        |d         k(  sJ t	        |      D ]  \  }}	|	j
                  j                  |d   |   k(  sJ |	j
                  j                  |k(  sJ t        j                  d|d   |         j                         }
|	j
                  j                  j                  |
k(  sJ d}d|v r|t        |d   |         z  }|d   |   j                         D ]  \  }}t        |t              r3|	j
                  j                  j                  |   j                  |k(  rGJ t        |t              r3|	j
                  j                  j                  |   j                   |k(  rJ t        |t"              r3|	j
                  j                  j                  |   j$                  |k(  rJ J  d|v r=|dz  }|	j
                  j                  j                  d	   j$                  |d   |   k(  sJ t        |	j
                  j                  j                        |k(  rJ  |t        |      z  }f y )Nr   d   r   fr   r   r   r   zchroma:document )values	pull_logsidlen	enumeraterecordr   arraytobytesvectoritems
isinstanceintmetadatar   floatr   strr   )r   r   r   r   r   start_offsetbatch_recordspushed_recordsir*   	embeddingmetadata_countkeyvalues                 R/var/www/openai/venv/lib/python3.12/site-packages/chromadb/test/test_logservice.pyverify_recordsr=   '   s\    L)002"M"#--jmm\3O>"c-*>&????">2IAv==##}U';A'>>>>==**i777C|)DQ)GHPPRI==''..);;;Nm+#mK&@&C"DD"/"<Q"?"E"E"GJC!%-%}}55>>sCMMQVVVV#E51%}}55>>sCOOSXXXX#E3/"MM22;;C@MMQVVV %u #H m+!#MM**334EFSS$[1!455 v}}--667>III3 34 	N++= 3    c                 B   t        t        d            }|j                  t              }|j	                          | j                          t        j                  t               t        t        t        d}| j                  d      }t        ||||j                  d       y )NTallow_resetr5   metadata_recordscontains_recordstestaddr   )r   r   instancer   startresettimesleepMEMBERLIST_DELAY_SLEEP_TIMEr5   rC   rD   create_collectionr=   addclientsystemr   r   r   s        r<   test_addrQ   P   sx    H./F,J
LLN
LLNJJ*+ ',, )))4J:z+;Z^^QOr>   c                 P   t        t        d            }|j                  t              }|j	                          | j                          t        j                  t               dt        d   d   gg dgddigd	i}| j                  d
      }t        ||||j                  d       y )NTr@   updated_recordsr   r   )g?g?g333333?foobar)r   r   r   
testupdater   )r   r   rF   r   rG   rH   rI   rJ   rK   r
   rL   r=   updaterN   s        r<   test_updaterX   c   s    H./F,J
LLN
LLNJJ*+ 	EN1%&*+ %.)
 )),7J:z+;Z=N=NPQRr>   c                 r   t        t        d            }|j                  t              }|j	                          | j                          t        j                  t               | j                  d      } |j                  di t         |j                  |j                  dd      }t        |      dk(  sJ y )NTr@   
testdeleter   r"   r   r$   )r   r   rF   r   rG   rH   rI   rJ   rK   rL   rM   rD   r&   r'   r(   )rO   rP   r   r   r6   s        r<   test_deleter[   w   s    H./F,J
LLN
LLNJJ*+)),7J JNN&%&))*--C@N~!###r>   c                    t        t        d            }|j                  t              }|j	                          | j                          t        j                  t               | j                  d      }|j                  ddi       |j                  ddi       |j                  ddi       |j                  |j                  d	d
      }t        |      dk(  sJ |j                  ddg       |j                  |j                  d	d
      }t        |      dk(  sJ |D ]7  }|j                  j                  d	k(  sJ |j                  j                  dv r7J  y )NTr@   testdelete_filterz	$containsdoc1)where_documentbadgreat   r"   r   r   r   )r   r   )r   r   )r   r   rF   r   rG   rH   rI   rJ   rK   rL   deleter&   r'   r(   r*   r   )rO   rP   r   r   r6   r*   s         r<   test_delete_filterrd      s<    H./F,J
LLN
LLNJJ*+))*=>J k6%:;k5%9:k7%;<))*--C@N~!### 5%.)))*--C@N~!### }}&&!+++}}>111 !r>   c                 B   t        t        d            }|j                  t              }|j	                          | j                          t        j                  t               t        t        t        d}| j                  d      }t        ||||j                  d       y )NTr@   rB   
testupsertr   )r   r   rF   r   rG   rH   rI   rJ   rK   r5   rC   rD   rL   r=   upsertrN   s        r<   test_upsertrh      s{    H./F,J
LLN
LLNJJ*+ ',, )),7J:z+;Z=N=NPQRr>   ) r+   typingr   r   r   pytestchromadb.configr   r   chromadb.logservice.logservicer   chromadb.test.conftestr	   chromadb.test.test_apir
   chromadb.api.models.Collectionr   rI   r5   rC   rD   rK   r3   r0   r=   rQ   rX   r[   markxfailrd   rh   r$   r>   r<   <module>rr      s    & &  , 5 6 * 5  #$45#%<= #$455>uE	a  #$4502GH5>uEuE	    &,&,&, 3S#X./&, 	&,
 &, 
&,R P P$ S S& $ $  2  22 S Sr>   