From 6f4ebc04b7c45dad115bfb61ac350ebde918613d Mon Sep 17 00:00:00 2001 From: Robert Rosca <robert.rosca@xfel.eu> Date: Fri, 13 May 2022 11:05:22 +0200 Subject: [PATCH] Add test for invalid run dir, test log output --- tests/test_webservice.py | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/tests/test_webservice.py b/tests/test_webservice.py index 4954fd0df..32bdf0303 100644 --- a/tests/test_webservice.py +++ b/tests/test_webservice.py @@ -1,3 +1,4 @@ +import logging import sys from pathlib import Path from unittest import mock @@ -88,7 +89,6 @@ def test_parse_config(): for dcache in [None, None, "DESY_DCACHE_RAW_CC"] } ) - async def test_wait_on_transfer( tmp_path: Path, run_links_to: str, @@ -143,6 +143,38 @@ async def test_wait_on_transfer( if not expected_error: raise e + +@pytest.mark.parametrize( + "repositories", + { + (gpfs_online, gpfs_offline, dcache) + for gpfs_online in [None, None, "XFEL_GPFS_ONLINE_RAW_CC"] + for gpfs_offline in [None, None, "XFEL_GPFS_OFFLINE_RAW_CC"] + for dcache in [None, None, "DESY_DCACHE_RAW_CC"] + } +) +@pytest.mark.asyncio +async def test_wait_on_transfer_invalid_run_dir(caplog, repositories): + response = mock.Mock() + response.status_code = 200 + response.json = lambda: {"runs": [{"repositories": {r: None for r in repositories}}]} + client = mock.Mock() + client.get_runs_by_proposal_number_api = mock.Mock(return_value=response) + + caplog.set_level(logging.WARNING) + + res = await wait_on_transfer( + client, + run=0, + proposal=str(10), + run_dir=Path("/invalid/run/dir"), + max_tries=1, + sleep_completion=0, + ) + + assert res is None + assert "is not relative to" in caplog.text + @pytest.mark.asyncio @pytest.mark.parametrize( "mock_json, status_code, exception_class, exception_match", -- GitLab