fix(static-device-test): add config_is_valid field to TestResult

This commit is contained in:
2025-10-23 11:54:54 +02:00
committed by Christian Appel
parent ea310f9085
commit 0b20b15083
2 changed files with 21 additions and 3 deletions

View File

@@ -17,7 +17,7 @@ try:
except ImportError: except ImportError:
device_manager = None device_manager = None
TestResult = namedtuple("TestResult", ["name", "success", "message"]) TestResult = namedtuple("TestResult", ["name", "success", "message", "config_is_valid"])
class StaticDeviceAnalysisError(Exception): class StaticDeviceAnalysisError(Exception):
@@ -328,9 +328,12 @@ class StaticDeviceTest:
for name, conf in self.config.items(): for name, conf in self.config.items():
return_val = 0 return_val = 0
status = False status = False
config_is_valid = False
try: try:
return_val += self.validate_schema(name, conf) return_val += self.validate_schema(name, conf)
return_val += self.check_device_classes(name, conf) return_val += self.check_device_classes(name, conf)
if return_val == 0:
config_is_valid = True
if device_manager is not None and connect: if device_manager is not None and connect:
return_val += self.connect_device( return_val += self.connect_device(
name, name,
@@ -345,7 +348,12 @@ class StaticDeviceTest:
self.print_and_write(f"ERROR: {name} failed: {e}") self.print_and_write(f"ERROR: {name} failed: {e}")
finally: finally:
results.append( results.append(
TestResult(name=name, success=status, message="\n".join(print_and_write)) TestResult(
name=name,
success=status,
message="\n".join(print_and_write),
config_is_valid=config_is_valid,
)
) )
print_and_write.clear() print_and_write.clear()
return results return results

View File

@@ -4,7 +4,7 @@ from unittest import mock
import bec_lib import bec_lib
from ophyd_devices.utils.static_device_test import StaticDeviceTest, launch from ophyd_devices.utils.static_device_test import StaticDeviceTest, TestResult, launch
def test_static_device_test(): def test_static_device_test():
@@ -42,3 +42,13 @@ def test_static_device_test_with_config_dict():
assert ret[1].name == "wrong" assert ret[1].name == "wrong"
assert ret[1].success is False assert ret[1].success is False
assert isinstance(ret[1].message, str) assert isinstance(ret[1].message, str)
def test_static_device_test_TestResults():
result = TestResult(
name="test_device", success=True, message="Device is OK", config_is_valid=True
)
assert result.name == "test_device"
assert result.success is True
assert result.message == "Device is OK"
assert result.config_is_valid is True