@@ -296,26 +296,75 @@ def test_import_json_fail(
296296 actual_documents .import_ (generate_companies )
297297
298298
299- def test_import_batch_size (
299+ def test_import_client_batch_size (
300300 generate_companies : typing .List [Companies ],
301301 actual_documents : Documents [Companies ],
302302 actual_api_call : ApiCall ,
303303 delete_all : None ,
304304 create_collection : None ,
305305 mocker : MockFixture ,
306306) -> None :
307- """Test that the Documents object can import documents in batches."""
308- batch_size = 5
307+ """Test that the Documents object can import documents in client-side batches."""
308+ client_batch_size = 5
309309 import_spy = mocker .spy (actual_documents , "import_" )
310310 batch_import_spy = mocker .spy (actual_documents , "_bulk_import" )
311311 request_spy = mocker .spy (actual_api_call , "post" )
312- response = actual_documents .import_ (generate_companies , batch_size = batch_size )
312+ response = actual_documents .import_ (
313+ generate_companies ,
314+ client_batch_size = client_batch_size ,
315+ )
313316
314317 expected = [{"success" : True } for _ in generate_companies ]
315318 assert import_spy .call_count == 1
316- assert batch_import_spy .call_count == len (generate_companies ) // batch_size
317- assert request_spy .call_count == len (generate_companies ) // batch_size
319+ assert batch_import_spy .call_count == len (generate_companies ) // client_batch_size
320+ assert request_spy .call_count == len (generate_companies ) // client_batch_size
321+ assert response == expected
322+
323+
324+ def test_import_batch_size_query_parameter (
325+ generate_companies : typing .List [Companies ],
326+ actual_documents : Documents [Companies ],
327+ actual_api_call : ApiCall ,
328+ delete_all : None ,
329+ create_collection : None ,
330+ mocker : MockFixture ,
331+ ) -> None :
332+ """Test that batch_size arg is sent as an import query parameter."""
333+ request_spy = mocker .spy (actual_api_call , "post" )
334+ response = actual_documents .import_ (generate_companies , batch_size = 42 )
335+
336+ expected = [{"success" : True } for _ in generate_companies ]
337+ assert response == expected
338+ request_spy .assert_called_once_with (
339+ "/collections/companies/documents/import" ,
340+ body = "\n " .join ([json .dumps (doc ) for doc in generate_companies ]),
341+ params = {"batch_size" : 42 },
342+ entity_type = str ,
343+ as_json = False ,
344+ )
345+
346+
347+ def test_import_batch_size_query_parameter_from_import_parameters (
348+ generate_companies : typing .List [Companies ],
349+ actual_documents : Documents [Companies ],
350+ actual_api_call : ApiCall ,
351+ delete_all : None ,
352+ create_collection : None ,
353+ mocker : MockFixture ,
354+ ) -> None :
355+ """Test that import_parameters.batch_size is sent as an import query parameter."""
356+ request_spy = mocker .spy (actual_api_call , "post" )
357+ response = actual_documents .import_ (generate_companies , {"batch_size" : 42 })
358+
359+ expected = [{"success" : True } for _ in generate_companies ]
318360 assert response == expected
361+ request_spy .assert_called_once_with (
362+ "/collections/companies/documents/import" ,
363+ body = "\n " .join ([json .dumps (doc ) for doc in generate_companies ]),
364+ params = {"batch_size" : 42 },
365+ entity_type = str ,
366+ as_json = False ,
367+ )
319368
320369
321370def test_import_return_docs (
@@ -524,6 +573,80 @@ async def test_upsert_async(
524573 assert response == company
525574
526575
576+ async def test_import_batch_size_query_parameter_async (
577+ generate_companies : typing .List [Companies ],
578+ actual_async_documents : AsyncDocuments [Companies ],
579+ actual_async_api_call : AsyncApiCall ,
580+ delete_all : None ,
581+ create_collection : None ,
582+ mocker : MockFixture ,
583+ ) -> None :
584+ """Test that batch_size arg is sent as an import query parameter."""
585+ request_spy = mocker .spy (actual_async_api_call , "post" )
586+ response = await actual_async_documents .import_ (generate_companies , batch_size = 42 )
587+
588+ expected = [{"success" : True } for _ in generate_companies ]
589+ assert response == expected
590+ request_spy .assert_called_once_with (
591+ "/collections/companies/documents/import" ,
592+ body = "\n " .join ([json .dumps (doc ) for doc in generate_companies ]),
593+ params = {"batch_size" : 42 },
594+ entity_type = str ,
595+ as_json = False ,
596+ )
597+
598+
599+ async def test_import_batch_size_query_parameter_from_import_parameters_async (
600+ generate_companies : typing .List [Companies ],
601+ actual_async_documents : AsyncDocuments [Companies ],
602+ actual_async_api_call : AsyncApiCall ,
603+ delete_all : None ,
604+ create_collection : None ,
605+ mocker : MockFixture ,
606+ ) -> None :
607+ """Test that import_parameters.batch_size is sent as an import query parameter."""
608+ request_spy = mocker .spy (actual_async_api_call , "post" )
609+ response = await actual_async_documents .import_ (
610+ generate_companies ,
611+ {"batch_size" : 42 },
612+ )
613+
614+ expected = [{"success" : True } for _ in generate_companies ]
615+ assert response == expected
616+ request_spy .assert_called_once_with (
617+ "/collections/companies/documents/import" ,
618+ body = "\n " .join ([json .dumps (doc ) for doc in generate_companies ]),
619+ params = {"batch_size" : 42 },
620+ entity_type = str ,
621+ as_json = False ,
622+ )
623+
624+
625+ async def test_import_client_batch_size_async (
626+ generate_companies : typing .List [Companies ],
627+ actual_async_documents : AsyncDocuments [Companies ],
628+ actual_async_api_call : AsyncApiCall ,
629+ delete_all : None ,
630+ create_collection : None ,
631+ mocker : MockFixture ,
632+ ) -> None :
633+ """Test that AsyncDocuments can import documents in client-side batches."""
634+ client_batch_size = 5
635+ import_spy = mocker .spy (actual_async_documents , "import_" )
636+ batch_import_spy = mocker .spy (actual_async_documents , "_bulk_import" )
637+ request_spy = mocker .spy (actual_async_api_call , "post" )
638+ response = await actual_async_documents .import_ (
639+ generate_companies ,
640+ client_batch_size = client_batch_size ,
641+ )
642+
643+ expected = [{"success" : True } for _ in generate_companies ]
644+ assert import_spy .call_count == 1
645+ assert batch_import_spy .call_count == len (generate_companies ) // client_batch_size
646+ assert request_spy .call_count == len (generate_companies ) // client_batch_size
647+ assert response == expected
648+
649+
527650async def test_export_async (
528651 actual_async_documents : AsyncDocuments [Companies ],
529652 delete_all : None ,
0 commit comments