bec-lib 4.4.0__tar.gz → 4.4.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {bec_lib-4.4.0 → bec_lib-4.4.2}/PKG-INFO +1 -1
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/codecs.py +2 -2
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/redis_connector/managed_redis_connection.py +5 -5
- {bec_lib-4.4.0 → bec_lib-4.4.2}/pyproject.toml +1 -1
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_redis_connector_fakeredis.py +30 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_serializer.py +8 -1
- {bec_lib-4.4.0 → bec_lib-4.4.2}/.gitignore +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/README.md +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/__init__.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/_print_versions.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/acl_login.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/actors.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/alarm_handler.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/atlas_models.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/bec_errors.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/bec_service.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/bec_yaml_loader.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/bl_state_manager.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/bl_states.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/builtin_actor_hli.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/callback_handler.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/channel_monitor.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/client.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/config_helper.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/config_values.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/configs/__init__.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/configs/demo_config.yaml +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/configs/openapi_schema.json +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/connector.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/dap_plugin_objects.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/dap_plugins.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/device.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/devicemanager.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/endpoints.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/file_utils.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/live_scan_data.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/lmfit_serializer.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/logger.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/macro_update_handler.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/messages.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/messaging_hooks.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/messaging_services.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/metadata_schema.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/numpy_encoder.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/observer.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/path_optimization.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/pdf_writer.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/plugin_helper.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/position_generators.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/procedures/__init__.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/procedures/helper.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/procedures/hli.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/procedures/status.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/queue_items.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/redis_connector/__init__.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/redis_connector/constants.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/redis_connector/hli.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/redis_connector/streams.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/redis_connector/validation.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/request_context.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/request_items.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/scan_args.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/scan_data_container.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/scan_history.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/scan_input_validator.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/scan_items.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/scan_manager.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/scan_number_container.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/scan_preview.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/scan_repeat.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/scan_report.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/scans.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/scibec_validator.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/script_executor.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/serialization.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/serialization_registry.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/service_config.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/signature_serializer.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/tests/__init__.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/tests/fixtures.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/tests/test_config.yaml +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/tests/test_service_config.yaml +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/tests/utils.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/user_macros.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/__init__.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/copier_jinja_filters.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/deprecation.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/import_utils.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/json_extended.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/plugin_manager/__init__.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/plugin_manager/_constants.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/plugin_manager/_util.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/plugin_manager/create/__init__.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/plugin_manager/create/device.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/plugin_manager/create/scan.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/plugin_manager/create/templates/scan.py.jinja +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/plugin_manager/main.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/proxy.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/pydantic_pretty_print.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/rpc_utils.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/scan_utils.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/threading_utils.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/bec_lib/utils/user_acls_test.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/__init__.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/_additional_for_signature_serializer_test.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/conftest.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_acl_login.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_alarm_handler.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_atlas_models.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_beamline_states.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_bec_logger.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_bec_messages.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_bec_service.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_callback_handler.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_channel_monitor.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_client.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_config_helper.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_core_utils.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_dap_plugins.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_data_container.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_deprecation.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_device_hashing.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_device_manager.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_devices.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_file_utils.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_hli_connector_fakeredis.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_hli_redis_connector.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_import_utils.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_jinja_plugins.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_lmfit_serializer.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_managed_config_values.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_managed_redis_connection.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_messaging_hooks.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_messaging_service.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_metadata_schema.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_observer.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_path_optimization.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_pdf_writer.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_plugin_helper.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_plugin_manager.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_plugin_system.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_position_generators.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_procedure_submission.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_pydantic_pretty_print.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_queue_items.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_roi_endpoints.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_roi_messages.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_scan_context.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_scan_data.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_scan_history.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_scan_items.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_scan_manager.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_scan_object.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_scan_preview.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_scan_repeat.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_scan_report.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_scibec_validator.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_script_executor.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_service_config.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_signature_serializer.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_signature_serializer_with_future_import.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_stream_subs.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_user_macros.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_utils.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/tests/test_yaml_loader.py +0 -0
- {bec_lib-4.4.0 → bec_lib-4.4.2}/util_scripts/init_config.py +0 -0
|
@@ -10,7 +10,7 @@ from pydantic import BaseModel
|
|
|
10
10
|
from bec_lib import messages as messages_module
|
|
11
11
|
from bec_lib import numpy_encoder
|
|
12
12
|
from bec_lib.device import DeviceBase
|
|
13
|
-
from bec_lib.endpoints import EndpointInfo
|
|
13
|
+
from bec_lib.endpoints import EndpointInfo, MessageOp
|
|
14
14
|
from bec_lib.messages import BECMessage, BECStatus
|
|
15
15
|
|
|
16
16
|
|
|
@@ -126,7 +126,7 @@ class EndpointInfoEncoder(BECCodec):
|
|
|
126
126
|
return EndpointInfo(
|
|
127
127
|
endpoint=data["endpoint"],
|
|
128
128
|
message_type=getattr(messages_module, data["message_type"]),
|
|
129
|
-
message_op=data["message_op"],
|
|
129
|
+
message_op=MessageOp(data["message_op"]),
|
|
130
130
|
)
|
|
131
131
|
|
|
132
132
|
|
|
@@ -510,10 +510,7 @@ class ManagedRedisConnection:
|
|
|
510
510
|
[(t, self._redis_conn.xrange(t, "-", end)) for t, end in topics_ids.items()],
|
|
511
511
|
None,
|
|
512
512
|
)
|
|
513
|
-
return (
|
|
514
|
-
self._redis_conn.xread(topics_ids, block=200) or [],
|
|
515
|
-
None,
|
|
516
|
-
) # type: ignore strs are fine key and id types
|
|
513
|
+
return (self._redis_conn.xread(topics_ids, block=200) or [], None) # type: ignore strs are fine key and id types
|
|
517
514
|
except redis.exceptions.ConnectionError:
|
|
518
515
|
return None, self.connection_error_str
|
|
519
516
|
except redis.exceptions.NoPermissionError:
|
|
@@ -556,11 +553,14 @@ class ManagedRedisConnection:
|
|
|
556
553
|
# Then read all the normal streams
|
|
557
554
|
with self._stream_subs.lock:
|
|
558
555
|
normal_topics = self._stream_subs.topic_ids()
|
|
559
|
-
normal_subs = self._stream_subs.normal_subs
|
|
560
556
|
normal_error = None
|
|
561
557
|
if normal_topics:
|
|
562
558
|
response, normal_error = self._try_read_streams(normal_topics)
|
|
563
559
|
if normal_error is None:
|
|
560
|
+
# Take the subscribers after the blocking read so that sub changes during the
|
|
561
|
+
# read take immediate effect
|
|
562
|
+
with self._stream_subs.lock:
|
|
563
|
+
normal_subs = self._stream_subs.normal_subs
|
|
564
564
|
updated_ids = self._handle_stream_msg_list(response, normal_subs)
|
|
565
565
|
else:
|
|
566
566
|
updated_ids = {}
|
|
@@ -427,6 +427,36 @@ def test_redis_connector_register_stream(connected_connector):
|
|
|
427
427
|
assert connector._stream_subs.all_topics == []
|
|
428
428
|
|
|
429
429
|
|
|
430
|
+
@pytest.mark.timeout(5)
|
|
431
|
+
def test_redis_connector_stream_cb_swapped_during_blocking_read(connected_connector):
|
|
432
|
+
"""Callbacks (un)registered while the listener is blocked in xread must (not) receive the
|
|
433
|
+
messages that read returns."""
|
|
434
|
+
connector = connected_connector
|
|
435
|
+
cb_mock1 = mock.Mock(spec=[])
|
|
436
|
+
cb_mock2 = mock.Mock(spec=[])
|
|
437
|
+
in_read = threading.Event()
|
|
438
|
+
proceed = threading.Event()
|
|
439
|
+
orig_read = connector._try_read_streams
|
|
440
|
+
|
|
441
|
+
def blocking_read(topics_ids, from_start=False):
|
|
442
|
+
if not from_start:
|
|
443
|
+
in_read.set()
|
|
444
|
+
proceed.wait(timeout=2)
|
|
445
|
+
return orig_read(topics_ids, from_start)
|
|
446
|
+
|
|
447
|
+
with mock.patch.object(connector, "_try_read_streams", blocking_read):
|
|
448
|
+
connector.register(TestStreamEndpoint, cb=cb_mock1, start_thread=False)
|
|
449
|
+
assert in_read.wait(timeout=2)
|
|
450
|
+
connector.unregister("test", cb=cb_mock1)
|
|
451
|
+
connector.register(TestStreamEndpoint, cb=cb_mock2, start_thread=False)
|
|
452
|
+
connector.xadd("test", {"data": 1})
|
|
453
|
+
proceed.set()
|
|
454
|
+
# raises TimeoutError if the message was dropped instead of delivered to cb_mock2
|
|
455
|
+
connector.poll_messages(timeout=2)
|
|
456
|
+
cb_mock1.assert_not_called()
|
|
457
|
+
cb_mock2.assert_called_once_with({"data": 1})
|
|
458
|
+
|
|
459
|
+
|
|
430
460
|
@pytest.mark.timeout(10)
|
|
431
461
|
def test_redis_connector_register_stream_identical(connected_connector):
|
|
432
462
|
connector = connected_connector
|
|
@@ -12,7 +12,7 @@ from bec_lib import messages
|
|
|
12
12
|
from bec_lib.codecs import BECCodec
|
|
13
13
|
from bec_lib.device import DeviceBase
|
|
14
14
|
from bec_lib.devicemanager import DeviceManagerBase
|
|
15
|
-
from bec_lib.endpoints import MessageEndpoints
|
|
15
|
+
from bec_lib.endpoints import MessageEndpoints, MessageOp
|
|
16
16
|
from bec_lib.serialization import MsgpackSerialization, json_ext, msgpack
|
|
17
17
|
|
|
18
18
|
|
|
@@ -214,6 +214,13 @@ def test_enum_serializer(serializer):
|
|
|
214
214
|
assert serializer.loads(serializer.dumps(CustomEnum.VALUE1)) == "value1"
|
|
215
215
|
|
|
216
216
|
|
|
217
|
+
def test_endpoint_info_decodes_to_enum(serializer):
|
|
218
|
+
endpoint = MessageEndpoints.scan_interlock_enabled()
|
|
219
|
+
restored = serializer.loads(serializer.dumps(endpoint))
|
|
220
|
+
assert restored == endpoint
|
|
221
|
+
assert restored.message_op is MessageOp.STREAM
|
|
222
|
+
|
|
223
|
+
|
|
217
224
|
def test_serializer_encoding_on_failure():
|
|
218
225
|
"""
|
|
219
226
|
Test that an exception raised during serialization is caught and the original object is returned.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|