feat: lazily init jfj client

This commit is contained in:
perl_d authored and duan_j committed 2026-08-11 13:02:54 +02:00
1 parent aade051074
commit 8a51eef4f0
2 files changed
+66 -8

No files matched your search

+17 -1
View File
@@ -34,7 +34,10 @@ def mock_jfjoch_client():
@pytest.fixture
def jfjoch_wrapper(mock_jfjoch_client):
return JFJochWrapper(MXBeamline.X10SA)
wrapper = JFJochWrapper(MXBeamline.X10SA)
# the client/api are created lazily, connect up front so tests start from a live wrapper
wrapper.connect()
return wrapper
def create_mock_daq_status():
@@ -107,6 +110,19 @@ def test_init_unknown():
JFJochWrapper("UNKNOWN")
def test_client_is_created_lazily(mock_jfjoch_client):
wrapper = JFJochWrapper(MXBeamline.X10SA)
assert wrapper._connected is False
mock_jfjoch_client.status_get.assert_not_called()
# a decorated method connects on demand, further calls reuse the same api
wrapper.is_idle()
assert wrapper._connected is True
api = wrapper._api
wrapper.is_idle()
assert wrapper._api is api
def test_initialize(jfjoch_wrapper, mock_jfjoch_client):
mock_jfjoch_client.initialize_post.reset_mock()
jfjoch_wrapper.initialize()