Source code for blissoda.demo.tests.itest_bm08
"""Integration tests for the BM08 HDF5 to XDI converter."""
import numpy
from ...bliss_globals import setup_globals
from .. import testing
from ..processors.bm08 import DemoBm08Hdf5ToXdiConverter
[docs]
@testing.integration_fixture
def bm08_converter():
converter = DemoBm08Hdf5ToXdiConverter()
converter.enable()
setup_globals.mca1.rois.set("OdaRoi", 500, 530)
yield converter
setup_globals.mca1.rois.remove("OdaRoi")
converter.disable()
[docs]
@testing.integration_test
def test_bm08_kscan(bm08_converter: DemoBm08Hdf5ToXdiConverter, expo=0.2, npoints=10):
positions = numpy.linspace(1, 2, npoints)
scan_info = {
"scan_parameters": {"scan_type": "Kscan"},
"scan_metadata_categories": ["scan_parameters"],
}
scan = setup_globals.pointscan(
setup_globals.roby,
positions,
expo,
setup_globals.diode1,
setup_globals.diode2,
setup_globals.mca1,
setup_globals.mca2,
scan_info=scan_info,
)
scan_number = scan.scan_info["scan_nb"]
_assert_xdi_file(bm08_converter, scan_number)
@testing.demo_assert("Check bm08 XDI file for scan #{scan_number}")
def _assert_xdi_file(bm08_converter: DemoBm08Hdf5ToXdiConverter, scan_number=int):
result = bm08_converter._future.result(timeout=bm08_converter.retry_timeout + 5)
output_filename = result["output_filename"]
print(output_filename)
with open(output_filename, "r") as fh:
lines = fh.readlines()
expected_counters = "# energy diode1 diode2 OdaRoi_0 OdaRoi_1 OdaRoi_2 OdaRoi_3\n"
assert expected_counters in lines, "\n".join(expected_counters)