Files
slic/tests/test_utils_lazypv.py
T
tligui_y 5a211744e5
Run CI Tests / test (push) Successful in 54s
Update tests/test_utils_lazypv.py
2025-08-04 11:51:31 +02:00

45 lines
1.1 KiB
Python

import pytest
import sys
import os
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from slic.utils.lazypv import PV
def test_getattr():
# Only valid kwargs accepted by epics.PV
pv = PV(
"ca://TEST:FLOAT",
form='time',
auto_monitor=True,
verbose=True,
connection_timeout=3.0
)
# Pv not yet instantiated
assert pv._pv is None
# Trigger instantiation by accessing a real attribute
pvname = pv.__getattr__('pvname')
assert isinstance(pvname, str)
assert pvname == "ca://TEST:FLOAT"
assert pv._pv is not None
# access all known epics.PV kwargs via __getattr__
form = pv.__getattr__('form')
assert form == 'time'
auto_monitor = pv.__getattr__('auto_monitor')
assert auto_monitor is True
verbose = pv.__getattr__('verbose')
assert verbose is True
timeout = pv.__getattr__('connection_timeout')
assert isinstance(timeout, (float, int))
assert timeout == 3.0
# Remove the instantiated PV
del pv._pv
pv._pv = None
assert pv._pv is None