o
    gg                     @   s   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	m
Z
 d dlZdeddfdd	Zdeddfd
dZdeddfddZdeddfddZdede	ee
f ddfddZdS )    N)DEFAULT_DATABASEDEFAULT_TENANT)ClientFactories)	GetResult)DictAnyclient_factoriesreturnc                 C   s^  |   }|  |  }|d |jtdd |jdddid |jttd |jddtid | }t	|dks=J |d dksEJ |
|d }|jdtiksUJ |jtdd | }t	|dkshJ |
|d }|jddiksxJ |jttd |
| d }|jddid |jtdd |
| d }|jdd	id |jttd | }t	|dksJ |
|d }|jddiksJ |jtdd | }t	|dksJ |
|d }|jdd	iksJ |jttd |d | }t	|dksJ |jtdd | }t	|dksJ |d | }t	|dks-J d S )
Ntest_dbtenantdatabase
collectionr   )metadata   r   default2test_db2)create_clientresetcreate_admin_client_from_systemcreate_database
set_tenantr   create_collectionr   list_collectionslenget_collectionr   modifydelete_collection)r   clientadmin_clientcollectionsr    r!   `/var/www/visachat/venv/lib/python3.10/site-packages/chromadb/test/client/test_database_tenant.py test_database_tenant_collections	   sX   


r#   c                 C   s>  |   }|  |  }|d |jdd |d}|jtd |d}g ddd tdD g dd	}g d
dd tdD g d
d	}|jdi | |jdi | |j	ddgd}|d |d kskJ t
||d |d |d ks{J |j	ddgd}|d |d ksJ t
||d |d |d ksJ d S )Nr
   )r   collection_newcollection_defaultabcc                 S      g | ]}g d qS )g      ?g       @g      @r!   .0_r!   r!   r"   
<listcomp>^       z1test_database_collections_add.<locals>.<listcomp>   ids
embeddings	documentsr)   dec                 S   r*   )g      @g      @g      @r!   r,   r!   r!   r"   r/   d   r0   r4   r5   includer3   resrecordsr!   )r   r   r   r   set_databaser   r   rangeaddgetcheck_embeddings)r   r   r   coll_newcoll_defaultrecords_newrecords_defaultr=   r!   r!   r"   test_database_collections_addL   s4   


rH   c                 C   sh  |   }|  |  }|d |d |jddd |jddd |jddd |d}|jddd |d}g ddd	 td
D g dd}g ddd	 td
D g dd}|jdi | |jdi | |j	ddgd}|d |d ksJ t
||d |d |d ksJ |j	ddgd}|d |d ksJ t
||d |d |d ksJ d S )Ntest_tenant1test_tenant2r
   )r   r   r   r&   c                 S   r*   r+   r!   r,   r!   r!   r"   r/      r0   z/test_tenant_collections_add.<locals>.<listcomp>r1   r2   r6   c                 S   r*   r9   r!   r,   r!   r!   r"   r/      r0   r4   r5   r:   r3   r<   r!   )r   r   r   create_tenantr   r   r   r@   rA   rB   rC   )r   r   r   coll_tenant1coll_tenant2records_tenant1records_tenant2r=   r!   r!   r"   test_tenant_collections_addz   s:   



rP   c                 C   s   |   }|  |  }tt |d W d    n1 s!w   Y  tt |d W d    d S 1 s<w   Y  d S )Nr'   )r   r   r   pytestraises	Exceptionr   rK   )r   r   r   r!   r!   r"   test_min_len_name   s   "rT   r=   r>   c                 C   s<   | d d urt | d |d sJ d S |d d u sJ d S )Nr4   )nparray_equalr<   r!   r!   r"   rC      s   rC   )rQ   chromadb.configr   r   chromadb.test.conftestr   chromadb.api.typesr   typingr   r   numpyrU   r#   rH   rP   rT   strrC   r!   r!   r!   r"   <module>   s    C./"