diff --git a/conftest.py b/conftest.py index b48b008f9b..5fe22e4ebd 100644 --- a/conftest.py +++ b/conftest.py @@ -1,5 +1,4 @@ from collections.abc import Iterator -from os import environ from unittest.mock import patch import pytest @@ -7,8 +6,6 @@ # Ensure that the blueapi entry point is not invoked by doctest as this will fail collect_ignore = ["src/mx_bluesky/hyperion/blueapi/plans.py"] -environ["HYPERION_TEST_MODE"] = "true" - pytest_plugins = ["dodal.testing.fixtures.run_engine"] diff --git a/src/mx_bluesky/common/device_setup_plans/setup_panda.py b/src/mx_bluesky/common/device_setup_plans/setup_panda.py deleted file mode 100644 index 685f5fd077..0000000000 --- a/src/mx_bluesky/common/device_setup_plans/setup_panda.py +++ /dev/null @@ -1,9 +0,0 @@ -from ophyd_async.core import YamlSettingsProvider -from ophyd_async.fastcs.panda import HDFPanda, apply_panda_settings -from ophyd_async.plan_stubs import retrieve_settings - - -def load_panda_from_yaml(yaml_directory: str, yaml_file_name: str, panda: HDFPanda): - provider = YamlSettingsProvider(yaml_directory) - settings = yield from retrieve_settings(provider, yaml_file_name, panda) - yield from apply_panda_settings(settings) diff --git a/src/mx_bluesky/common/parameters/components.py b/src/mx_bluesky/common/parameters/components.py index 8fb57e2b03..c4d249f61d 100644 --- a/src/mx_bluesky/common/parameters/components.py +++ b/src/mx_bluesky/common/parameters/components.py @@ -24,9 +24,7 @@ from semver import Version from mx_bluesky.common.parameters.constants import ( - TEST_MODE, USE_NUMTRACKER, - DetectorParamConstants, GridscanParamConstants, ) @@ -158,11 +156,7 @@ class WithOptionalEnergyChange(BaseModel): class WithVisit(BaseModel): beamline: str = Field(default="BL03I", pattern=r"BL\d{2}[BIJS]") visit: str = Field(min_length=1) - det_dist_to_beam_converter_path: str = Field( - default=DetectorParamConstants.BEAM_XY_LUT_PATH - ) detector_distance_mm: float | None = Field(default=None, gt=0) - insertion_prefix: str = "SR03S" if TEST_MODE else "SR03I" class DiffractionExperiment( diff --git a/src/mx_bluesky/common/parameters/constants.py b/src/mx_bluesky/common/parameters/constants.py index 53ed763c73..0dc0d4c64c 100644 --- a/src/mx_bluesky/common/parameters/constants.py +++ b/src/mx_bluesky/common/parameters/constants.py @@ -17,12 +17,6 @@ TEST_MODE = BEAMLINE == "test" ZEBRA_STATUS_TIMEOUT = 30 -GDA_DOMAIN_PROPERTIES_PATH = ( - "tests/test_data/test_domain_properties" - if TEST_MODE - else (f"/dls_sw/{BEAMLINE}/software/daq_configuration/domain/domain.properties") -) - @dataclass(frozen=True) class DocDescriptorNames: @@ -126,11 +120,7 @@ class RotationParamConstants: @dataclass(frozen=True) class DetectorParamConstants: - BEAM_XY_LUT_PATH = ( - "tests/test_data/test_det_dist_converter.txt" - if TEST_MODE - else f"/dls_sw/{BEAMLINE}/software/daq_configuration/lookup/DetDistToBeamXYConverter.txt" - ) + BEAM_XY_LUT_PATH = f"/dls_sw/{BEAMLINE}/software/daq_configuration/lookup/DetDistToBeamXYConverter.txt" DETECTOR = EIGER2_X_16M_SIZE diff --git a/src/mx_bluesky/common/parameters/gridscan.py b/src/mx_bluesky/common/parameters/gridscan.py index 675aa1a8c8..9203252f58 100644 --- a/src/mx_bluesky/common/parameters/gridscan.py +++ b/src/mx_bluesky/common/parameters/gridscan.py @@ -84,10 +84,6 @@ def specified_grid_params(self) -> SpecifiedGrids | None: # must be the same for each grid @property def detector_params(self): - self.det_dist_to_beam_converter_path = ( - self.det_dist_to_beam_converter_path - or DetectorParamConstants.BEAM_XY_LUT_PATH - ) optional_args = {} if self.run_number: optional_args["run_number"] = self.run_number @@ -106,7 +102,7 @@ def detector_params(self): num_images_per_trigger=1, num_triggers=self.num_images, use_roi_mode=self.use_roi_mode, - det_dist_to_beam_converter_path=self.det_dist_to_beam_converter_path, + det_dist_to_beam_converter_path=DetectorParamConstants.BEAM_XY_LUT_PATH, trigger_mode=self.trigger_mode, **optional_args, ) diff --git a/src/mx_bluesky/common/parameters/rotation.py b/src/mx_bluesky/common/parameters/rotation.py index 371de4bfff..4819e1895b 100644 --- a/src/mx_bluesky/common/parameters/rotation.py +++ b/src/mx_bluesky/common/parameters/rotation.py @@ -68,10 +68,6 @@ class RotationExperiment(DiffractionExperiment): def _detector_params_impl( self, omega_start_deg: float, num_images_per_trigger: int, num_triggers: int ) -> DetectorParams: - self.det_dist_to_beam_converter_path = ( - self.det_dist_to_beam_converter_path - or DetectorParamConstants.BEAM_XY_LUT_PATH - ) optional_args = {} if self.run_number: optional_args["run_number"] = self.run_number @@ -89,7 +85,7 @@ def _detector_params_impl( num_images_per_trigger=num_images_per_trigger, num_triggers=num_triggers, use_roi_mode=False, - det_dist_to_beam_converter_path=self.det_dist_to_beam_converter_path, + det_dist_to_beam_converter_path=DetectorParamConstants.BEAM_XY_LUT_PATH, **optional_args, ) diff --git a/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py b/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py index baae38ce95..4a05956d71 100644 --- a/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +++ b/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py @@ -9,13 +9,13 @@ from dodal.common.types import UpdatingPathProvider from dodal.devices.fast_grid_scan import PandAGridScanParams from dodal.devices.smargon import Smargon +from dodal.plans.load_panda_yaml import load_panda_from_yaml from ophyd_async.fastcs.panda import ( HDFPanda, SeqTable, SeqTrigger, ) -from mx_bluesky.common.device_setup_plans.setup_panda import load_panda_from_yaml from mx_bluesky.common.parameters.constants import DeviceSettingsConstants from mx_bluesky.common.utils.log import LOGGER diff --git a/src/mx_bluesky/hyperion/parameters/constants.py b/src/mx_bluesky/hyperion/parameters/constants.py index db10e25409..ba2fb065c5 100644 --- a/src/mx_bluesky/hyperion/parameters/constants.py +++ b/src/mx_bluesky/hyperion/parameters/constants.py @@ -1,5 +1,3 @@ -import os - from dodal.devices.detector import EIGER2_X_16M_SIZE from pydantic.dataclasses import dataclass @@ -13,14 +11,10 @@ PlanNameConstants, ) -TEST_MODE = os.environ.get("HYPERION_TEST_MODE") - @dataclass(frozen=True) class I03Constants: - BEAMLINE = "BL03S" if TEST_MODE else "BL03I" DETECTOR = EIGER2_X_16M_SIZE - INSERTION_PREFIX = "SR03S" if TEST_MODE else "SR03I" OAV_CENTRING_FILE = OavConstants.OAV_CONFIG_JSON SHUTTER_TIME_S = 0.06 USE_GPU_RESULTS = True diff --git a/tests/test_data/hyperion_blueapi/test_load_centre_collect.json b/tests/test_data/hyperion_blueapi/test_load_centre_collect.json index 376eeace9f..1b8e4a497c 100644 --- a/tests/test_data/hyperion_blueapi/test_load_centre_collect.json +++ b/tests/test_data/hyperion_blueapi/test_load_centre_collect.json @@ -4,8 +4,6 @@ "parameters": { "parameter_model_version": "5.0.0", "beamline": "BL03S", - "det_dist_to_beam_converter_path": "tests/test_data/test_lookup_table.txt", - "insertion_prefix": "SR03S", "visit": "cm31105-4", "detector_distance_mm": 255, "sample_id": 12345, diff --git a/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json b/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json index f808b0fdde..8f280d8195 100644 --- a/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +++ b/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json @@ -1,13 +1,11 @@ { "parameter_model_version": "6.0.0", "beamline": "BL03S", - "insertion_prefix": "SR03S", "storage_directory": "/tmp", "file_name": "file_name", "run_number": 0, "sample_id": 123456, "use_roi_mode": false, - "det_dist_to_beam_converter_path": "tests/test_data/test_lookup_table.txt", "exposure_time_s": 0.1, "detector_distance_mm": 100.0, "omega_starts_deg": [ diff --git a/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json b/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json index 51c1db22b3..a052fb8a73 100644 --- a/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +++ b/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json @@ -1,8 +1,6 @@ { "parameter_model_version": "6.0.0", "beamline": "BL03S", - "det_dist_to_beam_converter_path": "tests/test_data/test_lookup_table.txt", - "insertion_prefix": "SR03S", "visit": "cm31105-4", "detector_distance_mm": 255, "sample_id": 12345, diff --git a/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json b/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json index 78358fb5fa..6bbade6af2 100644 --- a/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json +++ b/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json @@ -1,8 +1,6 @@ { "parameter_model_version": "6.0.0", "beamline": "BL03S", - "det_dist_to_beam_converter_path": "tests/test_data/test_lookup_table.txt", - "insertion_prefix": "SR03S", "visit": "cm31105-4", "detector_distance_mm": 255, "sample_id": 12345, diff --git a/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json b/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json index 03fffbd02d..f9c963e39c 100644 --- a/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +++ b/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json @@ -1,12 +1,10 @@ { "parameter_model_version": "6.0.0", "comment": "test", - "det_dist_to_beam_converter_path": "tests/test_data/test_lookup_table.txt", "storage_directory": "{tmp_data}/123456/", "detector_distance_mm": 100.0, "demand_energy_ev": 100, "exposure_time_s": 0.1, - "insertion_prefix": "SR03S", "file_name": "file_name", "run_number": 0, "shutter_opening_time_s": 0.6, diff --git a/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters.json b/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters.json index bc27cd1792..1e9432f4fd 100644 --- a/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters.json +++ b/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters.json @@ -1,12 +1,10 @@ { "parameter_model_version": "6.0.0", "comment": "test", - "det_dist_to_beam_converter_path": "tests/test_data/test_lookup_table.txt", "storage_directory": "{tmp_data}/123456/", "detector_distance_mm": 100.0, "demand_energy_ev": 100, "exposure_time_s": 0.1, - "insertion_prefix": "SR03S", "file_name": "file_name", "visit": "cm31105-4", "transmission_frac": 0.1, diff --git a/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters_nomove.json b/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters_nomove.json index 885d286763..2f5cd5cece 100644 --- a/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters_nomove.json +++ b/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters_nomove.json @@ -1,12 +1,10 @@ { "parameter_model_version": "6.0.0", "comment": "test", - "det_dist_to_beam_converter_path": "tests/test_data/test_lookup_table.txt", "storage_directory": "{tmp_data}/123456/", "detector_distance_mm": 100.0, "demand_energy_ev": 100, "exposure_time_s": 0.1, - "insertion_prefix": "SR03S", "file_name": "file_name", "rotation_increment_deg": 0.1, "run_number": 0, diff --git a/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json b/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json index 6a9b87e5a7..109feb7006 100644 --- a/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +++ b/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json @@ -1,13 +1,11 @@ { "parameter_model_version": "6.0.0", "beamline": "BL03S", - "insertion_prefix": "SR03S", "storage_directory": "/tmp", "file_name": "file_name", "run_number": 0, "sample_id": 123456, "use_roi_mode": false, - "det_dist_to_beam_converter_path": "tests/test_data/test_lookup_table.txt", "exposure_time_s": 0.1, "detector_distance_mm": 100.0, "omega_starts_deg": [ diff --git a/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json b/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json index 7f5e874691..61b2ce7911 100644 --- a/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +++ b/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json @@ -1,13 +1,11 @@ { "parameter_model_version": "6.0.0", "beamline": "BL03S", - "insertion_prefix": "SR03S", "storage_directory": "/tmp/", "visit": "cm31105-4", "file_name": "file_name", "run_number": 0, "use_roi_mode": false, - "det_dist_to_beam_converter_path": "tests/test_data/test_lookup_table.txt", "omega_starts_deg": [ 0, 90 diff --git a/tests/test_data/parameter_json_files/good_test_robot_load_params.json b/tests/test_data/parameter_json_files/good_test_robot_load_params.json index d189b97931..868bb92096 100644 --- a/tests/test_data/parameter_json_files/good_test_robot_load_params.json +++ b/tests/test_data/parameter_json_files/good_test_robot_load_params.json @@ -1,7 +1,6 @@ { "parameter_model_version": "6.0.0", "beamline": "BL03S", - "insertion_prefix": "SR03S", "snapshot_directory": "/tmp/", "storage_directory": "/tmp/", "visit": "cm31105-4", diff --git a/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json b/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json index a0a9c7c2c0..4484d6c47c 100644 --- a/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +++ b/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json @@ -1,12 +1,10 @@ { "parameter_model_version": "6.0.0", "comment": "test", - "det_dist_to_beam_converter_path": "tests/test_data/test_lookup_table.txt", "storage_directory": "{tmp_data}/123456/", "detector_distance_mm": 100.0, "demand_energy_ev": 100, "exposure_time_s": 0.1, - "insertion_prefix": "SR03S", "omega_starts_deg": [ 0, 90 diff --git a/tests/test_data/parameter_json_files/good_test_specified_three_d_grid_params.json b/tests/test_data/parameter_json_files/good_test_specified_three_d_grid_params.json index f0be3e0d06..1ef1288a0b 100644 --- a/tests/test_data/parameter_json_files/good_test_specified_three_d_grid_params.json +++ b/tests/test_data/parameter_json_files/good_test_specified_three_d_grid_params.json @@ -2,11 +2,9 @@ "parameter_model_version": "6.0.0", "demand_energy_ev": 100, "comment": "test", - "det_dist_to_beam_converter_path": "tests/test_data/test_lookup_table.txt", "detector_distance_mm": 100.0, "visit": "cm31105-4", "exposure_time_s": 0.1, - "insertion_prefix": "SR03S", "omega_starts_deg": [ 0, 90 diff --git a/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json b/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json index 72947b1788..4f140899bf 100644 --- a/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +++ b/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json @@ -1,13 +1,11 @@ { "parameter_model_version": "6.0.0", "beamline": "BL03S", - "insertion_prefix": "SR03S", "storage_directory": "{tmp_data}", "file_name": "file_name", "run_number": 0, "sample_id": 123456, "use_roi_mode": false, - "det_dist_to_beam_converter_path": "tests/test_data/test_lookup_table.txt", "exposure_time_s": 0.12, "detector_distance_mm": 100.0, "omega_starts_deg": [ diff --git a/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json b/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json index 6ffdd31edf..f06ae07695 100644 --- a/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +++ b/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json @@ -1,7 +1,6 @@ { "parameter_model_version": "6.0.0", "beamline": "BL03S", - "insertion_prefix": "SR03S", "demand_energy_ev": 100, "storage_directory": "{tmp_data}", "visit": "cm31105-4", @@ -10,7 +9,6 @@ "run_number": 0, "comment": "Descriptive comment.", "use_roi_mode": false, - "det_dist_to_beam_converter_path": "tests/test_data/test_lookup_table.txt", "transmission_frac": 1.0, "x_steps": 40, "y_steps": [ diff --git a/tests/unit_tests/common/device_setup_plans/test_setup_panda.py b/tests/unit_tests/common/device_setup_plans/test_setup_panda.py index da62f238cb..c6e11472f7 100644 --- a/tests/unit_tests/common/device_setup_plans/test_setup_panda.py +++ b/tests/unit_tests/common/device_setup_plans/test_setup_panda.py @@ -2,19 +2,18 @@ from bluesky.plan_stubs import null from bluesky.run_engine import RunEngine +from dodal.plans.load_panda_yaml import load_panda_from_yaml from ophyd_async.fastcs.panda import HDFPanda -from mx_bluesky.common.device_setup_plans.setup_panda import load_panda_from_yaml - def get_test_plan(*args): yield from null() return "retrieved_settings" -@patch("mx_bluesky.common.device_setup_plans.setup_panda.YamlSettingsProvider") -@patch("mx_bluesky.common.device_setup_plans.setup_panda.retrieve_settings") -@patch("mx_bluesky.common.device_setup_plans.setup_panda.apply_panda_settings") +@patch("dodal.plans.load_panda_yaml.YamlSettingsProvider") +@patch("dodal.plans.load_panda_yaml.retrieve_settings") +@patch("dodal.plans.load_panda_yaml.apply_panda_settings") def test_load_panda_from_yaml( mock_apply_panda_settings: MagicMock, mock_retrieve_settings: MagicMock, diff --git a/tests/unit_tests/conftest.py b/tests/unit_tests/conftest.py index b69810847d..7dee2858f1 100644 --- a/tests/unit_tests/conftest.py +++ b/tests/unit_tests/conftest.py @@ -205,6 +205,15 @@ def create_gridscan_callbacks() -> tuple[ ) +@pytest.fixture(autouse=True) +def mock_default_beam_xy_lut(): + with patch( + "mx_bluesky.common.parameters.constants.DetectorParamConstants.BEAM_XY_LUT_PATH", + "tests/test_data/test_lookup_table.txt", + ): + yield + + @pytest.fixture def use_beamline_t01(): """Beamline t01 is a beamline for unit tests that just contains a baton, so that diff --git a/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py b/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py index 01dca80075..09f19dc0ac 100644 --- a/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +++ b/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py @@ -278,9 +278,7 @@ def test_params_with_different_energy_for_rotation_gridscan_rejected(tmp_path): # WithVisit ["beamline", "i03"], ["visit", "cm12345"], - ["insertion_prefix", "SR03"], ["detector_distance_mm", 123], - ["det_dist_to_beam_converter_path", "/foo/bar"], ], ) def test_params_with_unexpected_info_in_robot_load_rejected( @@ -308,9 +306,7 @@ def test_params_with_unexpected_info_in_robot_load_rejected( # WithVisit ["beamline", "i03"], ["visit", "cm12345"], - ["insertion_prefix", "SR03"], ["detector_distance_mm", 123], - ["det_dist_to_beam_converter_path", "/foo/bar"], ], ) def test_params_with_unexpected_info_in_multi_rotation_scan_rejected( diff --git a/tests/unit_tests/hyperion/parameters/test_parameter_model.py b/tests/unit_tests/hyperion/parameters/test_parameter_model.py index 802f24b004..65cf2e2874 100644 --- a/tests/unit_tests/hyperion/parameters/test_parameter_model.py +++ b/tests/unit_tests/hyperion/parameters/test_parameter_model.py @@ -29,19 +29,15 @@ def always_use_beamline_i03(use_beamline_i03): ... @pytest.fixture def load_centre_collect_params_with_panda(tmp_path, request): - with patch( - "mx_bluesky.common.parameters.constants.GDA_DOMAIN_PROPERTIES_PATH", - new="tests/test_data/test_domain_properties_with_panda", - ): - params = raw_params_from_file( - "tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json", - tmp_path, - ) - params["features"]["use_panda_for_gridscan"] = True - if params_dict := getattr(request, "param", {}): - for k, v in params_dict.items(): - params.setdefault("features", {})[k] = v - return LoadCentreCollect(**params) + params = raw_params_from_file( + "tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json", + tmp_path, + ) + params["features"]["use_panda_for_gridscan"] = True + if params_dict := getattr(request, "param", {}): + for k, v in params_dict.items(): + params.setdefault("features", {})[k] = v + return LoadCentreCollect(**params) @pytest.fixture()