diff --git a/src/openeo_test_suite/lib/internal-tests/test_process_selection.py b/src/openeo_test_suite/lib/internal-tests/test_process_selection.py index 25d30f2..9df9a76 100644 --- a/src/openeo_test_suite/lib/internal-tests/test_process_selection.py +++ b/src/openeo_test_suite/lib/internal-tests/test_process_selection.py @@ -1,4 +1,4 @@ -from openeo_test_suite.lib.process_selection import csv_to_list +from openeo_test_suite.lib.process_selection import csv_to_list, get_selected_processes def test_csv_to_list(): @@ -18,3 +18,12 @@ def test_csv_to_list_none_on_empty(): assert csv_to_list("", none_on_empty=True) is None assert csv_to_list(" ", none_on_empty=True) is None assert csv_to_list(" , ", none_on_empty=True) is None + + +def test_get_selected_processes_caching(): + processes = get_selected_processes() + assert len(processes) > 0 + + processes2 = get_selected_processes() + assert processes2 is processes + assert len(processes2) > 0 diff --git a/src/openeo_test_suite/lib/process_registry.py b/src/openeo_test_suite/lib/process_registry.py index 25b1a62..eea2ca4 100644 --- a/src/openeo_test_suite/lib/process_registry.py +++ b/src/openeo_test_suite/lib/process_registry.py @@ -91,7 +91,7 @@ def get_processes_filtered( process_ids: Optional[List[str]] = None, process_levels: Optional[List[str]] = None, experimental: bool = False, - ) -> Iterable[ProcessData]: + ) -> Iterator[ProcessData]: """ Collect processes matching with additional filtering: diff --git a/src/openeo_test_suite/lib/process_selection.py b/src/openeo_test_suite/lib/process_selection.py index e744a68..996adf0 100644 --- a/src/openeo_test_suite/lib/process_selection.py +++ b/src/openeo_test_suite/lib/process_selection.py @@ -42,7 +42,7 @@ def set_process_selection_from_config(config: pytest.Config): # TODO: more structural/testable solution for get_selected_processes related caching? @functools.lru_cache() -def get_selected_processes() -> Iterable[ProcessData]: +def get_selected_processes() -> List[ProcessData]: """ Get effective list of processes extracted from the process registry with filtering based on command line options @@ -51,10 +51,12 @@ def get_selected_processes() -> Iterable[ProcessData]: global _process_filters assert isinstance(_process_filters, ProcessFilters) - return ProcessRegistry().get_processes_filtered( - process_ids=_process_filters.process_ids, - process_levels=_process_filters.process_levels, - experimental=_process_filters.experimental, + return list( + ProcessRegistry().get_processes_filtered( + process_ids=_process_filters.process_ids, + process_levels=_process_filters.process_levels, + experimental=_process_filters.experimental, + ) )