mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 11:41:49 +02:00
test: test_bec_monitor.py fixed
This commit is contained in:
@ -187,14 +187,6 @@ CONFIG_SIMPLE = {
|
|||||||
"y": [{"name": "bpm4i", "entry": "bpm4i"}],
|
"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
|
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
|
# mocked messages and metadata
|
||||||
msg_1 = {
|
msg_1 = {
|
||||||
"data": {
|
"data": {
|
||||||
@ -183,17 +190,32 @@ metadata_line = {"scan_name": "line_scan"}
|
|||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"config_name, msg, metadata, expected_data",
|
"config_name, msg, metadata, expected_data",
|
||||||
[
|
[
|
||||||
# case: msg does not have 'scanid'
|
# case: msg does not have 'scanID'
|
||||||
("config_device", {"data": {}}, {}, {}),
|
(
|
||||||
|
"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
|
# case: scan_types is false, msg contains all valid fields, and entry is present in config
|
||||||
(
|
(
|
||||||
"config_device",
|
"config_device",
|
||||||
msg_1,
|
msg_1,
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
("samx", "samx", "bpm4i", "bpm4i"): {"x": [10], "y": [5]},
|
"scan_segment": {
|
||||||
("samx", "samx", "gauss_adc1", "gauss_adc1"): {"x": [10], "y": [8]},
|
"bpm4i": {"bpm4i": [5]},
|
||||||
("samx", "samx", "gauss_adc2", "gauss_adc2"): {"x": [10], "y": [9]},
|
"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
|
# 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,
|
msg_1,
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
("samx", "samx", "bpm4i", "bpm4i"): {"x": [10], "y": [5]},
|
"scan_segment": {
|
||||||
("samx", "samx", "gauss_bpm", "gauss_bpm"): {"x": [10], "y": [6]},
|
"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:"
|
# 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,
|
msg_1,
|
||||||
metadata_line,
|
metadata_line,
|
||||||
{
|
{
|
||||||
("samx", "samx", "bpm4i", "bpm4i"): {"x": [10], "y": [5]},
|
"scan_segment": {
|
||||||
("samx", "samx", "gauss_bpm", "gauss_bpm"): {"x": [10], "y": [6]},
|
"bpm4i": {"bpm4i": [5]},
|
||||||
("samx", "samx", "gauss_adc1", "gauss_adc1"): {"x": [10], "y": [8]},
|
"gauss_adc1": {"gauss_adc1": [8]},
|
||||||
("samx", "samx", "gauss_adc2", "gauss_adc2"): {"x": [10], "y": [9]},
|
"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,
|
msg_1,
|
||||||
metadata_grid,
|
metadata_grid,
|
||||||
{
|
{
|
||||||
("samx", "samx", "bpm4i", "bpm4i"): {"x": [10], "y": [5]},
|
"scan_segment": {
|
||||||
("samx", "samx", "gauss_adc1", "gauss_adc1"): {"x": [10], "y": [8]},
|
"bpm4i": {"bpm4i": [5]},
|
||||||
("samx", "samx", "gauss_adc2", "gauss_adc2"): {"x": [10], "y": [9]},
|
"gauss_adc1": {"gauss_adc1": [8]},
|
||||||
("samx", "samx", "gauss_bpm", "gauss_bpm"): {"x": [10], "y": [6]},
|
"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):
|
def test_on_scan_segment(monitor, config_name, msg, metadata, expected_data):
|
||||||
config = load_test_config(config_name)
|
config = load_test_config(config_name)
|
||||||
monitor.on_config_update(config)
|
monitor.on_config_update(config)
|
||||||
|
|
||||||
# Get hints
|
# Get hints
|
||||||
monitor.dev.__getitem__.side_effect = mock_getitem
|
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)
|
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
|
scan_types: false
|
||||||
plot_data:
|
plot_data:
|
||||||
- plot_name: "BPM4i plots vs samx"
|
- plot_name: "BPM4i plots vs samx"
|
||||||
x:
|
x_label: "Motor X"
|
||||||
label: "Motor Y"
|
y_label: "bpm4i"
|
||||||
signals:
|
sources:
|
||||||
- name: "samx"
|
- type: "scan_segment"
|
||||||
entry: "samx"
|
signals:
|
||||||
y:
|
x:
|
||||||
label: "bpm4i"
|
- name : "samx"
|
||||||
signals:
|
entry: "samx"
|
||||||
- name: "bpm4i"
|
y:
|
||||||
entry: "bpm4i"
|
- name : "bpm4i"
|
||||||
|
entry: "bpm4i"
|
||||||
|
|
||||||
- plot_name: "Gauss plots vs samx"
|
- plot_name: "Gauss plots vs samx"
|
||||||
x:
|
x_label: "Motor X"
|
||||||
label: "Motor X"
|
y_label: "Gauss"
|
||||||
signals:
|
sources:
|
||||||
- name: "samx"
|
- type: "scan_segment"
|
||||||
entry: "samx"
|
signals:
|
||||||
y:
|
x:
|
||||||
label: "Gauss"
|
- name: "samx"
|
||||||
signals:
|
entry: "samx"
|
||||||
- name: "gauss_adc1"
|
y:
|
||||||
entry: "gauss_adc1"
|
- name: "gauss_adc1"
|
||||||
- name: "gauss_adc2"
|
entry: "gauss_adc1"
|
||||||
entry: "gauss_adc2"
|
- name: "gauss_adc2"
|
||||||
|
entry: "gauss_adc2"
|
@ -1,24 +1,27 @@
|
|||||||
plot_settings:
|
plot_settings:
|
||||||
background_color: "white"
|
background_color: "black"
|
||||||
num_columns: 5
|
num_columns: 1
|
||||||
colormap: "plasma"
|
colormap: "plasma"
|
||||||
scan_types: false
|
scan_types: false
|
||||||
plot_data:
|
plot_data:
|
||||||
- plot_name: "BPM4i plots vs samx"
|
- plot_name: "BPM4i plots vs samx"
|
||||||
x:
|
x_label: "Motor X"
|
||||||
label: "Motor Y"
|
y_label: "bpm4i"
|
||||||
signals:
|
sources:
|
||||||
- name: "samx"
|
- type: "scan_segment"
|
||||||
y:
|
signals:
|
||||||
label: "bpm4i"
|
x:
|
||||||
signals:
|
- name : "samx"
|
||||||
- name: "bpm4i"
|
y:
|
||||||
|
- name : "bpm4i"
|
||||||
|
|
||||||
- plot_name: "Gauss plots vs samx"
|
- plot_name: "Gauss plots vs samx"
|
||||||
x:
|
x_label: "Motor X"
|
||||||
label: "Motor X"
|
y_label: "Gauss"
|
||||||
signals:
|
sources:
|
||||||
- name: "samx"
|
- type: "scan_segment"
|
||||||
y:
|
signals:
|
||||||
label: "Gauss"
|
x:
|
||||||
signals:
|
- name: "samx"
|
||||||
- name: "gauss_bpm"
|
y:
|
||||||
|
- name: "gauss_bpm"
|
@ -6,72 +6,77 @@ plot_settings:
|
|||||||
plot_data:
|
plot_data:
|
||||||
grid_scan:
|
grid_scan:
|
||||||
- plot_name: "Grid plot 1"
|
- plot_name: "Grid plot 1"
|
||||||
x:
|
x_label: "Motor X"
|
||||||
label: "Motor X"
|
y_label: "BPM"
|
||||||
signals:
|
sources:
|
||||||
- name: "samx"
|
- type: "scan_segment"
|
||||||
entry: "samx"
|
signals:
|
||||||
y:
|
x:
|
||||||
label: "BPM"
|
- name: "samx"
|
||||||
signals:
|
entry: "samx"
|
||||||
- name: "gauss_bpm"
|
y:
|
||||||
entry: "gauss_bpm"
|
- name: "gauss_bpm"
|
||||||
|
entry: "gauss_bpm"
|
||||||
- plot_name: "Grid plot 2"
|
- plot_name: "Grid plot 2"
|
||||||
x:
|
x_label: "Motor X"
|
||||||
label: "Motor X"
|
y_label: "BPM"
|
||||||
signals:
|
sources:
|
||||||
- name: "samx"
|
- type: "scan_segment"
|
||||||
entry: "samx"
|
signals:
|
||||||
y:
|
x:
|
||||||
label: "BPM"
|
- name: "samx"
|
||||||
signals:
|
entry: "samx"
|
||||||
- name: "gauss_adc1"
|
y:
|
||||||
entry: "gauss_adc1"
|
- name: "gauss_adc1"
|
||||||
|
entry: "gauss_adc1"
|
||||||
- plot_name: "Grid plot 3"
|
- plot_name: "Grid plot 3"
|
||||||
x:
|
x_label: "Motor X"
|
||||||
label: "Motor Y"
|
y_label: "BPM"
|
||||||
signals:
|
sources:
|
||||||
- name: "samx"
|
- type: "scan_segment"
|
||||||
entry: "samx"
|
signals:
|
||||||
y:
|
x:
|
||||||
label: "BPM"
|
- name: "samx"
|
||||||
signals:
|
entry: "samx"
|
||||||
- name: "gauss_adc2"
|
y:
|
||||||
entry: "gauss_adc2"
|
- name: "gauss_adc2"
|
||||||
|
entry: "gauss_adc2"
|
||||||
- plot_name: "Grid plot 4"
|
- plot_name: "Grid plot 4"
|
||||||
x:
|
x_label: "Motor X"
|
||||||
label: "Motor Y"
|
y_label: "BPM"
|
||||||
signals:
|
sources:
|
||||||
- name: "samx"
|
- type: "scan_segment"
|
||||||
entry: "samx"
|
signals:
|
||||||
y:
|
x:
|
||||||
label: "BPM"
|
- name: "samx"
|
||||||
signals:
|
entry: "samx"
|
||||||
- name: "bpm4i"
|
y:
|
||||||
entry: "bpm4i"
|
- name: "bpm4i"
|
||||||
|
entry: "bpm4i"
|
||||||
line_scan:
|
line_scan:
|
||||||
- plot_name: "Multiple Gauss Plot"
|
- plot_name: "Multiple Gauss Plot"
|
||||||
x:
|
x_label: "Motor X"
|
||||||
label: "Motor X"
|
y_label: "BPM"
|
||||||
signals:
|
sources:
|
||||||
- name: "samx"
|
- type: "scan_segment"
|
||||||
y:
|
signals:
|
||||||
label: "BPM"
|
x:
|
||||||
signals:
|
- name: "samx"
|
||||||
- name: "gauss_bpm"
|
y:
|
||||||
entry: "gauss_bpm"
|
- name: "gauss_bpm"
|
||||||
- name: "gauss_adc1"
|
entry: "gauss_bpm"
|
||||||
entry: "gauss_adc1"
|
- name: "gauss_adc1"
|
||||||
- name: "gauss_adc2"
|
entry: "gauss_adc1"
|
||||||
entry: "gauss_adc2"
|
- name: "gauss_adc2"
|
||||||
- plot_name: "BPM Plot"
|
entry: "gauss_adc2"
|
||||||
x:
|
- plot_name: "BPM Plot"
|
||||||
label: "Motor X"
|
x_label: "Motor X"
|
||||||
signals:
|
y_label: "BPM"
|
||||||
- name: "samx"
|
sources:
|
||||||
entry: "samx"
|
- type: "scan_segment"
|
||||||
y:
|
signals:
|
||||||
label: "Multi"
|
x:
|
||||||
signals:
|
- name: "samx"
|
||||||
- name: "bpm4i"
|
y:
|
||||||
entry: "bpm4i"
|
- name: "bpm4i"
|
||||||
|
entry: "bpm4i"
|
Reference in New Issue
Block a user