Source code for blissoda.demo.tests.itest_id12

"""Integration tests for the ID12 HDF5 converter."""

import pathlib

from ...bliss_globals import setup_globals
from .. import testing
from ..processors.id12 import DemoId12Hdf5ToSpecConverter


[docs] @testing.integration_fixture def id12_converter(): converter = DemoId12Hdf5ToSpecConverter() converter.enable() yield converter converter.disable()
[docs] @testing.integration_test def test_id12_loopscan( id12_converter: DemoId12Hdf5ToSpecConverter, expo=0.2, npoints=10 ): scan = setup_globals.loopscan( npoints, expo, setup_globals.diode1, setup_globals.diode2, setup_globals.mca1, ) scan_number = scan.scan_info["scan_nb"] output_dir = pathlib.Path(id12_converter.output_dir(scan)) _assert_spec_counter_file(id12_converter, output_dir, scan_number)
@testing.demo_assert("Check id12 SPEC file for scan #{scan_number}") def _assert_spec_counter_file( id12_converter: DemoId12Hdf5ToSpecConverter, output_dir: pathlib.Path, scan_number: int, ): result = id12_converter._future.result(timeout=10) base_names = result["output_filenames"] assert len(base_names) == 1 subscan = 1 for base_name in base_names: with open(output_dir / base_name, "r") as f: assert f"scan{scan_number:03d}_{subscan}" in base_name, base_name counters = f.readline().split(" ") for name in [ "epoch", "elapsed_time", "diode1", "diode2", "mca1_det0_events", ]: assert name in counters, name