diff --git a/bec_lib/bec_lib/tests/utils.py b/bec_lib/bec_lib/tests/utils.py index bb0b2117..504336f4 100644 --- a/bec_lib/bec_lib/tests/utils.py +++ b/bec_lib/bec_lib/tests/utils.py @@ -1,16 +1,17 @@ from __future__ import annotations import builtins +import copy +import functools import os import time import uuid from typing import TYPE_CHECKING from unittest import mock +import bec_lib import pytest import yaml - -import bec_lib from bec_lib import BECClient, messages from bec_lib.connector import ConnectorBase from bec_lib.devicemanager import DeviceManagerBase @@ -40,10 +41,15 @@ def dm(): yield dev_manager +@functools.lru_cache +def load_test_config(): + with open(f"{dir_path}/tests/test_config.yaml", "r", encoding="utf-8") as f: + return create_session_from_config(yaml.safe_load(f)) + + @pytest.fixture def dm_with_devices(dm): - with open(f"{dir_path}/tests/test_config.yaml", "r") as f: - dm._session = create_session_from_config(yaml.safe_load(f)) + dm._session = copy.deepcopy(load_test_config()) dm._load_session() yield dm diff --git a/device_server/tests/test_config_handler.py b/device_server/tests/test_config_handler.py index d73a200c..7493fe5b 100644 --- a/device_server/tests/test_config_handler.py +++ b/device_server/tests/test_config_handler.py @@ -1,3 +1,4 @@ +import copy import os from unittest import mock @@ -5,7 +6,7 @@ import bec_lib import pytest import yaml from bec_lib import messages -from bec_lib.tests.utils import ConnectorMock, create_session_from_config +from bec_lib.tests.utils import ConnectorMock, create_session_from_config, load_test_config from test_device_manager_ds import device_manager from device_server.devices.config_update_handler import ConfigUpdateHandler @@ -20,8 +21,7 @@ def test_request_response(): device_manager = DeviceManagerDS(service_mock) def get_config_from_mock(): - with open(f"{dir_path}/tests/test_config.yaml", "r") as session_file: - device_manager._session = create_session_from_config(yaml.safe_load(session_file)) + device_manager._session = copy.deepcopy(load_test_config()) device_manager._load_session() def mocked_failed_connection(obj): diff --git a/device_server/tests/test_device_manager_ds.py b/device_server/tests/test_device_manager_ds.py index f72f2fc0..10cc0ff4 100644 --- a/device_server/tests/test_device_manager_ds.py +++ b/device_server/tests/test_device_manager_ds.py @@ -1,3 +1,5 @@ +import copy +import functools import os from unittest import mock @@ -48,14 +50,19 @@ class EpicsDeviceMock(DeviceMock): self._connected = True +@functools.lru_cache() +def load_test_config(): + with open(f"{dir_path}/tests/test_config.yaml", "r", encoding="utf-8") as session_file: + return create_session_from_config(yaml.safe_load(session_file)) + + def load_device_manager(): service_mock = mock.MagicMock() service_mock.connector = ConnectorMock("", store_data=False) device_manager = DeviceManagerDS(service_mock, "") device_manager.connector = service_mock.connector device_manager.config_update_handler = mock.MagicMock() - with open(f"{dir_path}/tests/test_config.yaml", "r") as session_file: - device_manager._session = create_session_from_config(yaml.safe_load(session_file)) + device_manager._session = copy.deepcopy(load_test_config()) device_manager._load_session() return device_manager @@ -101,8 +108,7 @@ def test_disable_unreachable_devices(): device_manager = DeviceManagerDS(service_mock) def get_config_from_mock(): - with open(f"{dir_path}/tests/test_config.yaml", "r") as session_file: - device_manager._session = create_session_from_config(yaml.safe_load(session_file)) + device_manager._session = copy.deepcopy(load_test_config()) device_manager._load_session() def mocked_failed_connection(obj):