feat: lazily init jfj client
This commit is contained in:
1 parent
aade051074
commit
8a51eef4f0
2 files changed
+66
-8
No files matched your search
@@ -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()
|
||||
|
||||
Reference in new issue
Block a user