diff --git a/servicex/dataset_group.py b/servicex/dataset_group.py index 32d67d88..afef15bc 100644 --- a/servicex/dataset_group.py +++ b/servicex/dataset_group.py @@ -74,7 +74,11 @@ async def as_signed_urls_async( display_progress, provided_progress, overall_progress=overall_progress ) as progress: self.tasks = [ - d.as_signed_urls_async(provided_progress=progress, dataset_group=True) + d.as_signed_urls_async( + display_progress=display_progress, + provided_progress=progress, + dataset_group=True, + ) for d in self.datasets ] return await asyncio.gather( @@ -97,7 +101,10 @@ async def as_files_async( display_progress, provided_progress, overall_progress=overall_progress ) as progress: self.tasks = [ - d.as_files_async(provided_progress=progress) for d in self.datasets + d.as_files_async( + display_progress=display_progress, provided_progress=progress + ) + for d in self.datasets ] return await asyncio.gather( *self.tasks, return_exceptions=return_exceptions diff --git a/tests/conftest.py b/tests/conftest.py index 772abd12..c152b6cf 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -222,3 +222,9 @@ def codegen_list(): "uproot": "http://servicex-code-gen-uproot:8000", "uproot-raw": "http://servicex-code-gen-uproot-raw:8000", } + + +# This exists to force an async event loop to be created +@fixture +async def with_event_loop(): + pass diff --git a/tests/test_databinder.py b/tests/test_databinder.py index c6b7a407..704d9b3f 100644 --- a/tests/test_databinder.py +++ b/tests/test_databinder.py @@ -897,7 +897,7 @@ def test_generic_query(codegen_list): ) -def test_deliver_progress_options(transformed_result, codegen_list): +def test_deliver_progress_options(transformed_result, codegen_list, with_event_loop): from servicex import deliver, ProgressBarFormat from servicex.query import UprootRaw # type: ignore @@ -912,31 +912,49 @@ def test_deliver_progress_options(transformed_result, codegen_list): ] } ) + + async def fake_submit(signed_urls_only, expandable_progress): + expandable_progress.add_task("zip", start=False, total=None) + return transformed_result + with ( - patch( - "servicex.dataset_group.DatasetGroup.as_files", - return_value=[transformed_result], - ), patch( "servicex.servicex_client.ServiceXClient.get_code_generators", return_value=codegen_list, ), + patch( + "servicex.servicex_adapter.ServiceXAdapter._get_authorization", + return_value={"Authorization": "Bearer aaa"}, + ), + patch( + "servicex.query_core.Query.submit_and_download", + side_effect=fake_submit, + ), ): - deliver( + import servicex.query_core + + rv = deliver( spec, config_path="tests/example_config.yaml", progress_bar=ProgressBarFormat.compact, ) - deliver( + servicex.query_core.Query.submit_and_download.assert_called_once() + assert rv is not None + assert rv["sampleA"].valid() + rv = deliver( spec, config_path="tests/example_config.yaml", progress_bar=ProgressBarFormat.none, ) + assert rv is not None + assert rv["sampleA"].valid() deliver( spec, config_path="tests/example_config.yaml", progress_bar=ProgressBarFormat.expanded, ) + assert rv is not None + assert rv["sampleA"].valid() with pytest.raises(ValueError): deliver( spec,