@@ -204,8 +204,18 @@ def cache_transform(record: TransformedResults):
204
204
@pytest .mark .asyncio
205
205
async def test_submit (mocker ):
206
206
servicex = AsyncMock ()
207
+
207
208
servicex .submit_transform = AsyncMock ()
208
209
servicex .submit_transform .return_value = {"request_id" : '123-456-789"' }
210
+
211
+ servicex .get_transformation_results = AsyncMock (side_effect = [
212
+ [{"file-path" : file1 .filename }],
213
+ [
214
+ {"file-path" : file1 .filename },
215
+ {"file-path" : file2 .filename },
216
+ ],
217
+ ])
218
+
209
219
servicex .get_transform_status = AsyncMock ()
210
220
servicex .get_transform_status .side_effect = [
211
221
transform_status1 ,
@@ -214,7 +224,6 @@ async def test_submit(mocker):
214
224
]
215
225
216
226
mock_minio = AsyncMock ()
217
- mock_minio .list_bucket = AsyncMock (side_effect = [[file1 ], [file1 , file2 ]])
218
227
mock_minio .download_file = AsyncMock (
219
228
side_effect = lambda a , _ , shorten_filename : PurePath (a )
220
229
)
@@ -235,6 +244,7 @@ async def test_submit(mocker):
235
244
config = Configuration (api_endpoints = []),
236
245
)
237
246
datasource .query_string_generator = FuncADLQuery_Uproot ().FromTree ("nominal" )
247
+
238
248
with ExpandableProgress (display_progress = False ) as progress :
239
249
datasource .result_format = ResultFormat .parquet
240
250
result = await datasource .submit_and_download (
@@ -245,11 +255,18 @@ async def test_submit(mocker):
245
255
mock_cache .cache_transform .assert_called_once ()
246
256
247
257
258
+
248
259
@pytest .mark .asyncio
249
260
async def test_submit_partial_success (mocker ):
250
261
servicex = AsyncMock ()
251
262
servicex .submit_transform = AsyncMock ()
252
263
servicex .submit_transform .return_value = {"request_id" : '123-456-789"' }
264
+
265
+ servicex .get_transformation_results = AsyncMock (side_effect = [
266
+ [{"file-path" : file1 .filename }],
267
+ [{"file-path" : file1 .filename }],
268
+ ])
269
+
253
270
servicex .get_transform_status = AsyncMock ()
254
271
servicex .get_transform_status .side_effect = [
255
272
transform_status1 ,
@@ -258,7 +275,6 @@ async def test_submit_partial_success(mocker):
258
275
]
259
276
260
277
mock_minio = AsyncMock ()
261
- mock_minio .list_bucket = AsyncMock (side_effect = [[file1 ], [file1 ]])
262
278
mock_minio .download_file = AsyncMock (
263
279
side_effect = lambda a , _ , shorten_filename : PurePath (a )
264
280
)
@@ -295,13 +311,16 @@ async def test_use_of_cache(mocker):
295
311
servicex = AsyncMock ()
296
312
servicex .submit_transform = AsyncMock ()
297
313
servicex .submit_transform .return_value = {"request_id" : '123-456-789"' }
314
+ servicex .get_transformation_results = AsyncMock (return_value = [
315
+ {"file-path" : file1 .filename },
316
+ {"file-path" : file2 .filename }
317
+ ])
298
318
servicex .get_transform_status = AsyncMock ()
299
319
servicex .get_transform_status .side_effect = [
300
320
transform_status1 ,
301
321
transform_status3 ,
302
322
]
303
323
mock_minio = AsyncMock ()
304
- mock_minio .list_bucket = AsyncMock (return_value = [file1 , file2 ])
305
324
mock_minio .download_file = AsyncMock (
306
325
side_effect = lambda a , _ , shorten_filename : PurePath (a )
307
326
)
@@ -336,7 +355,7 @@ async def test_use_of_cache(mocker):
336
355
# second round, should hit the cache (and not call the sx_adapter, minio, or update_record)
337
356
with ExpandableProgress (display_progress = False ) as progress :
338
357
servicex2 = AsyncMock ()
339
- mock_minio . list_bucket .reset_mock ()
358
+ servicex . get_transformation_results .reset_mock ()
340
359
mock_minio .get_signed_url .reset_mock ()
341
360
datasource2 = Query (
342
361
dataset_identifier = did ,
@@ -354,14 +373,14 @@ async def test_use_of_cache(mocker):
354
373
signed_urls_only = True , expandable_progress = progress
355
374
)
356
375
servicex2 .assert_not_awaited ()
357
- mock_minio . list_bucket .assert_not_awaited ()
376
+ servicex . get_transformation_results .assert_not_awaited ()
358
377
mock_minio .get_signed_url .assert_not_awaited ()
359
378
upd .assert_not_called ()
360
379
assert result1 == result2
361
380
upd .reset_mock ()
362
381
servicex .get_transform_status .reset_mock (side_effect = True )
363
382
servicex .get_transform_status .return_value = transform_status3
364
- mock_minio . list_bucket .reset_mock (side_effect = True )
383
+ servicex . get_transformation_results .reset_mock (side_effect = True )
365
384
# third round, should hit the cache and download files (and call update_record)
366
385
with ExpandableProgress (display_progress = False ) as progress :
367
386
await datasource .submit_and_download (
@@ -371,14 +390,14 @@ async def test_use_of_cache(mocker):
371
390
assert mock_minio .download_file .await_count == 2
372
391
upd .assert_called_once ()
373
392
# fourth round, should hit the cache (and nothing else)
374
- mock_minio . list_bucket .reset_mock ()
393
+ servicex . get_transformation_results .reset_mock ()
375
394
mock_minio .download_file .reset_mock ()
376
395
with ExpandableProgress (display_progress = False ) as progress :
377
396
await datasource .submit_and_download (
378
397
signed_urls_only = False , expandable_progress = progress
379
398
)
380
399
servicex .assert_not_awaited ()
381
- mock_minio . list_bucket .assert_not_awaited ()
400
+ servicex . get_transformation_results .assert_not_awaited ()
382
401
mock_minio .download_file .assert_not_awaited ()
383
402
upd .assert_called_once ()
384
403
cache .close ()
@@ -396,7 +415,6 @@ async def test_submit_cancel(mocker):
396
415
]
397
416
398
417
mock_minio = AsyncMock ()
399
- mock_minio .list_bucket = AsyncMock (side_effect = [[file1 ], [file1 ]])
400
418
mock_minio .download_file = AsyncMock (
401
419
side_effect = lambda a , _ , shorten_filename : PurePath (a )
402
420
)
@@ -437,7 +455,6 @@ async def test_submit_fatal(mocker):
437
455
]
438
456
439
457
mock_minio = AsyncMock ()
440
- mock_minio .list_bucket = AsyncMock (side_effect = [[file1 ], [file1 ]])
441
458
mock_minio .download_file = AsyncMock (
442
459
side_effect = lambda a , _ , shorten_filename : PurePath (a )
443
460
)
@@ -482,7 +499,6 @@ async def test_submit_generic(mocker, codegen_list):
482
499
]
483
500
484
501
mock_minio = AsyncMock ()
485
- mock_minio .list_bucket = AsyncMock (side_effect = [[file1 ], [file1 , file2 ]])
486
502
mock_minio .download_file = AsyncMock ()
487
503
488
504
mock_cache = mocker .MagicMock (QueryCache )
@@ -531,7 +547,6 @@ async def test_submit_cancelled(mocker, codegen_list):
531
547
sx .get_transform_status .side_effect = [transform_status4 ]
532
548
533
549
mock_minio = AsyncMock ()
534
- mock_minio .list_bucket = AsyncMock (side_effect = [[file1 ], [file1 , file2 ]])
535
550
mock_minio .download_file = AsyncMock ()
536
551
537
552
mock_cache = mocker .MagicMock (QueryCache )
@@ -601,10 +616,12 @@ async def test_use_of_ignore_cache(mocker, servicex):
601
616
transform_status3 ,
602
617
]
603
618
)
604
-
619
+ servicex .get_transformation_results = AsyncMock (return_value = [
620
+ {"file-path" : file1 .filename },
621
+ {"file-path" : file2 .filename }
622
+ ])
605
623
# Prepare Minio
606
624
mock_minio = AsyncMock ()
607
- mock_minio .list_bucket = AsyncMock (return_value = [file1 , file2 ])
608
625
mock_minio .get_signed_url = AsyncMock (side_effect = ["http://file1" , "http://file2" ])
609
626
mocker .patch ("servicex.minio_adapter.MinioAdapter" , return_value = mock_minio )
610
627
did = FileListDataset ("/foo/bar/baz.root" )
@@ -674,13 +691,13 @@ async def test_use_of_ignore_cache(mocker, servicex):
674
691
transform_status1 ,
675
692
transform_status3 ,
676
693
]
677
- mock_minio . list_bucket .reset_mock ()
694
+ servicex . get_transformation_results .reset_mock ()
678
695
mock_minio .download_file .reset_mock ()
679
696
with ExpandableProgress (display_progress = False ) as progress :
680
697
res = await datasource_without_ignore_cache .submit_and_download (
681
698
signed_urls_only = True , expandable_progress = progress
682
699
) # noqa
683
- mock_minio . list_bucket .assert_not_awaited ()
700
+ servicex . get_transformation_results .assert_not_awaited ()
684
701
mock_minio .download_file .assert_not_awaited ()
685
702
assert len (res .signed_url_list ) == 2
686
703
cache .close ()
0 commit comments