Skip to content

Commit a93c305

Browse files
Merge pull request #84 from DiamondLightSource/update_electron_analyser_tests_to_use_functions_from_dodal
Update electron analyser tests to use functions from dodal
2 parents 0342e67 + 33fc9a6 commit a93c305

File tree

3 files changed

+24
-53
lines changed

3 files changed

+24
-53
lines changed

tests/electron_analyser/conftest.py

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
1-
from typing import get_args, get_origin
2-
31
import pytest
42
from bluesky import RunEngine
5-
from dodal.devices.electron_analyser import ElectronAnalyserDetectorImpl
3+
from dodal.beamlines import b07, i09
4+
from dodal.devices.electron_analyser import ElectronAnalyserDetector
65
from dodal.devices.electron_analyser.specs import SpecsDetector
76
from dodal.devices.electron_analyser.vgscienta import VGScientaDetector
7+
from dodal.testing.electron_analyser import create_detector
88
from ophyd_async.core import SignalR, init_devices
99
from ophyd_async.sim import SimMotor
1010

11-
from tests.electron_analyser.util import TEST_SPECS_SEQUENCE, TEST_VGSCIENTA_SEQUENCE
11+
from tests.electron_analyser.util import (
12+
TEST_SPECS_SEQUENCE,
13+
TEST_VGSCIENTA_SEQUENCE,
14+
)
1215

1316

1417
@pytest.fixture
@@ -28,30 +31,28 @@ async def energy_sources(
2831
return {"source1": dcm_energy.user_readback, "source2": pgm_energy.user_readback}
2932

3033

31-
@pytest.fixture
34+
@pytest.fixture(
35+
params=[
36+
VGScientaDetector[i09.LensMode, i09.PsuMode, i09.PassEnergy],
37+
SpecsDetector[b07.LensMode, b07.PsuMode],
38+
]
39+
)
3240
async def sim_analyser(
33-
detector_class: type[ElectronAnalyserDetectorImpl],
41+
request: pytest.FixtureRequest,
3442
energy_sources: dict[str, SignalR[float]],
3543
RE: RunEngine,
36-
) -> ElectronAnalyserDetectorImpl:
37-
# ToDo - this needs to use what dodal uses once this is implemented
38-
# https://github.com/DiamondLightSource/dodal/issues/1396
39-
parameters = {
40-
"prefix": "TEST:",
41-
"lens_mode_type": get_args(detector_class)[0],
42-
"psu_mode_type": get_args(detector_class)[1],
43-
"energy_sources": energy_sources,
44-
}
45-
if get_origin(detector_class) is VGScientaDetector:
46-
parameters["pass_energy_type"] = get_args(detector_class)[2]
47-
48-
async with init_devices(mock=True, connect=True):
49-
sim_detector = detector_class(**parameters)
50-
return sim_detector
44+
) -> ElectronAnalyserDetector:
45+
with init_devices(mock=True):
46+
sim_analyser = await create_detector(
47+
request.param,
48+
prefix="TEST:",
49+
energy_sources=energy_sources,
50+
)
51+
return sim_analyser
5152

5253

5354
@pytest.fixture
54-
def sequence_file(sim_analyser: ElectronAnalyserDetectorImpl) -> str:
55+
def sequence_file(sim_analyser: ElectronAnalyserDetector) -> str:
5556
if isinstance(sim_analyser, VGScientaDetector):
5657
return TEST_VGSCIENTA_SEQUENCE
5758
elif isinstance(sim_analyser, SpecsDetector):

tests/electron_analyser/plan_stubs/test_analyser_per_step.py

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,19 @@
99
from bluesky import RunEngine
1010
from bluesky import plan_stubs as bps
1111
from bluesky.protocols import Movable, Readable, Triggerable
12-
from dodal.beamlines import b07, i09
1312
from dodal.devices.electron_analyser import (
1413
ElectronAnalyserDetector,
1514
ElectronAnalyserRegionDetector,
1615
GenericElectronAnalyserDetector,
1716
GenericElectronAnalyserRegionDetector,
1817
)
19-
from dodal.devices.electron_analyser.specs import SpecsDetector
20-
from dodal.devices.electron_analyser.vgscienta import VGScientaDetector
2118
from ophyd.status import Status
2219
from ophyd_async.sim import SimMotor
2320

2421
from sm_bluesky.electron_analyser.plan_stubs import analyser_per_step as aps
2522
from tests.electron_analyser.util import analyser_setup_for_scan
2623

2724

28-
@pytest.fixture(
29-
params=[
30-
VGScientaDetector[i09.LensMode, i09.PsuMode, i09.PassEnergy],
31-
SpecsDetector[b07.LensMode, b07.PsuMode],
32-
]
33-
)
34-
def detector_class(
35-
request: pytest.FixtureRequest,
36-
) -> type[ElectronAnalyserDetector]:
37-
return request.param
38-
39-
4025
@pytest.fixture
4126
def region_detectors(
4227
sim_analyser: ElectronAnalyserDetector, sequence_file: str

tests/electron_analyser/plans/test_analyser_scans.py

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
from collections.abc import Sequence
22

33
import pytest
4+
from bluesky import RunEngine
45
from bluesky.protocols import Readable
5-
from bluesky.run_engine import RunEngine
6-
from dodal.beamlines import b07, i09
76
from dodal.devices.electron_analyser import (
87
ElectronAnalyserDetector,
98
ElectronAnalyserRegionDetector,
109
GenericElectronAnalyserDetector,
1110
GenericElectronAnalyserRegionDetector,
1211
)
13-
from dodal.devices.electron_analyser.specs import SpecsDetector
14-
from dodal.devices.electron_analyser.vgscienta import VGScientaDetector
1512
from ophyd_async.sim import SimMotor
1613

1714
from sm_bluesky.electron_analyser.plans.analyser_scans import (
@@ -23,18 +20,6 @@
2320
from tests.electron_analyser.util import analyser_setup_for_scan
2421

2522

26-
@pytest.fixture(
27-
params=[
28-
VGScientaDetector[i09.LensMode, i09.PsuMode, i09.PassEnergy],
29-
SpecsDetector[b07.LensMode, b07.PsuMode],
30-
]
31-
)
32-
def detector_class(
33-
request: pytest.FixtureRequest,
34-
) -> type[ElectronAnalyserDetector]:
35-
return request.param
36-
37-
3823
@pytest.fixture(params=[0, 1, 2])
3924
def extra_detectors(
4025
request: pytest.FixtureRequest,

0 commit comments

Comments
 (0)