Source code for ewoksid24.tests.gui.test_xasmap_select
import os
from silx.gui import qt
from ...gui.xasmap_select import XasMapInputWidget
[docs]
def test_add_xasmap(qtbot):
fake_files = ["/tmp/file1.h5", "/tmp/file2.h5"]
widget = XasMapInputWidget()
widget.add_xasmap(
filenames=fake_files,
dim0_counter="x",
dim1_counter="y",
energy_counter="energy",
mu_counter="mu",
scan_ranges="[[1, 5]]",
exclude_scans="[[2, 3]]",
)
qtbot.addWidget(widget)
xasmaps = widget._get_xasmaps()
assert len(xasmaps) == 1
xasmap = xasmaps[0]
assert xasmap["filenames"] == list(map(os.path.realpath, fake_files))
assert xasmap["dim0_counter"] == "x"
assert xasmap["dim1_counter"] == "y"
assert xasmap["energy_counter"] == "energy"
assert xasmap["mu_counter"] == "mu"
assert xasmap["scan_ranges"] == [[1, 5]]
assert xasmap["exclude_scans"] == [[2, 3]]
[docs]
def test_invalid_scan_range_warns(monkeypatch):
widget = XasMapInputWidget()
widget.add_xasmap(
filenames=["/tmp/file1.h5"],
dim0_counter="x",
dim1_counter="y",
energy_counter="energy",
mu_counter="mu",
)
assert len(widget._get_xasmaps()) == 1
widget._scan_range_input.setText("[[1]]") # Invalid scan range (only one value)
called = False
def fake_warning(*args, **kwargs):
nonlocal called
called = True
monkeypatch.setattr(qt.QMessageBox, "warning", fake_warning)
widget._create_xasmap()
assert called is True
assert len(widget._get_xasmaps()) == 1