You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add GeRM detector mock class, plus unit tests for GeRM detector and all edxd scans - #109
… scans
Jakub: the sweep on main is correct, so edxd_calib_scan is back to main's version apart from its EdxdCalibration tiled_specs, and its tests follow main's behaviour (the zero-span check went with the reverted sweep). The calibration fixture puts z1's starting velocity rather than mocking it: the plan restores the velocity's setpoint, which a mocked value leaves at 0 (on the IOC, VELO's setpoint is its value). The auto-exporter now exports EdxdCalibration runs with export_edxd_run_to_h5, the same layout as EDXD scans; before, calibration runs logged 'no exporter registered'.
Assisted-by: copilot:claude-opus-5-5
Merged main (177a274); pixi.lock re-solved from main's lock for the merged pixi.toml, so main's pins stay (e.g. ntnda-qt-viewer 778e714).
edxd_calib_scan is back to main's sweep, as you said; only its EdxdCalibrationtiled_specs remains from this PR. The calib tests follow main's behaviour, and the zero-span test went with the old sweep. The fixture now puts z1's starting velocity: reset_positions_decorator restores the velocity's setpoint, which a mocked value leaves at 0 in mock mode (on the IOC the setpoint is the PV value).
Calibration runs now export with export_edxd_run_to_h5 (same layout as EDXD scans): EXPORTERS had no EdxdCalibration entry, so they logged "no exporter registered".
Full suite passes against the locked deps (mock only).
The reason will be displayed to describe this comment to others. Learn more.
🟡 Changes recommended
Critical sweep-timing and mock-file reuse defects can falsely mark partially unmeasured calibrations as successful and cause later runs to reference earlier runs’ frames.
The reason will be displayed to describe this comment to others. Learn more.
🟡 Changes recommended
Disabling test pulses mid-acquisition erases previously collected pulse counts from subsequent updates and the saved frame, creating a critical data-integrity defect.
…est jobs
GeRM mock: the last step sleeps only the remaining exposure; test pulses accumulate with the settings active in each step, so turning them off mid-count keeps the pulses already counted. --mock: the GeRM viewer is built in callback mode (push_frame), so it never subscribes to the real GeRM PV, and frames reach viewers through push_frame, which drops them while stopped. Profile: %mov/%movr (HEXBlueskyMagics) put back RE.waiting_hook, so the GUI's progress bars survive them; mock detectors get UUID file names, so two runs in one second cannot share a file. CI: with the GUI extra now in the py3xx envs, tests/gui ran in the unit-test jobs too, where a GUI test's IPython shell broke test_resume_button_resumes_a_paused_plan[shell] and leftover Qt objects segfaulted test_dclm on 3.12; tests/gui runs only in the GUI job again.
Assisted-by: copilot:claude-opus-5-5
The reason will be displayed to describe this comment to others. Learn more.
🔵 Needs a closer look
The tests and coverage tasks run GUI and non-GUI suites in one process, retaining the documented Qt garbage-collection crash risk and requiring separate pytest processes with combined coverage.
No open issues 🎉
1 previously missed issue
In code that hasn't changed since last review
Split GUI and non-GUI tests into separate coverage processes
pixi.toml:162
The tests task runs GUI and non-GUI tests in one process, retaining the Qt garbage-collection crash documented in .github/workflows/ci.yml:82–84. The coverage task at line 169 has the same issue. Split both tasks into separate pytest processes and append the GUI coverage so reports still include both suites.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.