
    ug                     8    d dl mZ d dlmZ d dlmZ deddfdZy)    )ThreadPoolExecutor)DEFAULT_TENANT)ClientFactoriesclient_factoriesreturnNc                 :     j                         j                           j                         }|j                  d       d}d}t	        |      D cg c]  }d| 	 c}D ]  }|j                  |        t	        |      D cg c]  }d| 	 c}dt
        ddf fd	}t        |
      5 }|j                  |t	        |             ddd       j                  d        j                  j                  j                        D ]n  }j                  |       j                         }t        |      |k(  sJ |D ]6  }	j                  |	      }
|
j                  v sJ |
j                   d|ik(  r6J  p yc c}w c c}w # 1 sw Y   xY w)zNTests running multiple clients, each against their own database, concurrently.test_db2   
   db
collectionnr   Nc                     j                  t        |    j                  j                        }D ]  }|j	                  |d|    i        y )N)tenantdatabasesettingsr   )metadata)create_clientr   _systemr   create_collection)r   thread_clientr   clientr   collections	databasess      k/var/www/openai/venv/lib/python3.12/site-packages/chromadb/test/client/test_multiple_clients_concurrency.py
run_targetz6test_multiple_clients_concurrently.<locals>.run_target   s\    (66!q\^^,, 7 

 &J++j)A,%? ,  &    )max_workersT)wait)r   r   )r   resetcreate_admin_client_from_systemcreate_databaserangeintr   mapshutdownr   r   set_databaselist_collectionslenget_collectionnamer   )r   admin_clientCLIENT_COUNTCOLLECTION_COUNTir   r   executorseen_collectionscollection_namer   r   r   r   s   `          @@@r   "test_multiple_clients_concurrentlyr3      s   ++-F
LLN#CCEL  +L $)#67#6a2aS#67I$$X.  .33C-DE-DZs#-DEK	c 	d 	 	 
	5Z|!45 
64 ++V^^5L5L+MF H%!224#$(8888/O..?J??k111&&:x*@@@@  0	 3 8 F 
6	5s   FF7FF)concurrent.futuresr   chromadb.configr   chromadb.test.conftestr   r3    r   r   <module>r8      s$    1 * 2+A +AT +Ar   