From 01b8c36441775c1ac6f2c6b1efb08203ec6b83aa Mon Sep 17 00:00:00 2001 From: Noemi Frisina Date: Tue, 3 Sep 2024 09:51:29 +0100 Subject: [PATCH] Tidy up again --- .../i24/serial/fixed_target/i24ssx_moveonclick.py | 7 +++---- .../beamlines/i24/serial/fixed_target/test_moveonclick.py | 8 +++++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py b/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py index 2c03db728..c22cc1222 100755 --- a/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +++ b/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py @@ -30,9 +30,9 @@ def _get_beam_centre(oav: OAV): return oav.parameters.beam_centre_i, oav.parameters.beam_centre_j -def _calculate_zoom_calibrator(oav: OAV, RE: RunEngine): +def _calculate_zoom_calibrator(oav: OAV): """Set the scale for the zoom calibrator for the pmac moves.""" - currentzoom = RE(bps.rd(oav.zoom_controller.percentage)).plan_result # type: ignore + currentzoom = yield from bps.rd(oav.zoom_controller.percentage) zoomcalibrator = 1.547 - (0.03 * currentzoom) + (0.0001634 * currentzoom**2) return zoomcalibrator @@ -51,7 +51,7 @@ def onMouse(event, x, y, flags, param): oav = param[2] beamX, beamY = _get_beam_centre(oav) logger.info(f"Clicked X and Y {x} {y}") - zoomcalibrator = _calculate_zoom_calibrator(oav, RE) + zoomcalibrator = RE(_calculate_zoom_calibrator(oav)).plan_result # type: ignore xmove = -1 * (beamX - x) * zoomcalibrator ymove = -1 * (beamY - y) * zoomcalibrator logger.info(f"Moving X and Y {xmove} {ymove}") @@ -68,7 +68,6 @@ def update_ui(oav, frame): cv.ellipse( frame, (beamX, beamY), (12, 8), 0.0, 0.0, 360, (0, 255, 255), thickness=2 ) - # putText(frame,'text',bottomLeftCornerOfText, font, fontScale, fontColor, thickness, lineType) cv.putText( frame, "Key bindings", diff --git a/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py b/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py index 4084e5bd1..95f8a2ff1 100644 --- a/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +++ b/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py @@ -1,5 +1,6 @@ from unittest.mock import ANY, MagicMock, call, patch +import bluesky.plan_stubs as bps import cv2 as cv import pytest from dodal.devices.i24.pmac import PMAC @@ -49,7 +50,12 @@ def test_onMouse_gets_beam_position_and_sends_correct_str( pmac: PMAC, RE, ): - fake_zoom_calibrator.side_effect = [ZOOMCALIBRATOR] + # fake_zoom_calibrator.return_value = ZOOMCALIBRATOR + def fake_generator(value): + yield from bps.null() + return value + + fake_zoom_calibrator.side_effect = [fake_generator(ZOOMCALIBRATOR)] fake_get_beam_pos.side_effect = [beam_position] fake_oav: OAV = MagicMock(spec=OAV) onMouse(cv.EVENT_LBUTTONUP, 0, 0, "", param=[RE, pmac, fake_oav])