bec-lib 4.3.0__tar.gz → 4.3.1__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.3.0 → bec_lib-4.3.1}/PKG-INFO +1 -1
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/bec_service.py +2 -2
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/service_config.py +14 -15
- {bec_lib-4.3.0 → bec_lib-4.3.1}/pyproject.toml +1 -1
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_bec_service.py +2 -2
- bec_lib-4.3.1/tests/test_service_config.py +55 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/.gitignore +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/README.md +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/__init__.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/_print_versions.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/acl_login.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/actors.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/alarm_handler.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/atlas_models.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/bec_errors.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/bec_yaml_loader.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/bl_state_manager.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/bl_states.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/builtin_actor_hli.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/callback_handler.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/channel_monitor.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/client.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/codecs.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/config_helper.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/config_values.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/configs/__init__.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/configs/demo_config.yaml +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/configs/openapi_schema.json +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/connector.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/dap_plugin_objects.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/dap_plugins.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/device.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/devicemanager.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/endpoints.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/file_utils.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/live_scan_data.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/lmfit_serializer.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/logger.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/macro_update_handler.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/messages.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/messaging_hooks.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/messaging_services.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/metadata_schema.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/numpy_encoder.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/observer.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/path_optimization.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/pdf_writer.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/plugin_helper.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/position_generators.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/procedures/__init__.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/procedures/helper.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/procedures/hli.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/procedures/status.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/queue_items.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/redis_connector/__init__.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/redis_connector/constants.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/redis_connector/hli.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/redis_connector/managed_redis_connection.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/redis_connector/streams.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/redis_connector/validation.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/request_context.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/request_items.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/scan_args.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/scan_data_container.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/scan_history.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/scan_input_validator.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/scan_items.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/scan_manager.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/scan_number_container.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/scan_preview.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/scan_repeat.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/scan_report.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/scans.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/scibec_validator.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/script_executor.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/serialization.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/serialization_registry.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/signature_serializer.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/tests/__init__.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/tests/fixtures.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/tests/test_config.yaml +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/tests/test_service_config.yaml +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/tests/utils.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/user_macros.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/__init__.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/copier_jinja_filters.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/deprecation.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/import_utils.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/json_extended.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/plugin_manager/__init__.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/plugin_manager/_constants.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/plugin_manager/_util.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/plugin_manager/create/__init__.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/plugin_manager/create/device.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/plugin_manager/create/scan.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/plugin_manager/create/templates/scan.py.jinja +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/plugin_manager/main.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/proxy.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/pydantic_pretty_print.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/rpc_utils.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/scan_utils.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/threading_utils.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/bec_lib/utils/user_acls_test.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/__init__.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/_additional_for_signature_serializer_test.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/conftest.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_acl_login.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_alarm_handler.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_atlas_models.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_beamline_states.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_bec_logger.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_bec_messages.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_callback_handler.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_channel_monitor.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_client.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_config_helper.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_core_utils.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_dap_plugins.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_data_container.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_deprecation.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_device_hashing.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_device_manager.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_devices.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_file_utils.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_hli_connector_fakeredis.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_hli_redis_connector.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_import_utils.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_jinja_plugins.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_lmfit_serializer.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_managed_config_values.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_managed_redis_connection.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_messaging_hooks.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_messaging_service.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_metadata_schema.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_observer.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_path_optimization.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_pdf_writer.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_plugin_helper.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_plugin_manager.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_plugin_system.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_position_generators.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_pydantic_pretty_print.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_queue_items.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_redis_connector_fakeredis.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_scan_context.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_scan_data.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_scan_history.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_scan_items.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_scan_manager.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_scan_object.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_scan_preview.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_scan_repeat.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_scan_report.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_scibec_validator.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_script_executor.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_serializer.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_signature_serializer.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_signature_serializer_with_future_import.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_stream_subs.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_user_macros.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_utils.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/tests/test_yaml_loader.py +0 -0
- {bec_lib-4.3.0 → bec_lib-4.3.1}/util_scripts/init_config.py +0 -0
|
@@ -83,8 +83,8 @@ def parse_cmdline_args(parser=None, config_name: Literal["client", "server"] | s
|
|
|
83
83
|
parser.add_argument(
|
|
84
84
|
"--use-subprocess-proc-worker",
|
|
85
85
|
action="store_true",
|
|
86
|
-
default=
|
|
87
|
-
help="Use the
|
|
86
|
+
default=None,
|
|
87
|
+
help="Use the subprocess procedure worker for local testing",
|
|
88
88
|
)
|
|
89
89
|
|
|
90
90
|
args, extra_args = parser.parse_known_args()
|
|
@@ -7,7 +7,7 @@ import os
|
|
|
7
7
|
import re
|
|
8
8
|
from getpass import getuser
|
|
9
9
|
from pathlib import Path
|
|
10
|
-
from typing import Any, ClassVar
|
|
10
|
+
from typing import Any, ClassVar
|
|
11
11
|
|
|
12
12
|
import yaml
|
|
13
13
|
from pydantic import BaseModel, Field, model_validator
|
|
@@ -114,21 +114,20 @@ class ServiceConfigModel(BaseModel):
|
|
|
114
114
|
procedures: ProcedureConfig = Field(default_factory=ProcedureConfig)
|
|
115
115
|
|
|
116
116
|
@model_validator(mode="before")
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
self._update_data_for_arg(arg, data)
|
|
122
|
-
return self
|
|
123
|
-
|
|
124
|
-
def _update_data_for_arg(self, arg: tuple[str, Any], data: dict):
|
|
125
|
-
argname, argval = arg
|
|
126
|
-
if argname not in self._CMDLINE_ARGS:
|
|
117
|
+
@classmethod
|
|
118
|
+
def apply_cmdline_args(cls, data: Any) -> Any:
|
|
119
|
+
"""Apply supplied CLI overrides before validating the configuration."""
|
|
120
|
+
if not isinstance(data, dict):
|
|
127
121
|
return data
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
122
|
+
data = data.copy()
|
|
123
|
+
for argname, argval in (data.get("cmdline_args") or {}).items():
|
|
124
|
+
if argname not in cls._CMDLINE_ARGS or argval is None:
|
|
125
|
+
continue
|
|
126
|
+
subconfig, variable = cls._CMDLINE_ARGS[argname]
|
|
127
|
+
values = data.get(subconfig, {})
|
|
128
|
+
if isinstance(values, BaseModel):
|
|
129
|
+
values = values.model_dump()
|
|
130
|
+
data[subconfig] = {**values, variable: argval}
|
|
132
131
|
return data
|
|
133
132
|
|
|
134
133
|
|
|
@@ -408,7 +408,7 @@ def test_parse_cmdline_args_with_config():
|
|
|
408
408
|
"file_log_level": None,
|
|
409
409
|
"redis_log_level": None,
|
|
410
410
|
"bec_server": None,
|
|
411
|
-
"use_subprocess_proc_worker":
|
|
411
|
+
"use_subprocess_proc_worker": None,
|
|
412
412
|
},
|
|
413
413
|
config_name="server",
|
|
414
414
|
)
|
|
@@ -429,7 +429,7 @@ def test_parse_cmdline_args_with_user():
|
|
|
429
429
|
"file_log_level": None,
|
|
430
430
|
"redis_log_level": None,
|
|
431
431
|
"bec_server": None,
|
|
432
|
-
"use_subprocess_proc_worker":
|
|
432
|
+
"use_subprocess_proc_worker": None,
|
|
433
433
|
},
|
|
434
434
|
acl={"user": "admin"},
|
|
435
435
|
config_name="server",
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"""Regression tests for service configuration CLI overrides."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import sys
|
|
6
|
+
|
|
7
|
+
import pytest
|
|
8
|
+
|
|
9
|
+
from bec_lib.bec_service import parse_cmdline_args
|
|
10
|
+
from bec_lib.service_config import ProcedureConfig, ServiceConfig, ServiceConfigModel
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@pytest.mark.parametrize("configured", [True, False])
|
|
14
|
+
@pytest.mark.parametrize("override", [True, False, None])
|
|
15
|
+
def test_procedure_cli_override(configured, override):
|
|
16
|
+
config = ServiceConfig(
|
|
17
|
+
config={"procedures": {"use_subprocess_worker": configured}},
|
|
18
|
+
cmdline_args={"use_subprocess_proc_worker": override},
|
|
19
|
+
)
|
|
20
|
+
assert config.model.procedures.use_subprocess_worker is (
|
|
21
|
+
configured if override is None else override
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def test_cli_override_preserves_config_input():
|
|
26
|
+
data = {"procedures": {"enable_procedures": False, "use_subprocess_worker": False}}
|
|
27
|
+
model = ServiceConfigModel.model_validate(
|
|
28
|
+
data | {"cmdline_args": {"use_subprocess_proc_worker": True, "unknown": True}}
|
|
29
|
+
)
|
|
30
|
+
assert model.procedures.use_subprocess_worker
|
|
31
|
+
assert not model.procedures.enable_procedures
|
|
32
|
+
assert data["procedures"]["use_subprocess_worker"] is False
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def test_cli_override_without_procedure_section():
|
|
36
|
+
config = ServiceConfigModel(cmdline_args={"use_subprocess_proc_worker": True})
|
|
37
|
+
assert config.procedures.use_subprocess_worker
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def test_cli_override_with_model_section():
|
|
41
|
+
config = ServiceConfigModel(
|
|
42
|
+
procedures=ProcedureConfig(enable_procedures=False),
|
|
43
|
+
cmdline_args={"use_subprocess_proc_worker": True},
|
|
44
|
+
)
|
|
45
|
+
assert config.procedures.use_subprocess_worker
|
|
46
|
+
assert not config.procedures.enable_procedures
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
@pytest.mark.parametrize("flag", [[], ["--use-subprocess-proc-worker"]])
|
|
50
|
+
def test_procedure_worker_cli_selection(monkeypatch, tmp_path, flag):
|
|
51
|
+
path = tmp_path / "server.yaml"
|
|
52
|
+
path.write_text("procedures:\n use_subprocess_worker: true\n")
|
|
53
|
+
monkeypatch.setattr(sys, "argv", ["scan-server", "--config", str(path), *flag])
|
|
54
|
+
_, _, config = parse_cmdline_args()
|
|
55
|
+
assert config.model.procedures.use_subprocess_worker
|
|
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
|