test: cache test config

This commit is contained in:
wakonig_k 2024-03-11 18:59:13 +01:00
parent b98dd52d6a
commit ec33aa5fdf
3 changed files with 23 additions and 11 deletions

View File

@ -1,16 +1,17 @@
from __future__ import annotations from __future__ import annotations
import builtins import builtins
import copy
import functools
import os import os
import time import time
import uuid import uuid
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from unittest import mock from unittest import mock
import bec_lib
import pytest import pytest
import yaml import yaml
import bec_lib
from bec_lib import BECClient, messages from bec_lib import BECClient, messages
from bec_lib.connector import ConnectorBase from bec_lib.connector import ConnectorBase
from bec_lib.devicemanager import DeviceManagerBase from bec_lib.devicemanager import DeviceManagerBase
@ -40,10 +41,15 @@ def dm():
yield dev_manager 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 @pytest.fixture
def dm_with_devices(dm): def dm_with_devices(dm):
with open(f"{dir_path}/tests/test_config.yaml", "r") as f: dm._session = copy.deepcopy(load_test_config())
dm._session = create_session_from_config(yaml.safe_load(f))
dm._load_session() dm._load_session()
yield dm yield dm

View File

@ -1,3 +1,4 @@
import copy
import os import os
from unittest import mock from unittest import mock
@ -5,7 +6,7 @@ import bec_lib
import pytest import pytest
import yaml import yaml
from bec_lib import messages 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 test_device_manager_ds import device_manager
from device_server.devices.config_update_handler import ConfigUpdateHandler from device_server.devices.config_update_handler import ConfigUpdateHandler
@ -20,8 +21,7 @@ def test_request_response():
device_manager = DeviceManagerDS(service_mock) device_manager = DeviceManagerDS(service_mock)
def get_config_from_mock(): def get_config_from_mock():
with open(f"{dir_path}/tests/test_config.yaml", "r") as session_file: device_manager._session = copy.deepcopy(load_test_config())
device_manager._session = create_session_from_config(yaml.safe_load(session_file))
device_manager._load_session() device_manager._load_session()
def mocked_failed_connection(obj): def mocked_failed_connection(obj):

View File

@ -1,3 +1,5 @@
import copy
import functools
import os import os
from unittest import mock from unittest import mock
@ -48,14 +50,19 @@ class EpicsDeviceMock(DeviceMock):
self._connected = True 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(): def load_device_manager():
service_mock = mock.MagicMock() service_mock = mock.MagicMock()
service_mock.connector = ConnectorMock("", store_data=False) service_mock.connector = ConnectorMock("", store_data=False)
device_manager = DeviceManagerDS(service_mock, "") device_manager = DeviceManagerDS(service_mock, "")
device_manager.connector = service_mock.connector device_manager.connector = service_mock.connector
device_manager.config_update_handler = mock.MagicMock() device_manager.config_update_handler = mock.MagicMock()
with open(f"{dir_path}/tests/test_config.yaml", "r") as session_file: device_manager._session = copy.deepcopy(load_test_config())
device_manager._session = create_session_from_config(yaml.safe_load(session_file))
device_manager._load_session() device_manager._load_session()
return device_manager return device_manager
@ -101,8 +108,7 @@ def test_disable_unreachable_devices():
device_manager = DeviceManagerDS(service_mock) device_manager = DeviceManagerDS(service_mock)
def get_config_from_mock(): def get_config_from_mock():
with open(f"{dir_path}/tests/test_config.yaml", "r") as session_file: device_manager._session = copy.deepcopy(load_test_config())
device_manager._session = create_session_from_config(yaml.safe_load(session_file))
device_manager._load_session() device_manager._load_session()
def mocked_failed_connection(obj): def mocked_failed_connection(obj):