From 6c01c52be570ddafee0fd22f26fb8d88bc3d9829 Mon Sep 17 00:00:00 2001
From: Robert Tuck <robert.tuck@diamond.ac.uk>
Date: Mon, 13 Jan 2025 11:44:32 +0000
Subject: [PATCH 1/5] Convert s4_slit_gaps to device_factory

---
 src/mx_bluesky/hyperion/utils/validation.py | 2 ++
 tests/conftest.py                           | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/mx_bluesky/hyperion/utils/validation.py b/src/mx_bluesky/hyperion/utils/validation.py
index e371e3b43..311803700 100644
--- a/src/mx_bluesky/hyperion/utils/validation.py
+++ b/src/mx_bluesky/hyperion/utils/validation.py
@@ -8,7 +8,9 @@
 import bluesky.preprocessors as bpp
 from bluesky.run_engine import RunEngine
 from dodal.beamlines import i03
+from dodal.common.beamlines.beamline_utils import device_instantiation
 from dodal.devices.oav.oav_parameters import OAVConfig
+from dodal.devices.s4_slit_gaps import S4SlitGaps
 from ophyd_async.testing import set_mock_value
 
 from mx_bluesky.hyperion.device_setup_plans.read_hardware_for_setup import (
diff --git a/tests/conftest.py b/tests/conftest.py
index 77ca9fa10..da035f6ed 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -24,7 +24,7 @@
 from dodal.common.beamlines.beamline_parameters import (
     GDABeamlineParameters,
 )
-from dodal.common.beamlines.beamline_utils import clear_devices
+from dodal.common.beamlines.beamline_utils import clear_devices, device_instantiation
 from dodal.devices.aperturescatterguard import (
     AperturePosition,
     ApertureScatterguard,
@@ -817,6 +817,7 @@ async def fake_fgs_composite(
     dcm,
     panda,
     backlight,
+    s4_slit_gaps,
 ):
     fake_composite = FlyScanXRayCentreComposite(
         aperture_scatterguard=aperture_scatterguard,

From c9dedd8e1db4412c22e8b167108bc502d04b9297 Mon Sep 17 00:00:00 2001
From: Robert Tuck <robert.tuck@diamond.ac.uk>
Date: Mon, 13 Jan 2025 13:13:32 +0000
Subject: [PATCH 2/5] Fix s4_slit_gaps

---
 src/mx_bluesky/hyperion/utils/validation.py | 2 --
 tests/conftest.py                           | 4 ++--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/mx_bluesky/hyperion/utils/validation.py b/src/mx_bluesky/hyperion/utils/validation.py
index 311803700..e371e3b43 100644
--- a/src/mx_bluesky/hyperion/utils/validation.py
+++ b/src/mx_bluesky/hyperion/utils/validation.py
@@ -8,9 +8,7 @@
 import bluesky.preprocessors as bpp
 from bluesky.run_engine import RunEngine
 from dodal.beamlines import i03
-from dodal.common.beamlines.beamline_utils import device_instantiation
 from dodal.devices.oav.oav_parameters import OAVConfig
-from dodal.devices.s4_slit_gaps import S4SlitGaps
 from ophyd_async.testing import set_mock_value
 
 from mx_bluesky.hyperion.device_setup_plans.read_hardware_for_setup import (
diff --git a/tests/conftest.py b/tests/conftest.py
index da035f6ed..8ae7767eb 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -24,7 +24,7 @@
 from dodal.common.beamlines.beamline_parameters import (
     GDABeamlineParameters,
 )
-from dodal.common.beamlines.beamline_utils import clear_devices, device_instantiation
+from dodal.common.beamlines.beamline_utils import clear_devices
 from dodal.devices.aperturescatterguard import (
     AperturePosition,
     ApertureScatterguard,
@@ -382,7 +382,7 @@ def undulator():
 
 
 @pytest.fixture
-def s4_slit_gaps():
+def s4_slit_gaps() -> S4SlitGaps:
     return i03.s4_slit_gaps(connect_immediately=True, mock=True)
 
 

From 299cfd95a4a5d3b130f71287c58cbbb6a4e09543 Mon Sep 17 00:00:00 2001
From: Robert Tuck <robert.tuck@diamond.ac.uk>
Date: Mon, 13 Jan 2025 12:21:54 +0000
Subject: [PATCH 3/5] Convert eiger to device_factory

---
 src/mx_bluesky/hyperion/utils/validation.py                   | 2 +-
 tests/conftest.py                                             | 4 ++--
 .../hyperion/experiment_plans/test_plan_system.py             | 2 +-
 .../common/device_setup_plans/test_read_hardware_for_setup.py | 2 +-
 tests/unit_tests/common/plan_stubs/test_do_fgs.py             | 2 +-
 tests/unit_tests/hyperion/device_setup_plans/test_utils.py    | 2 +-
 6 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/mx_bluesky/hyperion/utils/validation.py b/src/mx_bluesky/hyperion/utils/validation.py
index e371e3b43..1f2227a99 100644
--- a/src/mx_bluesky/hyperion/utils/validation.py
+++ b/src/mx_bluesky/hyperion/utils/validation.py
@@ -80,7 +80,7 @@ def plan():
 
 def fake_create_rotation_devices():
     beamstop = i03.beamstop(connect_immediately=True, mock=True)
-    eiger = i03.eiger(fake_with_ophyd_sim=True)
+    eiger = i03.eiger(connect_immediately=True, mock=True)
     smargon = i03.smargon(connect_immediately=True, mock=True)
     zebra = i03.zebra(connect_immediately=True, mock=True)
     detector_motion = i03.detector_motion(connect_immediately=True, mock=True)
diff --git a/tests/conftest.py b/tests/conftest.py
index 8ae7767eb..b67668501 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -306,7 +306,7 @@ def done_status():
 
 @pytest.fixture
 def eiger(done_status):
-    eiger = i03.eiger(fake_with_ophyd_sim=True)
+    eiger = i03.eiger(connect_immediately=True, mock=True)
     eiger.stage = MagicMock(return_value=done_status)
     eiger.do_arm.set = MagicMock(return_value=done_status)
     eiger.unstage = MagicMock(return_value=done_status)
@@ -825,7 +825,7 @@ async def fake_fgs_composite(
         backlight=backlight,
         dcm=dcm,
         # We don't use the eiger fixture here because .unstage() is used in some tests
-        eiger=i03.eiger(fake_with_ophyd_sim=True),
+        eiger=i03.eiger(connect_immediately=True, mock=True),
         zebra_fast_grid_scan=i03.zebra_fast_grid_scan(
             connect_immediately=True, mock=True
         ),
diff --git a/tests/system_tests/hyperion/experiment_plans/test_plan_system.py b/tests/system_tests/hyperion/experiment_plans/test_plan_system.py
index fcf50778a..238eb0952 100644
--- a/tests/system_tests/hyperion/experiment_plans/test_plan_system.py
+++ b/tests/system_tests/hyperion/experiment_plans/test_plan_system.py
@@ -41,7 +41,7 @@ async def test_getting_data_for_ispyb():
         tolerances=AperturePosition.tolerances_from_gda_params(params),
     )
     smargon = i03.smargon(connect_immediately=True, mock=True)
-    eiger = i03.eiger(fake_with_ophyd_sim=True)
+    eiger = i03.eiger(mock=True)
     await undulator.connect()
     await slit_gaps.connect()
     await flux.connect()
diff --git a/tests/unit_tests/common/device_setup_plans/test_read_hardware_for_setup.py b/tests/unit_tests/common/device_setup_plans/test_read_hardware_for_setup.py
index 14d3ac22a..ddfa44020 100644
--- a/tests/unit_tests/common/device_setup_plans/test_read_hardware_for_setup.py
+++ b/tests/unit_tests/common/device_setup_plans/test_read_hardware_for_setup.py
@@ -12,7 +12,7 @@
 
 @pytest.fixture
 def fake_eiger() -> EigerDetector:
-    return eiger(fake_with_ophyd_sim=True)
+    return eiger(mock=True)
 
 
 def test_read_hardware_for_zocalo_in_RE(fake_eiger, RE: RunEngine):
diff --git a/tests/unit_tests/common/plan_stubs/test_do_fgs.py b/tests/unit_tests/common/plan_stubs/test_do_fgs.py
index 58c639bcd..eb23c66bd 100644
--- a/tests/unit_tests/common/plan_stubs/test_do_fgs.py
+++ b/tests/unit_tests/common/plan_stubs/test_do_fgs.py
@@ -29,7 +29,7 @@ def fgs_devices(RE):
         grid_scan_device = ZebraFastGridScan("zebra_fgs")
 
     # Eiger done separately as not ophyd-async yet
-    detector = eiger(fake_with_ophyd_sim=True)
+    detector = eiger(mock=True)
 
     return {
         "synchrotron": synchrotron,
diff --git a/tests/unit_tests/hyperion/device_setup_plans/test_utils.py b/tests/unit_tests/hyperion/device_setup_plans/test_utils.py
index d92cea39a..3ea80fb02 100644
--- a/tests/unit_tests/hyperion/device_setup_plans/test_utils.py
+++ b/tests/unit_tests/hyperion/device_setup_plans/test_utils.py
@@ -14,7 +14,7 @@
 
 @pytest.fixture()
 def mock_eiger():
-    eiger = i03.eiger(fake_with_ophyd_sim=True)
+    eiger = i03.eiger(mock=True)
     eiger.detector_params = MagicMock()
     eiger.async_stage = MagicMock()
     eiger.disarm_detector = MagicMock()

From 5e9388e37848442daafa9dcbdb4fe3c34270f3dc Mon Sep 17 00:00:00 2001
From: Robert Tuck <robert.tuck@diamond.ac.uk>
Date: Mon, 13 Jan 2025 12:30:54 +0000
Subject: [PATCH 4/5] Convert flux to device_factory

---
 tests/conftest.py                                               | 2 +-
 tests/system_tests/hyperion/experiment_plans/test_fgs_plan.py   | 2 +-
 .../system_tests/hyperion/experiment_plans/test_plan_system.py  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/conftest.py b/tests/conftest.py
index b67668501..9d382e197 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -830,7 +830,7 @@ async def fake_fgs_composite(
             connect_immediately=True, mock=True
         ),
         flux=i03.flux(connect_immediately=True, mock=True),
-        s4_slit_gaps=i03.s4_slit_gaps(connect_immediately=True, mock=True),
+        s4_slit_gaps=s4_slit_gaps,
         smargon=smargon,
         undulator=i03.undulator(connect_immediately=True, mock=True),
         synchrotron=synchrotron,
diff --git a/tests/system_tests/hyperion/experiment_plans/test_fgs_plan.py b/tests/system_tests/hyperion/experiment_plans/test_fgs_plan.py
index 1b3300243..43a770170 100644
--- a/tests/system_tests/hyperion/experiment_plans/test_fgs_plan.py
+++ b/tests/system_tests/hyperion/experiment_plans/test_fgs_plan.py
@@ -83,7 +83,7 @@ async def fxc_composite():
         dcm=i03.dcm(fake_with_ophyd_sim=True),
         eiger=i03.eiger(),
         zebra_fast_grid_scan=i03.zebra_fast_grid_scan(),
-        flux=i03.flux(fake_with_ophyd_sim=True),
+        flux=i03.flux(connect_immediately=True, mock=True),
         robot=i03.robot(connect_immediately=True, mock=True),
         panda=i03.panda(connect_immediately=True, mock=True),
         panda_fast_grid_scan=i03.panda_fast_grid_scan(
diff --git a/tests/system_tests/hyperion/experiment_plans/test_plan_system.py b/tests/system_tests/hyperion/experiment_plans/test_plan_system.py
index 238eb0952..dbac727ff 100644
--- a/tests/system_tests/hyperion/experiment_plans/test_plan_system.py
+++ b/tests/system_tests/hyperion/experiment_plans/test_plan_system.py
@@ -32,7 +32,7 @@ async def test_getting_data_for_ispyb():
     synchrotron = i03.synchrotron(connect_immediately=True, mock=True)
     slit_gaps = S4SlitGaps(f"{CONST.SIM.BEAMLINE}-AL-SLITS-04:", name="slits")
     attenuator = i03.attenuator(connect_immediately=True, mock=True)
-    flux = i03.flux(fake_with_ophyd_sim=True)
+    flux = i03.flux(connect_immediately=True, mock=True)
     dcm = i03.dcm(fake_with_ophyd_sim=True)
     aperture_scatterguard = ApertureScatterguard(
         prefix="BL03S",

From bf4f18097bb8e82031e2b07047cdc39036f76796 Mon Sep 17 00:00:00 2001
From: Robert Tuck <robert.tuck@diamond.ac.uk>
Date: Wed, 29 Jan 2025 16:34:36 +0000
Subject: [PATCH 5/5] Pin dodal

---
 pyproject.toml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pyproject.toml b/pyproject.toml
index b49aab8ea..1529801a7 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -46,7 +46,7 @@ dependencies = [
     "ophyd == 1.9.0",
     "ophyd-async >= 0.8a5",
     "bluesky >= 1.13",
-    "dls-dodal @ git+https://github.com/DiamondLightSource/dodal.git@ae57c22eb170ef92ea9364541b63da30f6fbd52e",
+    "dls-dodal @ git+https://github.com/DiamondLightSource/dodal.git@709df016424e3a6776f839cc58993651c5c678ab",
 ]