mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 03:31:50 +02:00
test: test_bec_monitor.py fixed
This commit is contained in:
@ -187,14 +187,6 @@ CONFIG_SIMPLE = {
|
||||
"y": [{"name": "bpm4i", "entry": "bpm4i"}],
|
||||
},
|
||||
},
|
||||
# {
|
||||
# "type": "history",
|
||||
# "scanID": "<scanID>",
|
||||
# "signals": {
|
||||
# "x": [{"name": "samx"}],
|
||||
# "y": [{"name": "bpm4i", "entry": "bpm4i"}],
|
||||
# },
|
||||
# },
|
||||
],
|
||||
},
|
||||
{
|
||||
|
@ -165,6 +165,13 @@ def mock_getitem(dev_name):
|
||||
return mock_instance
|
||||
|
||||
|
||||
def mock_get_scan_storage(scan_id, data):
|
||||
"""Helper function to mock the __getitem__ method of the 'dev'."""
|
||||
mock_instance = MagicMock()
|
||||
mock_instance.get_scan_storage.return_value = data
|
||||
return mock_instance
|
||||
|
||||
|
||||
# mocked messages and metadata
|
||||
msg_1 = {
|
||||
"data": {
|
||||
@ -183,17 +190,32 @@ metadata_line = {"scan_name": "line_scan"}
|
||||
@pytest.mark.parametrize(
|
||||
"config_name, msg, metadata, expected_data",
|
||||
[
|
||||
# case: msg does not have 'scanid'
|
||||
("config_device", {"data": {}}, {}, {}),
|
||||
# case: msg does not have 'scanID'
|
||||
(
|
||||
"config_device",
|
||||
{"data": {}},
|
||||
{},
|
||||
{
|
||||
"scan_segment": {
|
||||
"bpm4i": {"bpm4i": []},
|
||||
"gauss_adc1": {"gauss_adc1": []},
|
||||
"gauss_adc2": {"gauss_adc2": []},
|
||||
"samx": {"samx": []},
|
||||
}
|
||||
},
|
||||
),
|
||||
# case: scan_types is false, msg contains all valid fields, and entry is present in config
|
||||
(
|
||||
"config_device",
|
||||
msg_1,
|
||||
{},
|
||||
{
|
||||
("samx", "samx", "bpm4i", "bpm4i"): {"x": [10], "y": [5]},
|
||||
("samx", "samx", "gauss_adc1", "gauss_adc1"): {"x": [10], "y": [8]},
|
||||
("samx", "samx", "gauss_adc2", "gauss_adc2"): {"x": [10], "y": [9]},
|
||||
"scan_segment": {
|
||||
"bpm4i": {"bpm4i": [5]},
|
||||
"gauss_adc1": {"gauss_adc1": [8]},
|
||||
"gauss_adc2": {"gauss_adc2": [9]},
|
||||
"samx": {"samx": [10]},
|
||||
}
|
||||
},
|
||||
),
|
||||
# case: scan_types is false, msg contains all valid fields and entry is missing in config, should use hints
|
||||
@ -202,8 +224,11 @@ metadata_line = {"scan_name": "line_scan"}
|
||||
msg_1,
|
||||
{},
|
||||
{
|
||||
("samx", "samx", "bpm4i", "bpm4i"): {"x": [10], "y": [5]},
|
||||
("samx", "samx", "gauss_bpm", "gauss_bpm"): {"x": [10], "y": [6]},
|
||||
"scan_segment": {
|
||||
"bpm4i": {"bpm4i": [5]},
|
||||
"gauss_bpm": {"gauss_bpm": [6]},
|
||||
"samx": {"samx": [10]},
|
||||
}
|
||||
},
|
||||
),
|
||||
# case: scan_types is true, msg contains all valid fields, metadata contains scan "line_scan:"
|
||||
@ -212,10 +237,13 @@ metadata_line = {"scan_name": "line_scan"}
|
||||
msg_1,
|
||||
metadata_line,
|
||||
{
|
||||
("samx", "samx", "bpm4i", "bpm4i"): {"x": [10], "y": [5]},
|
||||
("samx", "samx", "gauss_bpm", "gauss_bpm"): {"x": [10], "y": [6]},
|
||||
("samx", "samx", "gauss_adc1", "gauss_adc1"): {"x": [10], "y": [8]},
|
||||
("samx", "samx", "gauss_adc2", "gauss_adc2"): {"x": [10], "y": [9]},
|
||||
"scan_segment": {
|
||||
"bpm4i": {"bpm4i": [5]},
|
||||
"gauss_adc1": {"gauss_adc1": [8]},
|
||||
"gauss_adc2": {"gauss_adc2": [9]},
|
||||
"gauss_bpm": {"gauss_bpm": [6]},
|
||||
"samx": {"samx": [10]},
|
||||
}
|
||||
},
|
||||
),
|
||||
(
|
||||
@ -223,10 +251,13 @@ metadata_line = {"scan_name": "line_scan"}
|
||||
msg_1,
|
||||
metadata_grid,
|
||||
{
|
||||
("samx", "samx", "bpm4i", "bpm4i"): {"x": [10], "y": [5]},
|
||||
("samx", "samx", "gauss_adc1", "gauss_adc1"): {"x": [10], "y": [8]},
|
||||
("samx", "samx", "gauss_adc2", "gauss_adc2"): {"x": [10], "y": [9]},
|
||||
("samx", "samx", "gauss_bpm", "gauss_bpm"): {"x": [10], "y": [6]},
|
||||
"scan_segment": {
|
||||
"bpm4i": {"bpm4i": [5]},
|
||||
"gauss_adc1": {"gauss_adc1": [8]},
|
||||
"gauss_adc2": {"gauss_adc2": [9]},
|
||||
"gauss_bpm": {"gauss_bpm": [6]},
|
||||
"samx": {"samx": [10]},
|
||||
}
|
||||
},
|
||||
),
|
||||
],
|
||||
@ -234,8 +265,20 @@ metadata_line = {"scan_name": "line_scan"}
|
||||
def test_on_scan_segment(monitor, config_name, msg, metadata, expected_data):
|
||||
config = load_test_config(config_name)
|
||||
monitor.on_config_update(config)
|
||||
|
||||
# Get hints
|
||||
monitor.dev.__getitem__.side_effect = mock_getitem
|
||||
|
||||
# Mock scan_storage.find_scan_by_ID
|
||||
mock_scan_data = MagicMock()
|
||||
mock_scan_data.data = {
|
||||
device_name: {
|
||||
entry: MagicMock(val=[msg["data"][device_name][entry]["value"]])
|
||||
for entry in msg["data"][device_name]
|
||||
}
|
||||
for device_name in msg["data"]
|
||||
}
|
||||
monitor.queue.scan_storage.find_scan_by_ID.return_value = mock_scan_data
|
||||
|
||||
monitor.on_scan_segment(msg, metadata)
|
||||
assert monitor.data == expected_data
|
||||
assert monitor.database == expected_data
|
||||
|
@ -5,26 +5,29 @@ plot_settings:
|
||||
scan_types: false
|
||||
plot_data:
|
||||
- plot_name: "BPM4i plots vs samx"
|
||||
x:
|
||||
label: "Motor Y"
|
||||
signals:
|
||||
- name: "samx"
|
||||
entry: "samx"
|
||||
y:
|
||||
label: "bpm4i"
|
||||
signals:
|
||||
- name: "bpm4i"
|
||||
entry: "bpm4i"
|
||||
x_label: "Motor X"
|
||||
y_label: "bpm4i"
|
||||
sources:
|
||||
- type: "scan_segment"
|
||||
signals:
|
||||
x:
|
||||
- name : "samx"
|
||||
entry: "samx"
|
||||
y:
|
||||
- name : "bpm4i"
|
||||
entry: "bpm4i"
|
||||
|
||||
- plot_name: "Gauss plots vs samx"
|
||||
x:
|
||||
label: "Motor X"
|
||||
signals:
|
||||
- name: "samx"
|
||||
entry: "samx"
|
||||
y:
|
||||
label: "Gauss"
|
||||
signals:
|
||||
- name: "gauss_adc1"
|
||||
entry: "gauss_adc1"
|
||||
- name: "gauss_adc2"
|
||||
entry: "gauss_adc2"
|
||||
x_label: "Motor X"
|
||||
y_label: "Gauss"
|
||||
sources:
|
||||
- type: "scan_segment"
|
||||
signals:
|
||||
x:
|
||||
- name: "samx"
|
||||
entry: "samx"
|
||||
y:
|
||||
- name: "gauss_adc1"
|
||||
entry: "gauss_adc1"
|
||||
- name: "gauss_adc2"
|
||||
entry: "gauss_adc2"
|
@ -1,24 +1,27 @@
|
||||
plot_settings:
|
||||
background_color: "white"
|
||||
num_columns: 5
|
||||
background_color: "black"
|
||||
num_columns: 1
|
||||
colormap: "plasma"
|
||||
scan_types: false
|
||||
plot_data:
|
||||
- plot_name: "BPM4i plots vs samx"
|
||||
x:
|
||||
label: "Motor Y"
|
||||
signals:
|
||||
- name: "samx"
|
||||
y:
|
||||
label: "bpm4i"
|
||||
signals:
|
||||
- name: "bpm4i"
|
||||
x_label: "Motor X"
|
||||
y_label: "bpm4i"
|
||||
sources:
|
||||
- type: "scan_segment"
|
||||
signals:
|
||||
x:
|
||||
- name : "samx"
|
||||
y:
|
||||
- name : "bpm4i"
|
||||
|
||||
- plot_name: "Gauss plots vs samx"
|
||||
x:
|
||||
label: "Motor X"
|
||||
signals:
|
||||
- name: "samx"
|
||||
y:
|
||||
label: "Gauss"
|
||||
signals:
|
||||
- name: "gauss_bpm"
|
||||
x_label: "Motor X"
|
||||
y_label: "Gauss"
|
||||
sources:
|
||||
- type: "scan_segment"
|
||||
signals:
|
||||
x:
|
||||
- name: "samx"
|
||||
y:
|
||||
- name: "gauss_bpm"
|
@ -6,72 +6,77 @@ plot_settings:
|
||||
plot_data:
|
||||
grid_scan:
|
||||
- plot_name: "Grid plot 1"
|
||||
x:
|
||||
label: "Motor X"
|
||||
signals:
|
||||
- name: "samx"
|
||||
entry: "samx"
|
||||
y:
|
||||
label: "BPM"
|
||||
signals:
|
||||
- name: "gauss_bpm"
|
||||
entry: "gauss_bpm"
|
||||
x_label: "Motor X"
|
||||
y_label: "BPM"
|
||||
sources:
|
||||
- type: "scan_segment"
|
||||
signals:
|
||||
x:
|
||||
- name: "samx"
|
||||
entry: "samx"
|
||||
y:
|
||||
- name: "gauss_bpm"
|
||||
entry: "gauss_bpm"
|
||||
- plot_name: "Grid plot 2"
|
||||
x:
|
||||
label: "Motor X"
|
||||
signals:
|
||||
- name: "samx"
|
||||
entry: "samx"
|
||||
y:
|
||||
label: "BPM"
|
||||
signals:
|
||||
- name: "gauss_adc1"
|
||||
entry: "gauss_adc1"
|
||||
x_label: "Motor X"
|
||||
y_label: "BPM"
|
||||
sources:
|
||||
- type: "scan_segment"
|
||||
signals:
|
||||
x:
|
||||
- name: "samx"
|
||||
entry: "samx"
|
||||
y:
|
||||
- name: "gauss_adc1"
|
||||
entry: "gauss_adc1"
|
||||
- plot_name: "Grid plot 3"
|
||||
x:
|
||||
label: "Motor Y"
|
||||
signals:
|
||||
- name: "samx"
|
||||
entry: "samx"
|
||||
y:
|
||||
label: "BPM"
|
||||
signals:
|
||||
- name: "gauss_adc2"
|
||||
entry: "gauss_adc2"
|
||||
x_label: "Motor X"
|
||||
y_label: "BPM"
|
||||
sources:
|
||||
- type: "scan_segment"
|
||||
signals:
|
||||
x:
|
||||
- name: "samx"
|
||||
entry: "samx"
|
||||
y:
|
||||
- name: "gauss_adc2"
|
||||
entry: "gauss_adc2"
|
||||
- plot_name: "Grid plot 4"
|
||||
x:
|
||||
label: "Motor Y"
|
||||
signals:
|
||||
- name: "samx"
|
||||
entry: "samx"
|
||||
y:
|
||||
label: "BPM"
|
||||
signals:
|
||||
- name: "bpm4i"
|
||||
entry: "bpm4i"
|
||||
x_label: "Motor X"
|
||||
y_label: "BPM"
|
||||
sources:
|
||||
- type: "scan_segment"
|
||||
signals:
|
||||
x:
|
||||
- name: "samx"
|
||||
entry: "samx"
|
||||
y:
|
||||
- name: "bpm4i"
|
||||
entry: "bpm4i"
|
||||
line_scan:
|
||||
- plot_name: "Multiple Gauss Plot"
|
||||
x:
|
||||
label: "Motor X"
|
||||
signals:
|
||||
- name: "samx"
|
||||
y:
|
||||
label: "BPM"
|
||||
signals:
|
||||
- name: "gauss_bpm"
|
||||
entry: "gauss_bpm"
|
||||
- name: "gauss_adc1"
|
||||
entry: "gauss_adc1"
|
||||
- name: "gauss_adc2"
|
||||
entry: "gauss_adc2"
|
||||
- plot_name: "BPM Plot"
|
||||
x:
|
||||
label: "Motor X"
|
||||
signals:
|
||||
- name: "samx"
|
||||
entry: "samx"
|
||||
y:
|
||||
label: "Multi"
|
||||
signals:
|
||||
- name: "bpm4i"
|
||||
entry: "bpm4i"
|
||||
- plot_name: "Multiple Gauss Plot"
|
||||
x_label: "Motor X"
|
||||
y_label: "BPM"
|
||||
sources:
|
||||
- type: "scan_segment"
|
||||
signals:
|
||||
x:
|
||||
- name: "samx"
|
||||
y:
|
||||
- name: "gauss_bpm"
|
||||
entry: "gauss_bpm"
|
||||
- name: "gauss_adc1"
|
||||
entry: "gauss_adc1"
|
||||
- name: "gauss_adc2"
|
||||
entry: "gauss_adc2"
|
||||
- plot_name: "BPM Plot"
|
||||
x_label: "Motor X"
|
||||
y_label: "BPM"
|
||||
sources:
|
||||
- type: "scan_segment"
|
||||
signals:
|
||||
x:
|
||||
- name: "samx"
|
||||
y:
|
||||
- name: "bpm4i"
|
||||
entry: "bpm4i"
|
Reference in New Issue
Block a user