From 239766b52ccc273d9ce0c4b8cc6195ac478a3866 Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Tue, 19 Dec 2023 12:50:05 +0100 Subject: [PATCH] Move fixtures to core to allow usage in workflows and process metadata, README --- src/openeo_test_suite/tests/conftest.py | 38 +++++++++++++++++++ .../tests/processes/README.md | 7 +++- .../tests/processes/processing/conftest.py | 38 ------------------- 3 files changed, 43 insertions(+), 40 deletions(-) diff --git a/src/openeo_test_suite/tests/conftest.py b/src/openeo_test_suite/tests/conftest.py index aa8798a..f629a6c 100644 --- a/src/openeo_test_suite/tests/conftest.py +++ b/src/openeo_test_suite/tests/conftest.py @@ -82,6 +82,44 @@ def skip_experimental(request) -> str: return skip +@pytest.fixture(scope="session") +def process_levels(request): + """ + Fixture to get the desired openEO profiles levels. + """ + levels_str = "" + # TODO: also support getting it from a config file? + if request.config.getoption("--process-levels"): + levels_str = request.config.getoption("--process-levels") + elif "OPENEO_PROCESS_LEVELS" in os.environ: + levels_str = os.environ["OPENEO_PROCESS_LEVELS"] + + if isinstance(levels_str, str) and len(levels_str) > 0: + _log.info(f"Testing process levels {levels_str!r}") + return list(map(lambda l: l.strip(), levels_str.split(","))) + else: + return [] + + +@pytest.fixture(scope="session") +def processes(request): + """ + Fixture to get the desired profiles to test against. + """ + processes_str = "" + # TODO: also support getting it from a config file? + if request.config.getoption("--processes"): + processes_str = request.config.getoption("--processes") + elif "OPENEO_PROCESSES" in os.environ: + processes_str = os.environ["OPENEO_PROCESSES"] + + if isinstance(processes_str, str) and len(processes_str) > 0: + _log.info(f"Testing processes {processes_str!r}") + return list(map(lambda p: p.strip(), processes_str.split(","))) + else: + return [] + + @pytest.fixture def auto_authenticate() -> bool: """ diff --git a/src/openeo_test_suite/tests/processes/README.md b/src/openeo_test_suite/tests/processes/README.md index f20fb12..f1f191e 100644 --- a/src/openeo_test_suite/tests/processes/README.md +++ b/src/openeo_test_suite/tests/processes/README.md @@ -9,13 +9,16 @@ ## Individual Process Testing -Examples: +### Examples - `pytest --openeo-backend-url=https://openeo.cloud --processes=min,max` - `pytest --runner=vito --process-levels=L1,L2,L2A` - `pytest --runner=dask` +- `pytest src/openeo_test_suite/tests/processes/processing/test_example.py --runner=dask` -Parameters: +### Parameters + +Specify `src/openeo_test_suite/tests/processes/processing/test_example.py` to only run individual process tests. - `--runner`: The execution engine. One of: - `vito` (needs being installed) diff --git a/src/openeo_test_suite/tests/processes/processing/conftest.py b/src/openeo_test_suite/tests/processes/processing/conftest.py index 68cbf84..3b81dba 100644 --- a/src/openeo_test_suite/tests/processes/processing/conftest.py +++ b/src/openeo_test_suite/tests/processes/processing/conftest.py @@ -27,44 +27,6 @@ def runner(request) -> str: return runner -@pytest.fixture(scope="session") -def process_levels(request): - """ - Fixture to get the desired openEO profiles levels. - """ - levels_str = "" - # TODO: also support getting it from a config file? - if request.config.getoption("--process-levels"): - levels_str = request.config.getoption("--process-levels") - elif "OPENEO_PROCESS_LEVELS" in os.environ: - levels_str = os.environ["OPENEO_PROCESS_LEVELS"] - - if isinstance(levels_str, str) and len(levels_str) > 0: - _log.info(f"Testing process levels {levels_str!r}") - return list(map(lambda l: l.strip(), levels_str.split(","))) - else: - return [] - - -@pytest.fixture(scope="session") -def processes(request): - """ - Fixture to get the desired profiles to test against. - """ - processes_str = "" - # TODO: also support getting it from a config file? - if request.config.getoption("--processes"): - processes_str = request.config.getoption("--processes") - elif "OPENEO_PROCESSES" in os.environ: - processes_str = os.environ["OPENEO_PROCESSES"] - - if isinstance(processes_str, str) and len(processes_str) > 0: - _log.info(f"Testing processes {processes_str!r}") - return list(map(lambda p: p.strip(), processes_str.split(","))) - else: - return [] - - @pytest.fixture def connection( backend_url: str, runner: str, auto_authenticate: bool, capfd