mirror of
https://github.com/ivan-usov-org/bec.git
synced 2025-04-21 18:20:01 +02:00
refactor!: moved services to bec_server
All services are now in the bec_server package. This is a breaking change as the standalone import of the services will no longer work.
This commit is contained in:
parent
2a7a93ef6e
commit
405d12e74a
@ -39,15 +39,6 @@ stages:
|
|||||||
- Build
|
- Build
|
||||||
- Deploy
|
- Deploy
|
||||||
|
|
||||||
.install-bec-services: &install-bec-services
|
|
||||||
- pip install -e ./device_server
|
|
||||||
- pip install -e ./scan_server
|
|
||||||
- pip install -e ./scan_bundler
|
|
||||||
- pip install -e ./bec_client
|
|
||||||
- pip install -e ./file_writer
|
|
||||||
- pip install -e ./scihub
|
|
||||||
- pip install -e ./data_processing
|
|
||||||
|
|
||||||
.install-bec-services-dev: &install-bec-services-dev
|
.install-bec-services-dev: &install-bec-services-dev
|
||||||
- pip install wheel
|
- pip install wheel
|
||||||
- pip install -e ./bec_server[dev]
|
- pip install -e ./bec_server[dev]
|
||||||
@ -69,7 +60,7 @@ pylint:
|
|||||||
- pip install pylint pylint-exit anybadge
|
- pip install pylint pylint-exit anybadge
|
||||||
script:
|
script:
|
||||||
- mkdir ./pylint
|
- mkdir ./pylint
|
||||||
- pylint ./data_processing/data_processing ./bec_lib/bec_lib ./scan_server/scan_server ./device_server/device_server ./scan_bundler/scan_bundler ./bec_client/bec_client ./file_writer/file_writer --output-format=text | tee ./pylint/pylint.log || pylint-exit $?
|
- pylint ./bec_server/bec_server ./bec_lib/bec_lib ./bec_client/bec_client --output-format=text | tee ./pylint/pylint.log || pylint-exit $?
|
||||||
- PYLINT_SCORE=$(sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' ./pylint/pylint.log)
|
- PYLINT_SCORE=$(sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' ./pylint/pylint.log)
|
||||||
- anybadge --label=Pylint --file=pylint/pylint.svg --value=$PYLINT_SCORE 2=red 4=orange 8=yellow 10=green
|
- anybadge --label=Pylint --file=pylint/pylint.svg --value=$PYLINT_SCORE 2=red 4=orange 8=yellow 10=green
|
||||||
- echo "Pylint score is $PYLINT_SCORE"
|
- echo "Pylint score is $PYLINT_SCORE"
|
||||||
@ -123,7 +114,7 @@ tests:
|
|||||||
- apt-get install -y gcc
|
- apt-get install -y gcc
|
||||||
- apt-get install -y redis
|
- apt-get install -y redis
|
||||||
- *install-bec-services-dev
|
- *install-bec-services-dev
|
||||||
- coverage run --source=./data_processing/data_processing,./bec_lib/bec_lib,./device_server/device_server,./scan_server/scan_server,./scan_bundler/scan_bundler,./bec_client/bec_client,./file_writer/file_writer,./scihub/scihub --omit=*/bec_client/bec_client/plugins/*,*/bec_client/scripts/*,./bec_lib/bec_lib/tests -m pytest -v --junitxml=report.xml --random-order ./data_processing/tests ./scan_server/tests ./device_server/tests ./scan_bundler/tests ./bec_client/tests/client_tests ./file_writer/tests ./scihub/tests ./bec_lib/tests
|
- coverage run --source=./bec_server/bec_server,./bec_lib/bec_lib,./bec_client/bec_client, --omit=*/bec_server/scan_server/scan_plugins/*,*/bec_client/bec_client/plugins/*,*/bec_client/scripts/*,./bec_lib/bec_lib/tests -m pytest -v --junitxml=report.xml --random-order ./bec_server/tests ./bec_client/tests/client_tests ./bec_lib/tests
|
||||||
- coverage report
|
- coverage report
|
||||||
- coverage xml
|
- coverage xml
|
||||||
coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
|
coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
|
||||||
@ -147,7 +138,7 @@ tests-3.11:
|
|||||||
- apt-get install -y gcc
|
- apt-get install -y gcc
|
||||||
- apt-get install -y redis
|
- apt-get install -y redis
|
||||||
- *install-bec-services-dev
|
- *install-bec-services-dev
|
||||||
- pytest -v --junitxml=report.xml --random-order ./data_processing/tests ./bec_lib/tests ./scan_server/tests ./device_server/tests ./scan_bundler/tests ./bec_client/tests/client_tests ./file_writer/tests ./scihub/tests
|
- pytest -v --junitxml=report.xml --random-order ./bec_server/tests ./bec_lib/tests ./bec_client/tests/client_tests
|
||||||
|
|
||||||
tests-3.12:
|
tests-3.12:
|
||||||
extends: "tests-3.11"
|
extends: "tests-3.11"
|
||||||
|
@ -167,15 +167,13 @@ def bec_servers(
|
|||||||
)
|
)
|
||||||
|
|
||||||
if _start_servers:
|
if _start_servers:
|
||||||
from bec_server.service_handler import ServiceHandler
|
from bec_server.bec_server_utils.service_handler import ServiceHandler
|
||||||
|
|
||||||
# Start all BEC servers, kill them at the end
|
# Start all BEC servers, kill them at the end
|
||||||
# when no_tmux=True, 'bec_path' indicate the cwd
|
# when no_tmux=True, 'bec_path' indicate the cwd
|
||||||
# for the process (working directory), i.e. where log files will go
|
# for the process (working directory), i.e. where log files will go
|
||||||
service_handler = ServiceHandler(
|
service_handler = ServiceHandler(
|
||||||
bec_path=bec_files_path,
|
bec_path=bec_files_path, config_path=bec_services_config_file_path, no_tmux=True
|
||||||
config_path=bec_services_config_file_path,
|
|
||||||
no_tmux=True,
|
|
||||||
)
|
)
|
||||||
processes = service_handler.start()
|
processes = service_handler.start()
|
||||||
try:
|
try:
|
||||||
|
@ -26,7 +26,7 @@ but they are executed in a specific order:
|
|||||||
# import numpy as np
|
# import numpy as np
|
||||||
|
|
||||||
# from bec_lib import MessageEndpoints, bec_logger, messages
|
# from bec_lib import MessageEndpoints, bec_logger, messages
|
||||||
# from scan_server.errors import ScanAbortion
|
# from bec_server.scan_server.errors import ScanAbortion
|
||||||
# from scan_server.scans import FlyScanBase, RequestBase, ScanArgType, ScanBase
|
# from bec_server.scan_server.scans import FlyScanBase, RequestBase, ScanArgType, ScanBase
|
||||||
|
|
||||||
# logger = bec_logger.logger
|
# logger = bec_logger.logger
|
||||||
|
@ -1 +1 @@
|
|||||||
from .launch import main
|
from .bec_server_utils.launch import main
|
||||||
|
@ -3,7 +3,7 @@ import os
|
|||||||
|
|
||||||
import libtmux
|
import libtmux
|
||||||
|
|
||||||
from bec_server.service_handler import ServiceHandler
|
from bec_server.bec_server_utils.service_handler import ServiceHandler
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
@ -1,8 +1,8 @@
|
|||||||
import sys
|
import sys
|
||||||
from string import Template
|
from string import Template
|
||||||
|
|
||||||
from bec_server.subprocess_launch import subprocess_start, subprocess_stop
|
from bec_server.bec_server_utils.subprocess_launch import subprocess_start, subprocess_stop
|
||||||
from bec_server.tmux_launch import tmux_start, tmux_stop
|
from bec_server.bec_server_utils.tmux_launch import tmux_start, tmux_stop
|
||||||
|
|
||||||
|
|
||||||
class bcolors:
|
class bcolors:
|
||||||
@ -28,10 +28,7 @@ class ServiceHandler:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
SERVICES = {
|
SERVICES = {
|
||||||
"scan_server": {
|
"scan_server": {"path": Template("$base_path/scan_server"), "command": "bec-scan-server"},
|
||||||
"path": Template("$base_path/scan_server"),
|
|
||||||
"command": "bec-scan-server",
|
|
||||||
},
|
|
||||||
"scan_bundler": {
|
"scan_bundler": {
|
||||||
"path": Template("$base_path/scan_bundler"),
|
"path": Template("$base_path/scan_bundler"),
|
||||||
"command": "bec-scan-bundler",
|
"command": "bec-scan-bundler",
|
@ -1,9 +1,9 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
import data_processing
|
import bec_server.data_processing as data_processing
|
||||||
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
||||||
from data_processing.lmfit1d_service import LmfitService1D
|
from bec_server.data_processing.lmfit1d_service import LmfitService1D
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
bec_logger.level = bec_logger.LOGLEVEL.INFO
|
bec_logger.level = bec_logger.LOGLEVEL.INFO
|
@ -11,7 +11,7 @@ import numpy as np
|
|||||||
from bec_lib import DeviceBase, MessageEndpoints, bec_logger, messages
|
from bec_lib import DeviceBase, MessageEndpoints, bec_logger, messages
|
||||||
from bec_lib.lmfit_serializer import deserialize_param_object, serialize_lmfit_params
|
from bec_lib.lmfit_serializer import deserialize_param_object, serialize_lmfit_params
|
||||||
from bec_lib.serialization import MsgpackSerialization
|
from bec_lib.serialization import MsgpackSerialization
|
||||||
from data_processing.dap_service import DAPError, DAPServiceBase
|
from bec_server.data_processing.dap_service import DAPError, DAPServiceBase
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from bec_lib.scan_items import ScanItem
|
from bec_lib.scan_items import ScanItem
|
@ -15,8 +15,8 @@ if startup is not None:
|
|||||||
import argparse
|
import argparse
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
import device_server
|
|
||||||
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
||||||
|
from bec_server import device_server
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
bec_logger.level = bec_logger.LOGLEVEL.INFO
|
bec_logger.level = bec_logger.LOGLEVEL.INFO
|
||||||
@ -27,11 +27,7 @@ def main():
|
|||||||
Launch the BEC device server.
|
Launch the BEC device server.
|
||||||
"""
|
"""
|
||||||
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
||||||
parser.add_argument(
|
parser.add_argument("--config", default="", help="path to the config file")
|
||||||
"--config",
|
|
||||||
default="",
|
|
||||||
help="path to the config file",
|
|
||||||
)
|
|
||||||
clargs = parser.parse_args()
|
clargs = parser.parse_args()
|
||||||
config_path = clargs.config
|
config_path = clargs.config
|
||||||
|
|
@ -12,8 +12,8 @@ from bec_lib import Alarms, BECService, MessageEndpoints, bec_logger, messages
|
|||||||
from bec_lib.connector import ConnectorBase
|
from bec_lib.connector import ConnectorBase
|
||||||
from bec_lib.device import OnFailure
|
from bec_lib.device import OnFailure
|
||||||
from bec_lib.messages import BECStatus
|
from bec_lib.messages import BECStatus
|
||||||
from device_server.devices.devicemanager import DeviceManagerDS
|
from bec_server.device_server.devices.devicemanager import DeviceManagerDS
|
||||||
from device_server.rpc_mixin import RPCMixin
|
from bec_server.device_server.rpc_mixin import RPCMixin
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
@ -28,8 +28,8 @@ from bec_lib import (
|
|||||||
bec_logger,
|
bec_logger,
|
||||||
messages,
|
messages,
|
||||||
)
|
)
|
||||||
from device_server.devices.config_update_handler import ConfigUpdateHandler
|
from bec_server.device_server.devices.config_update_handler import ConfigUpdateHandler
|
||||||
from device_server.devices.device_serializer import get_device_info
|
from bec_server.device_server.devices.device_serializer import get_device_info
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from bec_plugins import devices as plugin_devices
|
from bec_plugins import devices as plugin_devices
|
@ -6,7 +6,7 @@ from typing import Any
|
|||||||
import ophyd
|
import ophyd
|
||||||
|
|
||||||
from bec_lib import Alarms, MessageEndpoints, bec_logger, messages
|
from bec_lib import Alarms, MessageEndpoints, bec_logger, messages
|
||||||
from device_server.devices import is_serializable, rgetattr
|
from bec_server.device_server.devices import is_serializable, rgetattr
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
@ -2,8 +2,8 @@ import argparse
|
|||||||
import os
|
import os
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
import file_writer
|
|
||||||
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
||||||
|
from bec_server import file_writer
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
bec_logger.level = bec_logger.LOGLEVEL.INFO
|
bec_logger.level = bec_logger.LOGLEVEL.INFO
|
||||||
@ -14,11 +14,7 @@ def main():
|
|||||||
Launch the file writer.
|
Launch the file writer.
|
||||||
"""
|
"""
|
||||||
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
||||||
parser.add_argument(
|
parser.add_argument("--config", default="", help="path to the config file")
|
||||||
"--config",
|
|
||||||
default="",
|
|
||||||
help="path to the config file",
|
|
||||||
)
|
|
||||||
clargs = parser.parse_args()
|
clargs = parser.parse_args()
|
||||||
config_path = clargs.config
|
config_path = clargs.config
|
||||||
|
|
@ -7,10 +7,10 @@ import os
|
|||||||
import traceback
|
import traceback
|
||||||
import typing
|
import typing
|
||||||
|
|
||||||
import file_writer_plugins as fwp
|
|
||||||
import h5py
|
import h5py
|
||||||
import xmltodict
|
import xmltodict
|
||||||
|
|
||||||
|
import bec_server.file_writer_plugins as fwp
|
||||||
from bec_lib import MessageEndpoints, bec_logger, messages
|
from bec_lib import MessageEndpoints, bec_logger, messages
|
||||||
|
|
||||||
from .merged_dicts import merge_dicts
|
from .merged_dicts import merge_dicts
|
@ -16,7 +16,7 @@ from bec_lib.alarm_handler import Alarms
|
|||||||
from bec_lib.async_data import AsyncDataHandler
|
from bec_lib.async_data import AsyncDataHandler
|
||||||
from bec_lib.file_utils import FileWriter
|
from bec_lib.file_utils import FileWriter
|
||||||
from bec_lib.redis_connector import MessageObject, RedisConnector
|
from bec_lib.redis_connector import MessageObject, RedisConnector
|
||||||
from file_writer.file_writer import NexusFileWriter
|
from bec_server.file_writer.file_writer import NexusFileWriter
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
@ -6,7 +6,7 @@ import numpy as np
|
|||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from bec_lib import DeviceManagerBase
|
from bec_lib import DeviceManagerBase
|
||||||
from file_writer.file_writer import HDF5Storage
|
from bec_server.file_writer.file_writer import HDF5Storage
|
||||||
|
|
||||||
|
|
||||||
def get_entry(data: dict, name: str, default=None) -> Any:
|
def get_entry(data: dict, name: str, default=None) -> Any:
|
||||||
@ -25,10 +25,7 @@ def get_entry(data: dict, name: str, default=None) -> Any:
|
|||||||
|
|
||||||
|
|
||||||
def NeXus_format(
|
def NeXus_format(
|
||||||
storage: HDF5Storage,
|
storage: HDF5Storage, data: dict, file_references: dict, device_manager: DeviceManagerBase
|
||||||
data: dict,
|
|
||||||
file_references: dict,
|
|
||||||
device_manager: DeviceManagerBase,
|
|
||||||
) -> HDF5Storage:
|
) -> HDF5Storage:
|
||||||
"""
|
"""
|
||||||
Prepare the NeXus file format.
|
Prepare the NeXus file format.
|
||||||
@ -155,8 +152,7 @@ def NeXus_format(
|
|||||||
if isinstance(mokev, list):
|
if isinstance(mokev, list):
|
||||||
mokev = mokev[0]
|
mokev = mokev[0]
|
||||||
wavelength = mono.create_dataset(
|
wavelength = mono.create_dataset(
|
||||||
name="wavelength",
|
name="wavelength", data=12.3984193 / (mokev.get("mokev").get("value") + 1e-9)
|
||||||
data=12.3984193 / (mokev.get("mokev").get("value") + 1e-9),
|
|
||||||
)
|
)
|
||||||
wavelength.attrs["units"] = "Angstrom"
|
wavelength.attrs["units"] = "Angstrom"
|
||||||
energy = mono.create_dataset(name="energy", data=mokev.get("mokev").get("value"))
|
energy = mono.create_dataset(name="energy", data=mokev.get("mokev").get("value"))
|
||||||
@ -195,22 +191,19 @@ def NeXus_format(
|
|||||||
xbpm4_x_data = xbpm4_x.create_dataset(name="data", data=get_entry(data, "bpm4x"))
|
xbpm4_x_data = xbpm4_x.create_dataset(name="data", data=get_entry(data, "bpm4x"))
|
||||||
xbpm4_x_data.attrs["units"] = "NX_DIMENSIONLESS"
|
xbpm4_x_data.attrs["units"] = "NX_DIMENSIONLESS"
|
||||||
xbpm4_x.create_dataset(
|
xbpm4_x.create_dataset(
|
||||||
name="description",
|
name="description", data="Normalized difference of counts between left and right quadrants."
|
||||||
data="Normalized difference of counts between left and right quadrants.",
|
|
||||||
)
|
)
|
||||||
xbpm4_y = xbpm4.create_group("XBPM4_y")
|
xbpm4_y = xbpm4.create_group("XBPM4_y")
|
||||||
xbpm4_y_data = xbpm4_y.create_dataset(name="data", data=get_entry(data, "bpm4y"))
|
xbpm4_y_data = xbpm4_y.create_dataset(name="data", data=get_entry(data, "bpm4y"))
|
||||||
xbpm4_y_data.attrs["units"] = "NX_DIMENSIONLESS"
|
xbpm4_y_data.attrs["units"] = "NX_DIMENSIONLESS"
|
||||||
xbpm4_y.create_dataset(
|
xbpm4_y.create_dataset(
|
||||||
name="description",
|
name="description", data="Normalized difference of counts between high and low quadrants."
|
||||||
data="Normalized difference of counts between high and low quadrants.",
|
|
||||||
)
|
)
|
||||||
xbpm4_skew = xbpm4.create_group("XBPM4_skew")
|
xbpm4_skew = xbpm4.create_group("XBPM4_skew")
|
||||||
xbpm4_skew_data = xbpm4_skew.create_dataset(name="data", data=get_entry(data, "bpm4z"))
|
xbpm4_skew_data = xbpm4_skew.create_dataset(name="data", data=get_entry(data, "bpm4z"))
|
||||||
xbpm4_skew_data.attrs["units"] = "NX_DIMENSIONLESS"
|
xbpm4_skew_data.attrs["units"] = "NX_DIMENSIONLESS"
|
||||||
xbpm4_skew.create_dataset(
|
xbpm4_skew.create_dataset(
|
||||||
name="description",
|
name="description", data="Normalized difference of counts between diagonal quadrants."
|
||||||
data="Normalized difference of counts between diagonal quadrants.",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
mirror = instrument.create_group("mirror")
|
mirror = instrument.create_group("mirror")
|
||||||
@ -243,22 +236,19 @@ def NeXus_format(
|
|||||||
xbpm5_x_data = xbpm5_x.create_dataset(name="data", data=get_entry(data, "bpm5x"))
|
xbpm5_x_data = xbpm5_x.create_dataset(name="data", data=get_entry(data, "bpm5x"))
|
||||||
xbpm5_x_data.attrs["units"] = "NX_DIMENSIONLESS"
|
xbpm5_x_data.attrs["units"] = "NX_DIMENSIONLESS"
|
||||||
xbpm5_x.create_dataset(
|
xbpm5_x.create_dataset(
|
||||||
name="description",
|
name="description", data="Normalized difference of counts between left and right quadrants."
|
||||||
data="Normalized difference of counts between left and right quadrants.",
|
|
||||||
)
|
)
|
||||||
xbpm5_y = xbpm5.create_group("XBPM5_y")
|
xbpm5_y = xbpm5.create_group("XBPM5_y")
|
||||||
xbpm5_y_data = xbpm5_y.create_dataset(name="data", data=get_entry(data, "bpm5y"))
|
xbpm5_y_data = xbpm5_y.create_dataset(name="data", data=get_entry(data, "bpm5y"))
|
||||||
xbpm5_y_data.attrs["units"] = "NX_DIMENSIONLESS"
|
xbpm5_y_data.attrs["units"] = "NX_DIMENSIONLESS"
|
||||||
xbpm5_y.create_dataset(
|
xbpm5_y.create_dataset(
|
||||||
name="description",
|
name="description", data="Normalized difference of counts between high and low quadrants."
|
||||||
data="Normalized difference of counts between high and low quadrants.",
|
|
||||||
)
|
)
|
||||||
xbpm5_skew = xbpm5.create_group("XBPM5_skew")
|
xbpm5_skew = xbpm5.create_group("XBPM5_skew")
|
||||||
xbpm5_skew_data = xbpm5_skew.create_dataset(name="data", data=get_entry(data, "bpm5z"))
|
xbpm5_skew_data = xbpm5_skew.create_dataset(name="data", data=get_entry(data, "bpm5z"))
|
||||||
xbpm5_skew_data.attrs["units"] = "NX_DIMENSIONLESS"
|
xbpm5_skew_data.attrs["units"] = "NX_DIMENSIONLESS"
|
||||||
xbpm5_skew.create_dataset(
|
xbpm5_skew.create_dataset(
|
||||||
name="description",
|
name="description", data="Normalized difference of counts between diagonal quadrants."
|
||||||
data="Normalized difference of counts between diagonal quadrants.",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
slit_2 = instrument.create_group("slit_2")
|
slit_2 = instrument.create_group("slit_2")
|
||||||
@ -373,8 +363,7 @@ def NeXus_format(
|
|||||||
rotation_angle = eiger_4.create_dataset(name="rotation_angle", data=0)
|
rotation_angle = eiger_4.create_dataset(name="rotation_angle", data=0)
|
||||||
rotation_angle.attrs["units"] = "degrees"
|
rotation_angle.attrs["units"] = "degrees"
|
||||||
description = eiger_4.create_dataset(
|
description = eiger_4.create_dataset(
|
||||||
name="description",
|
name="description", data="Single-photon counting detector, 320 micron-thick Si chip"
|
||||||
data="Single-photon counting detector, 320 micron-thick Si chip",
|
|
||||||
)
|
)
|
||||||
orientation = eiger_4.create_group("orientation")
|
orientation = eiger_4.create_group("orientation")
|
||||||
orientation.attrs["description"] = (
|
orientation.attrs["description"] = (
|
||||||
@ -401,8 +390,7 @@ def NeXus_format(
|
|||||||
rotation_angle = eiger9m.create_dataset(name="rotation_angle", data=0)
|
rotation_angle = eiger9m.create_dataset(name="rotation_angle", data=0)
|
||||||
rotation_angle.attrs["units"] = "degrees"
|
rotation_angle.attrs["units"] = "degrees"
|
||||||
description = eiger9m.create_dataset(
|
description = eiger9m.create_dataset(
|
||||||
name="description",
|
name="description", data="Eiger9M detector, in-house developed, Paul Scherrer Institute"
|
||||||
data="Eiger9M detector, in-house developed, Paul Scherrer Institute",
|
|
||||||
)
|
)
|
||||||
orientation = eiger9m.create_group("orientation")
|
orientation = eiger9m.create_group("orientation")
|
||||||
orientation.attrs["description"] = (
|
orientation.attrs["description"] = (
|
||||||
@ -442,9 +430,7 @@ def NeXus_format(
|
|||||||
orientation.create_dataset(name="transpose", data=1)
|
orientation.create_dataset(name="transpose", data=1)
|
||||||
orientation.create_dataset(name="rot90", data=2)
|
orientation.create_dataset(name="rot90", data=2)
|
||||||
data = pilatus_2.create_ext_link(
|
data = pilatus_2.create_ext_link(
|
||||||
"data",
|
"data", file_references["pilatus_2"]["path"], "entry/instrument/pilatus_2/data"
|
||||||
file_references["pilatus_2"]["path"],
|
|
||||||
"entry/instrument/pilatus_2/data",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if (
|
if (
|
||||||
@ -453,9 +439,7 @@ def NeXus_format(
|
|||||||
and "falcon" in file_references
|
and "falcon" in file_references
|
||||||
):
|
):
|
||||||
falcon = instrument.create_ext_link(
|
falcon = instrument.create_ext_link(
|
||||||
"falcon",
|
"falcon", file_references["falcon"]["path"], "entry/instrument/FalconX1"
|
||||||
file_references["falcon"]["path"],
|
|
||||||
"entry/instrument/FalconX1",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
return storage
|
return storage
|
@ -4,14 +4,11 @@ from typing import TYPE_CHECKING
|
|||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from bec_lib import DeviceManagerBase
|
from bec_lib import DeviceManagerBase
|
||||||
from file_writer.file_writer import HDF5Storage
|
from bec_server.file_writer.file_writer import HDF5Storage
|
||||||
|
|
||||||
|
|
||||||
def NeXus_format(
|
def NeXus_format(
|
||||||
storage: HDF5Storage,
|
storage: HDF5Storage, data: dict, file_references: dict, device_manager: DeviceManagerBase
|
||||||
data: dict,
|
|
||||||
file_references: dict,
|
|
||||||
device_manager: DeviceManagerBase,
|
|
||||||
) -> HDF5Storage:
|
) -> HDF5Storage:
|
||||||
"""
|
"""
|
||||||
Prepare the NeXus file format.
|
Prepare the NeXus file format.
|
@ -1,8 +1,8 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
import scan_bundler
|
|
||||||
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
||||||
|
from bec_server import scan_bundler
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
bec_logger.level = bec_logger.LOGLEVEL.INFO
|
bec_logger.level = bec_logger.LOGLEVEL.INFO
|
||||||
@ -13,11 +13,7 @@ def main():
|
|||||||
Launch the scan bundler.
|
Launch the scan bundler.
|
||||||
"""
|
"""
|
||||||
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
||||||
parser.add_argument(
|
parser.add_argument("--config", default="", help="path to the config file")
|
||||||
"--config",
|
|
||||||
default="",
|
|
||||||
help="path to the config file",
|
|
||||||
)
|
|
||||||
clargs = parser.parse_args()
|
clargs = parser.parse_args()
|
||||||
config_path = clargs.config
|
config_path = clargs.config
|
||||||
|
|
0
bec_server/bec_server/scan_server/cli/__init__.py
Normal file
0
bec_server/bec_server/scan_server/cli/__init__.py
Normal file
@ -1,8 +1,8 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
import scan_server
|
|
||||||
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
||||||
|
from bec_server import scan_server
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
bec_logger.level = bec_logger.LOGLEVEL.INFO
|
bec_logger.level = bec_logger.LOGLEVEL.INFO
|
||||||
@ -13,20 +13,13 @@ def main():
|
|||||||
Launch the scan server.
|
Launch the scan server.
|
||||||
"""
|
"""
|
||||||
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
||||||
parser.add_argument(
|
parser.add_argument("--config", default="", help="path to the config file")
|
||||||
"--config",
|
|
||||||
default="",
|
|
||||||
help="path to the config file",
|
|
||||||
)
|
|
||||||
clargs = parser.parse_args()
|
clargs = parser.parse_args()
|
||||||
config_path = clargs.config
|
config_path = clargs.config
|
||||||
|
|
||||||
config = ServiceConfig(config_path)
|
config = ServiceConfig(config_path)
|
||||||
|
|
||||||
bec_server = scan_server.scan_server.ScanServer(
|
bec_server = scan_server.scan_server.ScanServer(config=config, connector_cls=RedisConnector)
|
||||||
config=config,
|
|
||||||
connector_cls=RedisConnector,
|
|
||||||
)
|
|
||||||
try:
|
try:
|
||||||
event = threading.Event()
|
event = threading.Event()
|
||||||
# pylint: disable=E1102
|
# pylint: disable=E1102
|
@ -25,8 +25,8 @@ import time
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, bec_logger
|
from bec_lib import MessageEndpoints, bec_logger
|
||||||
from scan_server.errors import ScanAbortion
|
from bec_server.scan_server.errors import ScanAbortion
|
||||||
from scan_server.scans import RequestBase, ScanArgType, ScanBase
|
from bec_server.scan_server.scans import RequestBase, ScanArgType, ScanBase
|
||||||
|
|
||||||
MOVEMENT_SCALE_X = np.sin(np.radians(15)) * np.cos(np.radians(30))
|
MOVEMENT_SCALE_X = np.sin(np.radians(15)) * np.cos(np.radians(30))
|
||||||
MOVEMENT_SCALE_Y = np.cos(np.radians(15))
|
MOVEMENT_SCALE_Y = np.cos(np.radians(15))
|
@ -25,8 +25,8 @@ import time
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, bec_logger, messages
|
from bec_lib import MessageEndpoints, bec_logger, messages
|
||||||
from scan_server.errors import ScanAbortion
|
from bec_server.scan_server.errors import ScanAbortion
|
||||||
from scan_server.scans import SyncFlyScanBase
|
from bec_server.scan_server.scans import SyncFlyScanBase
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
from bec_lib import bec_logger
|
from bec_lib import bec_logger
|
||||||
from scan_server.scans import ScanArgType, ScanBase, SyncFlyScanBase
|
from bec_server.scan_server.scans import ScanArgType, ScanBase, SyncFlyScanBase
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
@ -23,7 +23,7 @@ but they are executed in a specific order:
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, bec_logger
|
from bec_lib import MessageEndpoints, bec_logger
|
||||||
from scan_server.scans import AsyncFlyScanBase, ScanAbortion
|
from bec_server.scan_server.scans import AsyncFlyScanBase, ScanAbortion
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
@ -23,7 +23,7 @@ but they are executed in a specific order:
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, bec_logger
|
from bec_lib import MessageEndpoints, bec_logger
|
||||||
from scan_server.scans import AsyncFlyScanBase
|
from bec_server.scan_server.scans import AsyncFlyScanBase
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
0
bec_server/bec_server/scihub/cli/__init__.py
Normal file
0
bec_server/bec_server/scihub/cli/__init__.py
Normal file
@ -1,8 +1,8 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
import scihub
|
|
||||||
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
from bec_lib import RedisConnector, ServiceConfig, bec_logger
|
||||||
|
from bec_server import scihub
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
bec_logger.level = bec_logger.LOGLEVEL.INFO
|
bec_logger.level = bec_logger.LOGLEVEL.INFO
|
||||||
@ -14,11 +14,7 @@ def main():
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
||||||
parser.add_argument(
|
parser.add_argument("--config", default="", help="path to the config file")
|
||||||
"--config",
|
|
||||||
default="",
|
|
||||||
help="path to the config file",
|
|
||||||
)
|
|
||||||
clargs = parser.parse_args()
|
clargs = parser.parse_args()
|
||||||
config_path = clargs.config
|
config_path = clargs.config
|
||||||
|
|
@ -15,7 +15,7 @@ from bec_lib.scibec_validator import SciBecValidator
|
|||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from bec_lib.device import DeviceBase
|
from bec_lib.device import DeviceBase
|
||||||
from scihub.scibec.scibec_connector import SciBecConnector
|
from bec_server.scihub.scibec.scibec_connector import SciBecConnector
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
@ -8,13 +8,13 @@ from py_scibec import SciBecCore
|
|||||||
|
|
||||||
from bec_lib import MessageEndpoints, bec_logger, messages
|
from bec_lib import MessageEndpoints, bec_logger, messages
|
||||||
from bec_lib.connector import ConnectorBase
|
from bec_lib.connector import ConnectorBase
|
||||||
from scihub.repeated_timer import RepeatedTimer
|
from bec_server.scihub.repeated_timer import RepeatedTimer
|
||||||
|
|
||||||
from .config_handler import ConfigHandler
|
from .config_handler import ConfigHandler
|
||||||
from .scibec_metadata_handler import SciBecMetadataHandler
|
from .scibec_metadata_handler import SciBecMetadataHandler
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from scihub import SciHub
|
from bec_server.scihub import SciHub
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
@ -13,7 +13,7 @@ logger = bec_logger.logger
|
|||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from bec_lib import messages
|
from bec_lib import messages
|
||||||
from scihub.scibec import SciBecConnector
|
from bec_server.scihub.scibec import SciBecConnector
|
||||||
|
|
||||||
|
|
||||||
class SciBecMetadataHandler:
|
class SciBecMetadataHandler:
|
@ -1,7 +1,7 @@
|
|||||||
from bec_lib import BECService, BECStatus, ServiceConfig
|
from bec_lib import BECService, BECStatus, ServiceConfig
|
||||||
from bec_lib.connector import ConnectorBase
|
from bec_lib.connector import ConnectorBase
|
||||||
from scihub.scibec import SciBecConnector
|
from bec_server.scihub.scibec import SciBecConnector
|
||||||
from scihub.scilog import SciLogConnector
|
from bec_server.scihub.scilog import SciLogConnector
|
||||||
|
|
||||||
|
|
||||||
class SciHub(BECService):
|
class SciHub(BECService):
|
@ -7,12 +7,12 @@ import requests
|
|||||||
from dotenv import dotenv_values
|
from dotenv import dotenv_values
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, RedisConnector, bec_logger, messages
|
from bec_lib import MessageEndpoints, RedisConnector, bec_logger, messages
|
||||||
from scihub.repeated_timer import RepeatedTimer
|
from bec_server.scihub.repeated_timer import RepeatedTimer
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from scihub import SciHub
|
from bec_server.scihub import SciHub
|
||||||
|
|
||||||
|
|
||||||
class SciLogConnector:
|
class SciLogConnector:
|
@ -1,7 +1,4 @@
|
|||||||
import os
|
|
||||||
import pathlib
|
import pathlib
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
|
|
||||||
from setuptools import setup
|
from setuptools import setup
|
||||||
|
|
||||||
@ -10,56 +7,46 @@ current_path = pathlib.Path(__file__).parent.resolve()
|
|||||||
__version__ = "1.24.1"
|
__version__ = "1.24.1"
|
||||||
|
|
||||||
|
|
||||||
def run_install(setup_args: dict, bec_deps: list, editable=False):
|
|
||||||
"""
|
|
||||||
Run the setup function with the given arguments.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
setup_args (dict): Arguments for the setup function.
|
|
||||||
bec_deps (list): List of tuples with the dependencies of the BEC server.
|
|
||||||
editable (bool, optional): If True, the dependencies are installed in editable mode. Defaults to False.
|
|
||||||
"""
|
|
||||||
if editable:
|
|
||||||
# check if "[dev]" was requested
|
|
||||||
if "dev" in os.environ.get("EXTRAS_REQUIRE", ""):
|
|
||||||
suffix = "[dev]"
|
|
||||||
else:
|
|
||||||
suffix = ""
|
|
||||||
setup(**setup_args)
|
|
||||||
deps = [f"{current_path}/../{dep[1]}/" for dep in bec_deps]
|
|
||||||
for dep in deps:
|
|
||||||
subprocess.run(f"pip install -e {dep}{suffix}", shell=True, check=True)
|
|
||||||
return
|
|
||||||
|
|
||||||
install_deps = [dep[0] for dep in bec_deps]
|
|
||||||
setup_args["install_requires"].extend(install_deps)
|
|
||||||
print(setup_args)
|
|
||||||
setup(**setup_args)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
bec_deps_in = [
|
setup(
|
||||||
("bec_lib", "bec_lib"),
|
install_requires=[
|
||||||
("bec_ipython_client", "bec_client"),
|
"bec-lib",
|
||||||
("bec_scan_server", "scan_server"),
|
"cytoolz",
|
||||||
("bec_scan_bundler", "scan_bundler"),
|
"h5py",
|
||||||
("bec_file_writer", "file_writer"),
|
"libtmux",
|
||||||
("bec_dap", "data_processing"),
|
"lmfit",
|
||||||
("bec_device_server", "device_server"),
|
"msgpack",
|
||||||
("bec_scihub", "scihub"),
|
"numpy",
|
||||||
]
|
"ophyd",
|
||||||
|
"ophyd_devices",
|
||||||
setup_args_in = {
|
"pydantic",
|
||||||
"entry_points": {"console_scripts": ["bec-server = bec_server:main"]},
|
"py-scibec",
|
||||||
"install_requires": ["libtmux"],
|
"pyyaml",
|
||||||
"version": __version__,
|
"python-dotenv",
|
||||||
"extras_require": {
|
"rich",
|
||||||
"dev": ["pytest", "pytest-random-order", "coverage", "black", "isort", "pylint"]
|
"xmltodict",
|
||||||
|
],
|
||||||
|
extras_require={
|
||||||
|
"dev": [
|
||||||
|
"black",
|
||||||
|
"coverage",
|
||||||
|
"isort",
|
||||||
|
"pytest",
|
||||||
|
"pytest-random-order",
|
||||||
|
"pylint",
|
||||||
|
"pytest-timeout",
|
||||||
|
]
|
||||||
},
|
},
|
||||||
}
|
entry_points={
|
||||||
|
"console_scripts": [
|
||||||
is_local = os.path.dirname(os.path.abspath(__file__)).split("/")[-1] == "bec_server"
|
"bec-dap = bec_server.data_processing:main",
|
||||||
is_build = "bdist_wheel" in sys.argv
|
"bec-device-server = bec_server.device_server:main",
|
||||||
|
"bec-file-writer = bec_server.file_writer:main",
|
||||||
editable_in = is_local and not is_build
|
"bec-scan-server = bec_server.scan_server:main",
|
||||||
run_install(setup_args_in, bec_deps_in, editable=editable_in)
|
"bec-scan-bundler = bec_server.scan_bundler:main",
|
||||||
|
"bec-scihub = bec_server.scihub:main",
|
||||||
|
"bec-server = bec_server:main",
|
||||||
|
]
|
||||||
|
},
|
||||||
|
version=__version__,
|
||||||
|
)
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
from bec_server.launch import main
|
from bec_server.bec_server_utils.launch import main
|
||||||
|
|
||||||
|
|
||||||
def test_main_start():
|
def test_main_start():
|
||||||
with mock.patch("bec_server.launch.ServiceHandler") as mock_service_handler:
|
with mock.patch("bec_server.bec_server_utils.launch.ServiceHandler") as mock_service_handler:
|
||||||
with mock.patch("bec_server.launch.argparse") as mock_argparse:
|
with mock.patch("bec_server.bec_server_utils.launch.argparse") as mock_argparse:
|
||||||
mock_argparse.ArgumentParser().parse_args.return_value = mock.MagicMock(
|
mock_argparse.ArgumentParser().parse_args.return_value = mock.MagicMock(
|
||||||
command="start", config=None
|
command="start", config=None
|
||||||
)
|
)
|
||||||
@ -17,8 +17,8 @@ def test_main_start():
|
|||||||
|
|
||||||
|
|
||||||
def test_main_stop():
|
def test_main_stop():
|
||||||
with mock.patch("bec_server.launch.ServiceHandler") as mock_service_handler:
|
with mock.patch("bec_server.bec_server_utils.launch.ServiceHandler") as mock_service_handler:
|
||||||
with mock.patch("bec_server.launch.argparse") as mock_argparse:
|
with mock.patch("bec_server.bec_server_utils.launch.argparse") as mock_argparse:
|
||||||
mock_argparse.ArgumentParser().parse_args.return_value = mock.MagicMock(
|
mock_argparse.ArgumentParser().parse_args.return_value = mock.MagicMock(
|
||||||
command="stop", config=None
|
command="stop", config=None
|
||||||
)
|
)
|
||||||
@ -30,8 +30,8 @@ def test_main_stop():
|
|||||||
|
|
||||||
|
|
||||||
def test_main_restart():
|
def test_main_restart():
|
||||||
with mock.patch("bec_server.launch.ServiceHandler") as mock_service_handler:
|
with mock.patch("bec_server.bec_server_utils.launch.ServiceHandler") as mock_service_handler:
|
||||||
with mock.patch("bec_server.launch.argparse") as mock_argparse:
|
with mock.patch("bec_server.bec_server_utils.launch.argparse") as mock_argparse:
|
||||||
mock_argparse.ArgumentParser().parse_args.return_value = mock.MagicMock(
|
mock_argparse.ArgumentParser().parse_args.return_value = mock.MagicMock(
|
||||||
command="restart", config=None
|
command="restart", config=None
|
||||||
)
|
)
|
||||||
@ -43,8 +43,8 @@ def test_main_restart():
|
|||||||
|
|
||||||
|
|
||||||
def test_main_start_with_config():
|
def test_main_start_with_config():
|
||||||
with mock.patch("bec_server.launch.ServiceHandler") as mock_service_handler:
|
with mock.patch("bec_server.bec_server_utils.launch.ServiceHandler") as mock_service_handler:
|
||||||
with mock.patch("bec_server.launch.argparse") as mock_argparse:
|
with mock.patch("bec_server.bec_server_utils.launch.argparse") as mock_argparse:
|
||||||
mock_argparse.ArgumentParser().parse_args.return_value = mock.MagicMock(
|
mock_argparse.ArgumentParser().parse_args.return_value = mock.MagicMock(
|
||||||
command="start", config="/path/to/config"
|
command="start", config="/path/to/config"
|
||||||
)
|
)
|
||||||
@ -56,8 +56,8 @@ def test_main_start_with_config():
|
|||||||
|
|
||||||
|
|
||||||
def test_main_restart_with_config():
|
def test_main_restart_with_config():
|
||||||
with mock.patch("bec_server.launch.ServiceHandler") as mock_service_handler:
|
with mock.patch("bec_server.bec_server_utils.launch.ServiceHandler") as mock_service_handler:
|
||||||
with mock.patch("bec_server.launch.argparse") as mock_argparse:
|
with mock.patch("bec_server.bec_server_utils.launch.argparse") as mock_argparse:
|
||||||
mock_argparse.ArgumentParser().parse_args.return_value = mock.MagicMock(
|
mock_argparse.ArgumentParser().parse_args.return_value = mock.MagicMock(
|
||||||
command="restart", config="/path/to/config"
|
command="restart", config="/path/to/config"
|
||||||
)
|
)
|
@ -1,13 +1,13 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
from bec_server.service_handler import ServiceHandler
|
from bec_server.bec_server_utils.service_handler import ServiceHandler
|
||||||
|
|
||||||
|
|
||||||
def test_service_handler():
|
def test_service_handler():
|
||||||
bec_path = "/path/to/bec"
|
bec_path = "/path/to/bec"
|
||||||
config_path = "/path/to/config"
|
config_path = "/path/to/config"
|
||||||
|
|
||||||
with mock.patch("bec_server.service_handler.sys") as mock_sys:
|
with mock.patch("bec_server.bec_server_utils.service_handler.sys") as mock_sys:
|
||||||
mock_sys.platform = "linux"
|
mock_sys.platform = "linux"
|
||||||
service_handler = ServiceHandler(bec_path, config_path)
|
service_handler = ServiceHandler(bec_path, config_path)
|
||||||
assert service_handler.interface == "tmux"
|
assert service_handler.interface == "tmux"
|
||||||
@ -17,17 +17,19 @@ def test_service_handler_start():
|
|||||||
bec_path = "/path/to/bec"
|
bec_path = "/path/to/bec"
|
||||||
config_path = "/path/to/config"
|
config_path = "/path/to/config"
|
||||||
|
|
||||||
with mock.patch("bec_server.service_handler.sys") as mock_sys:
|
with mock.patch("bec_server.bec_server_utils.service_handler.sys") as mock_sys:
|
||||||
mock_sys.platform = "linux"
|
mock_sys.platform = "linux"
|
||||||
service_handler = ServiceHandler(bec_path, config_path)
|
service_handler = ServiceHandler(bec_path, config_path)
|
||||||
|
|
||||||
with mock.patch("bec_server.service_handler.tmux_start") as mock_tmux_start:
|
with mock.patch(
|
||||||
|
"bec_server.bec_server_utils.service_handler.tmux_start"
|
||||||
|
) as mock_tmux_start:
|
||||||
service_handler.start()
|
service_handler.start()
|
||||||
mock_tmux_start.assert_called_once_with(bec_path, config_path, service_handler.SERVICES)
|
mock_tmux_start.assert_called_once_with(bec_path, config_path, service_handler.SERVICES)
|
||||||
|
|
||||||
|
|
||||||
def test_service_handler_stop():
|
def test_service_handler_stop():
|
||||||
with mock.patch("bec_server.service_handler.tmux_stop") as mock_tmux_stop:
|
with mock.patch("bec_server.bec_server_utils.service_handler.tmux_stop") as mock_tmux_stop:
|
||||||
service_handler = ServiceHandler("/path/to/bec", "/path/to/config")
|
service_handler = ServiceHandler("/path/to/bec", "/path/to/config")
|
||||||
service_handler.stop()
|
service_handler.stop()
|
||||||
mock_tmux_stop.assert_called_once()
|
mock_tmux_stop.assert_called_once()
|
||||||
@ -37,12 +39,14 @@ def test_service_handler_restart():
|
|||||||
bec_path = "/path/to/bec"
|
bec_path = "/path/to/bec"
|
||||||
config_path = "/path/to/config"
|
config_path = "/path/to/config"
|
||||||
|
|
||||||
with mock.patch("bec_server.service_handler.sys") as mock_sys:
|
with mock.patch("bec_server.bec_server_utils.service_handler.sys") as mock_sys:
|
||||||
mock_sys.platform = "linux"
|
mock_sys.platform = "linux"
|
||||||
service_handler = ServiceHandler(bec_path, config_path)
|
service_handler = ServiceHandler(bec_path, config_path)
|
||||||
|
|
||||||
with mock.patch("bec_server.service_handler.tmux_stop") as mock_tmux_stop:
|
with mock.patch("bec_server.bec_server_utils.service_handler.tmux_stop") as mock_tmux_stop:
|
||||||
with mock.patch("bec_server.service_handler.tmux_start") as mock_tmux_start:
|
with mock.patch(
|
||||||
|
"bec_server.bec_server_utils.service_handler.tmux_start"
|
||||||
|
) as mock_tmux_start:
|
||||||
service_handler.restart()
|
service_handler.restart()
|
||||||
mock_tmux_stop.assert_called_once()
|
mock_tmux_stop.assert_called_once()
|
||||||
mock_tmux_start.assert_called_once_with(
|
mock_tmux_start.assert_called_once_with(
|
@ -1,11 +1,11 @@
|
|||||||
from string import Template
|
from string import Template
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
from bec_server.tmux_launch import tmux_start, tmux_stop
|
from bec_server.bec_server_utils.tmux_launch import tmux_start, tmux_stop
|
||||||
|
|
||||||
|
|
||||||
def test_tmux_start():
|
def test_tmux_start():
|
||||||
with mock.patch("bec_server.tmux_launch.libtmux") as mock_libtmux_server:
|
with mock.patch("bec_server.bec_server_utils.tmux_launch.libtmux") as mock_libtmux_server:
|
||||||
tmux_start(
|
tmux_start(
|
||||||
"/path/to/bec",
|
"/path/to/bec",
|
||||||
"/path/to/config",
|
"/path/to/config",
|
||||||
@ -33,7 +33,7 @@ def test_tmux_start():
|
|||||||
|
|
||||||
|
|
||||||
def test_tmux_stop_without_sessions():
|
def test_tmux_stop_without_sessions():
|
||||||
with mock.patch("bec_server.tmux_launch.libtmux") as mock_libtmux_server:
|
with mock.patch("bec_server.bec_server_utils.tmux_launch.libtmux") as mock_libtmux_server:
|
||||||
mock_libtmux_server.Server().sessions.filter.return_value = []
|
mock_libtmux_server.Server().sessions.filter.return_value = []
|
||||||
tmux_stop()
|
tmux_stop()
|
||||||
mock_libtmux_server.Server().kill_server.assert_not_called()
|
mock_libtmux_server.Server().kill_server.assert_not_called()
|
||||||
@ -41,7 +41,7 @@ def test_tmux_stop_without_sessions():
|
|||||||
|
|
||||||
def test_tmux_stop_with_sessions():
|
def test_tmux_stop_with_sessions():
|
||||||
session = mock.MagicMock()
|
session = mock.MagicMock()
|
||||||
with mock.patch("bec_server.tmux_launch.libtmux") as mock_libtmux_server:
|
with mock.patch("bec_server.bec_server_utils.tmux_launch.libtmux") as mock_libtmux_server:
|
||||||
mock_libtmux_server.Server().sessions.filter.return_value = [session]
|
mock_libtmux_server.Server().sessions.filter.return_value = [session]
|
||||||
tmux_stop()
|
tmux_stop()
|
||||||
session.kill_session.assert_called_once()
|
session.kill_session.assert_called_once()
|
@ -0,0 +1,40 @@
|
|||||||
|
from unittest import mock
|
||||||
|
|
||||||
|
from bec_server.data_processing.cli.launch import main
|
||||||
|
|
||||||
|
|
||||||
|
def test_main():
|
||||||
|
with mock.patch("bec_server.data_processing.cli.launch.argparse.ArgumentParser") as mock_parser:
|
||||||
|
with mock.patch("bec_server.data_processing.cli.launch.ServiceConfig") as mock_config:
|
||||||
|
with mock.patch(
|
||||||
|
"bec_server.data_processing.dap_server.DAPServer"
|
||||||
|
) as mock_data_processing:
|
||||||
|
with mock.patch(
|
||||||
|
"bec_server.data_processing.cli.launch.threading.Event"
|
||||||
|
) as mock_event:
|
||||||
|
main()
|
||||||
|
mock_parser.assert_called_once()
|
||||||
|
mock_config.assert_called_once()
|
||||||
|
mock_data_processing.assert_called_once()
|
||||||
|
mock_event.assert_called_once()
|
||||||
|
|
||||||
|
|
||||||
|
def test_main_shutdown():
|
||||||
|
with mock.patch("bec_server.data_processing.cli.launch.argparse.ArgumentParser") as mock_parser:
|
||||||
|
with mock.patch("bec_server.data_processing.cli.launch.ServiceConfig") as mock_config:
|
||||||
|
with mock.patch(
|
||||||
|
"bec_server.data_processing.dap_server.DAPServer"
|
||||||
|
) as mock_data_processing:
|
||||||
|
with mock.patch(
|
||||||
|
"bec_server.data_processing.cli.launch.threading.Event"
|
||||||
|
) as mock_event:
|
||||||
|
mock_event.return_value.wait.side_effect = KeyboardInterrupt()
|
||||||
|
try:
|
||||||
|
main()
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
pass
|
||||||
|
mock_parser.assert_called_once()
|
||||||
|
mock_config.assert_called_once()
|
||||||
|
mock_data_processing.assert_called_once()
|
||||||
|
mock_event.assert_called_once()
|
||||||
|
mock_data_processing.return_value.shutdown.assert_called_once()
|
@ -1,8 +1,8 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
from bec_lib import ServiceConfig
|
from bec_lib import ServiceConfig
|
||||||
from data_processing.dap_server import DAPServer
|
from bec_server.data_processing.dap_server import DAPServer
|
||||||
from data_processing.dap_service import DAPServiceBase
|
from bec_server.data_processing.dap_service import DAPServiceBase
|
||||||
|
|
||||||
|
|
||||||
def test_dap_server():
|
def test_dap_server():
|
@ -4,8 +4,8 @@ import pytest
|
|||||||
|
|
||||||
from bec_lib import messages
|
from bec_lib import messages
|
||||||
from bec_lib.redis_connector import MessageObject
|
from bec_lib.redis_connector import MessageObject
|
||||||
from data_processing.dap_service import DAPServiceBase
|
from bec_server.data_processing.dap_service import DAPServiceBase
|
||||||
from data_processing.dap_service_manager import DAPServiceManager
|
from bec_server.data_processing.dap_service_manager import DAPServiceManager
|
||||||
|
|
||||||
|
|
||||||
class ServiceMock(DAPServiceBase):
|
class ServiceMock(DAPServiceBase):
|
@ -4,8 +4,8 @@ import lmfit
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from data_processing.dap_service import DAPError
|
from bec_server.data_processing.dap_service import DAPError
|
||||||
from data_processing.lmfit1d_service import LmfitService1D
|
from bec_server.data_processing.lmfit1d_service import LmfitService1D
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
@ -113,7 +113,7 @@ def test_LmfitService1D_on_scan_status_update(lmfit_service):
|
|||||||
|
|
||||||
|
|
||||||
def test_LmfitService1D_on_scan_status_update_finishes_on_closed_scans(lmfit_service):
|
def test_LmfitService1D_on_scan_status_update_finishes_on_closed_scans(lmfit_service):
|
||||||
with mock.patch("data_processing.lmfit1d_service.threading") as threading:
|
with mock.patch("bec_server.data_processing.lmfit1d_service.threading") as threading:
|
||||||
event = threading.Event()
|
event = threading.Event()
|
||||||
lmfit_service.finish_event = event
|
lmfit_service.finish_event = event
|
||||||
with mock.patch.object(lmfit_service, "process_until_finished") as process_until_finished:
|
with mock.patch.object(lmfit_service, "process_until_finished") as process_until_finished:
|
@ -8,8 +8,8 @@ from test_device_manager_ds import device_manager
|
|||||||
import bec_lib
|
import bec_lib
|
||||||
from bec_lib import messages
|
from bec_lib import messages
|
||||||
from bec_lib.tests.utils import ConnectorMock, load_test_config
|
from bec_lib.tests.utils import ConnectorMock, load_test_config
|
||||||
from device_server.devices.config_update_handler import ConfigUpdateHandler
|
from bec_server.device_server.devices.config_update_handler import ConfigUpdateHandler
|
||||||
from device_server.devices.devicemanager import DeviceConfigError, DeviceManagerDS
|
from bec_server.device_server.devices.devicemanager import DeviceConfigError, DeviceManagerDS
|
||||||
|
|
||||||
dir_path = os.path.dirname(bec_lib.__file__)
|
dir_path = os.path.dirname(bec_lib.__file__)
|
||||||
|
|
@ -10,7 +10,7 @@ import yaml
|
|||||||
import bec_lib
|
import bec_lib
|
||||||
from bec_lib import MessageEndpoints, messages
|
from bec_lib import MessageEndpoints, messages
|
||||||
from bec_lib.tests.utils import ConnectorMock, create_session_from_config
|
from bec_lib.tests.utils import ConnectorMock, create_session_from_config
|
||||||
from device_server.devices.devicemanager import DeviceManagerDS
|
from bec_server.device_server.devices.devicemanager import DeviceManagerDS
|
||||||
|
|
||||||
# pylint: disable=missing-function-docstring
|
# pylint: disable=missing-function-docstring
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
@ -3,7 +3,7 @@ from ophyd import Component as Cpt
|
|||||||
from ophyd import Device, Signal
|
from ophyd import Device, Signal
|
||||||
|
|
||||||
from bec_lib.bec_errors import DeviceConfigError
|
from bec_lib.bec_errors import DeviceConfigError
|
||||||
from device_server.devices.device_serializer import get_device_info
|
from bec_server.device_server.devices.device_serializer import get_device_info
|
||||||
|
|
||||||
|
|
||||||
class DummyDeviceWithConflictingSignalNames(Device):
|
class DummyDeviceWithConflictingSignalNames(Device):
|
@ -10,8 +10,8 @@ from bec_lib import Alarms, MessageEndpoints, ServiceConfig, messages
|
|||||||
from bec_lib.messages import BECStatus
|
from bec_lib.messages import BECStatus
|
||||||
from bec_lib.redis_connector import MessageObject
|
from bec_lib.redis_connector import MessageObject
|
||||||
from bec_lib.tests.utils import ConnectorMock
|
from bec_lib.tests.utils import ConnectorMock
|
||||||
from device_server import DeviceServer
|
from bec_server.device_server import DeviceServer
|
||||||
from device_server.device_server import InvalidDeviceError
|
from bec_server.device_server.device_server import InvalidDeviceError
|
||||||
|
|
||||||
# pylint: disable=missing-function-docstring
|
# pylint: disable=missing-function-docstring
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
@ -0,0 +1,32 @@
|
|||||||
|
from unittest import mock
|
||||||
|
|
||||||
|
from bec_server.device_server.cli.launch import main
|
||||||
|
|
||||||
|
|
||||||
|
def test_main():
|
||||||
|
with mock.patch("bec_server.device_server.cli.launch.argparse.ArgumentParser") as mock_parser:
|
||||||
|
with mock.patch("bec_server.device_server.cli.launch.ServiceConfig") as mock_config:
|
||||||
|
with mock.patch("bec_server.device_server.DeviceServer") as mock_device_server:
|
||||||
|
with mock.patch(
|
||||||
|
"bec_server.device_server.cli.launch.threading.Event"
|
||||||
|
) as mock_event:
|
||||||
|
main()
|
||||||
|
mock_parser.assert_called_once()
|
||||||
|
mock_config.assert_called_once()
|
||||||
|
mock_device_server.assert_called_once()
|
||||||
|
mock_event.assert_called_once()
|
||||||
|
|
||||||
|
|
||||||
|
def test_main_shutdown():
|
||||||
|
with mock.patch("bec_server.device_server.cli.launch.argparse.ArgumentParser") as mock_parser:
|
||||||
|
with mock.patch("bec_server.device_server.cli.launch.ServiceConfig") as mock_config:
|
||||||
|
with mock.patch("bec_server.device_server.DeviceServer") as mock_device_server:
|
||||||
|
with mock.patch(
|
||||||
|
"bec_server.device_server.cli.launch.threading.Event"
|
||||||
|
) as mock_event:
|
||||||
|
mock_event.return_value.wait.side_effect = KeyboardInterrupt
|
||||||
|
main()
|
||||||
|
mock_parser.assert_called_once()
|
||||||
|
mock_config.assert_called_once()
|
||||||
|
mock_device_server.assert_called_once()
|
||||||
|
mock_event.assert_called_once()
|
@ -6,7 +6,7 @@ import pytest
|
|||||||
from ophyd import Device, Kind, Signal, Staged, StatusBase
|
from ophyd import Device, Kind, Signal, Staged, StatusBase
|
||||||
|
|
||||||
from bec_lib import Alarms, MessageEndpoints, messages
|
from bec_lib import Alarms, MessageEndpoints, messages
|
||||||
from device_server.rpc_mixin import RPCMixin
|
from bec_server.device_server.rpc_mixin import RPCMixin
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
@ -5,14 +5,14 @@ from unittest import mock
|
|||||||
import h5py
|
import h5py
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import pytest
|
import pytest
|
||||||
from file_writer_plugins.cSAXS import NeXus_format as cSAXS_Nexus_format
|
|
||||||
from test_file_writer_manager import file_writer_manager_mock
|
from test_file_writer_manager import file_writer_manager_mock
|
||||||
|
|
||||||
import file_writer
|
|
||||||
from bec_lib.tests.fixtures import dm_with_devices
|
from bec_lib.tests.fixtures import dm_with_devices
|
||||||
from file_writer import NexusFileWriter, NeXusFileXMLWriter
|
from bec_server import file_writer
|
||||||
from file_writer.file_writer import HDF5Storage
|
from bec_server.file_writer import NexusFileWriter, NeXusFileXMLWriter
|
||||||
from file_writer.file_writer_manager import ScanStorage
|
from bec_server.file_writer.file_writer import HDF5Storage
|
||||||
|
from bec_server.file_writer.file_writer_manager import ScanStorage
|
||||||
|
from bec_server.file_writer_plugins.cSAXS import NeXus_format as cSAXS_Nexus_format
|
||||||
|
|
||||||
dir_path = os.path.dirname(file_writer.__file__)
|
dir_path = os.path.dirname(file_writer.__file__)
|
||||||
|
|
||||||
@ -24,18 +24,6 @@ def file_writer_manager_mock_with_dm(file_writer_manager_mock, dm_with_devices):
|
|||||||
yield file_writer
|
yield file_writer
|
||||||
|
|
||||||
|
|
||||||
def test_nexus_file_xml_writer(file_writer_manager_mock_with_dm):
|
|
||||||
file_manager = file_writer_manager_mock_with_dm
|
|
||||||
file_writer = NeXusFileXMLWriter(file_manager)
|
|
||||||
file_writer.configure(
|
|
||||||
layout_file=os.path.abspath(os.path.join(dir_path, "../layout_cSAXS_NXsas.xml"))
|
|
||||||
)
|
|
||||||
with mock.patch.object(
|
|
||||||
file_writer, "_create_device_data_storage", return_value={"samx": [0, 1, 2]}
|
|
||||||
):
|
|
||||||
file_writer.write("./test.h5", {})
|
|
||||||
|
|
||||||
|
|
||||||
def test_csaxs_nexus_format(file_writer_manager_mock_with_dm):
|
def test_csaxs_nexus_format(file_writer_manager_mock_with_dm):
|
||||||
file_manager = file_writer_manager_mock_with_dm
|
file_manager = file_writer_manager_mock_with_dm
|
||||||
writer_storage = cSAXS_Nexus_format(
|
writer_storage = cSAXS_Nexus_format(
|
@ -1,13 +1,13 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
from file_writer.cli.launch import main
|
from bec_server.file_writer.cli.launch import main
|
||||||
|
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
with mock.patch("file_writer.cli.launch.argparse.ArgumentParser") as mock_parser:
|
with mock.patch("bec_server.file_writer.cli.launch.argparse.ArgumentParser") as mock_parser:
|
||||||
with mock.patch("file_writer.cli.launch.ServiceConfig") as mock_config:
|
with mock.patch("bec_server.file_writer.cli.launch.ServiceConfig") as mock_config:
|
||||||
with mock.patch("file_writer.FileWriterManager") as mock_file_writer:
|
with mock.patch("bec_server.file_writer.FileWriterManager") as mock_file_writer:
|
||||||
with mock.patch("file_writer.cli.launch.threading.Event") as mock_event:
|
with mock.patch("bec_server.file_writer.cli.launch.threading.Event") as mock_event:
|
||||||
main()
|
main()
|
||||||
mock_parser.assert_called_once()
|
mock_parser.assert_called_once()
|
||||||
mock_config.assert_called_once()
|
mock_config.assert_called_once()
|
||||||
@ -16,10 +16,10 @@ def test_main():
|
|||||||
|
|
||||||
|
|
||||||
def test_main_shutdown():
|
def test_main_shutdown():
|
||||||
with mock.patch("file_writer.cli.launch.argparse.ArgumentParser") as mock_parser:
|
with mock.patch("bec_server.file_writer.cli.launch.argparse.ArgumentParser") as mock_parser:
|
||||||
with mock.patch("file_writer.cli.launch.ServiceConfig") as mock_config:
|
with mock.patch("bec_server.file_writer.cli.launch.ServiceConfig") as mock_config:
|
||||||
with mock.patch("file_writer.FileWriterManager") as mock_file_writer:
|
with mock.patch("bec_server.file_writer.FileWriterManager") as mock_file_writer:
|
||||||
with mock.patch("file_writer.cli.launch.threading.Event") as mock_event:
|
with mock.patch("bec_server.file_writer.cli.launch.threading.Event") as mock_event:
|
||||||
mock_event.return_value.wait.side_effect = KeyboardInterrupt()
|
mock_event.return_value.wait.side_effect = KeyboardInterrupt()
|
||||||
try:
|
try:
|
||||||
main()
|
main()
|
@ -13,9 +13,9 @@ from bec_lib.logger import bec_logger
|
|||||||
from bec_lib.messages import BECStatus
|
from bec_lib.messages import BECStatus
|
||||||
from bec_lib.redis_connector import MessageObject
|
from bec_lib.redis_connector import MessageObject
|
||||||
from bec_lib.tests.utils import ConnectorMock, create_session_from_config, get_device_info_mock
|
from bec_lib.tests.utils import ConnectorMock, create_session_from_config, get_device_info_mock
|
||||||
from file_writer import FileWriterManager
|
from bec_server.file_writer import FileWriterManager
|
||||||
from file_writer.file_writer import FileWriter
|
from bec_server.file_writer.file_writer import FileWriter
|
||||||
from file_writer.file_writer_manager import ScanStorage
|
from bec_server.file_writer.file_writer_manager import ScanStorage
|
||||||
|
|
||||||
# pylint: disable=missing-function-docstring
|
# pylint: disable=missing-function-docstring
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
@ -8,7 +8,7 @@ import bec_lib
|
|||||||
from bec_lib import DeviceManagerBase, ServiceConfig, bec_logger, messages
|
from bec_lib import DeviceManagerBase, ServiceConfig, bec_logger, messages
|
||||||
from bec_lib.messages import BECStatus
|
from bec_lib.messages import BECStatus
|
||||||
from bec_lib.tests.utils import ConnectorMock, create_session_from_config, get_device_info_mock
|
from bec_lib.tests.utils import ConnectorMock, create_session_from_config, get_device_info_mock
|
||||||
from scan_bundler import ScanBundler
|
from bec_server.scan_bundler import ScanBundler
|
||||||
|
|
||||||
# overwrite threads_check fixture from bec_lib,
|
# overwrite threads_check fixture from bec_lib,
|
||||||
# to have it in autouse
|
# to have it in autouse
|
@ -3,7 +3,7 @@ from unittest import mock
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints, messages
|
from bec_lib import MessageEndpoints, messages
|
||||||
from scan_bundler.bec_emitter import BECEmitter
|
from bec_server.scan_bundler.bec_emitter import BECEmitter
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
@ -4,7 +4,7 @@ import msgpack
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import MessageEndpoints
|
from bec_lib import MessageEndpoints
|
||||||
from scan_bundler.bluesky_emitter import BlueskyEmitter
|
from bec_server.scan_bundler.bluesky_emitter import BlueskyEmitter
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
@ -3,7 +3,7 @@ from unittest import mock
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from bec_lib import messages
|
from bec_lib import messages
|
||||||
from scan_bundler.emitter import EmitterBase
|
from bec_server.scan_bundler.emitter import EmitterBase
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
@ -582,7 +582,7 @@ def test_send_scan_point(scan_bundler_mock, scan_id, point_id, sent):
|
|||||||
sb.sync_storage[scan_id] = {"sent": set([1])}
|
sb.sync_storage[scan_id] = {"sent": set([1])}
|
||||||
sb.sync_storage[scan_id][point_id] = {}
|
sb.sync_storage[scan_id][point_id] = {}
|
||||||
with mock.patch.object(sb, "run_emitter") as emitter:
|
with mock.patch.object(sb, "run_emitter") as emitter:
|
||||||
with mock.patch("scan_bundler.scan_bundler.logger") as logger:
|
with mock.patch("bec_server.scan_bundler.scan_bundler.logger") as logger:
|
||||||
sb._send_scan_point(scan_id, point_id)
|
sb._send_scan_point(scan_id, point_id)
|
||||||
emitter.assert_called_once_with("on_scan_point_emit", scan_id, point_id)
|
emitter.assert_called_once_with("on_scan_point_emit", scan_id, point_id)
|
||||||
if sent:
|
if sent:
|
||||||
@ -591,7 +591,7 @@ def test_send_scan_point(scan_bundler_mock, scan_id, point_id, sent):
|
|||||||
|
|
||||||
def test_run_emitter(scan_bundler_mock):
|
def test_run_emitter(scan_bundler_mock):
|
||||||
sb = scan_bundler_mock
|
sb = scan_bundler_mock
|
||||||
with mock.patch("scan_bundler.scan_bundler.logger") as logger:
|
with mock.patch("bec_server.scan_bundler.scan_bundler.logger") as logger:
|
||||||
sb.run_emitter("on_init", "jlaksjd", "jlkasjd")
|
sb.run_emitter("on_init", "jlaksjd", "jlkasjd")
|
||||||
logger.error.assert_called()
|
logger.error.assert_called()
|
||||||
|
|
@ -1,13 +1,13 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
from scan_bundler.cli.launch import main
|
from bec_server.scan_bundler.cli.launch import main
|
||||||
|
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
with mock.patch("scan_bundler.cli.launch.argparse.ArgumentParser") as mock_parser:
|
with mock.patch("bec_server.scan_bundler.cli.launch.argparse.ArgumentParser") as mock_parser:
|
||||||
with mock.patch("scan_bundler.cli.launch.ServiceConfig") as mock_config:
|
with mock.patch("bec_server.scan_bundler.cli.launch.ServiceConfig") as mock_config:
|
||||||
with mock.patch("scan_bundler.ScanBundler") as mock_scan_bundler:
|
with mock.patch("bec_server.scan_bundler.ScanBundler") as mock_scan_bundler:
|
||||||
with mock.patch("scan_bundler.cli.launch.threading.Event") as mock_event:
|
with mock.patch("bec_server.scan_bundler.cli.launch.threading.Event") as mock_event:
|
||||||
main()
|
main()
|
||||||
mock_parser.assert_called_once()
|
mock_parser.assert_called_once()
|
||||||
mock_config.assert_called_once()
|
mock_config.assert_called_once()
|
||||||
@ -16,10 +16,10 @@ def test_main():
|
|||||||
|
|
||||||
|
|
||||||
def test_main_shutdown():
|
def test_main_shutdown():
|
||||||
with mock.patch("scan_bundler.cli.launch.argparse.ArgumentParser") as mock_parser:
|
with mock.patch("bec_server.scan_bundler.cli.launch.argparse.ArgumentParser") as mock_parser:
|
||||||
with mock.patch("scan_bundler.cli.launch.ServiceConfig") as mock_config:
|
with mock.patch("bec_server.scan_bundler.cli.launch.ServiceConfig") as mock_config:
|
||||||
with mock.patch("scan_bundler.ScanBundler") as mock_scan_bundler:
|
with mock.patch("bec_server.scan_bundler.ScanBundler") as mock_scan_bundler:
|
||||||
with mock.patch("scan_bundler.cli.launch.threading.Event") as mock_event:
|
with mock.patch("bec_server.scan_bundler.cli.launch.threading.Event") as mock_event:
|
||||||
mock_event.return_value.wait.side_effect = KeyboardInterrupt()
|
mock_event.return_value.wait.side_effect = KeyboardInterrupt()
|
||||||
try:
|
try:
|
||||||
main()
|
main()
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user