diff --git a/src/ophyd_async/core/async_status.py b/src/ophyd_async/core/async_status.py index 4ee0e4eb03..474dd1eb15 100644 --- a/src/ophyd_async/core/async_status.py +++ b/src/ophyd_async/core/async_status.py @@ -118,8 +118,10 @@ async def _notify_watchers_from(self, iterator: AsyncIterator[WatcherUpdate[T]]) async for update in iterator: if self._timeout and time.monotonic() > self._timeout: raise TimeoutError() - self._last_update = replace( - update, time_elapsed=time.monotonic() - self._start + self._last_update = ( + update + if update.time_elapsed is None + else replace(update, time_elapsed=time.monotonic() - self._start) ) for watcher in self._watchers: self._update_watcher(watcher, self._last_update) diff --git a/tests/core/test_device_collector.py b/tests/core/test_device_collector.py index a5461b30da..e0fac9b685 100644 --- a/tests/core/test_device_collector.py +++ b/tests/core/test_device_collector.py @@ -2,7 +2,8 @@ import pytest from bluesky import plan_stubs as bps -from bluesky.run_engine import RunEngine, TransitionError +from bluesky.run_engine import RunEngine +from super_state_machine.errors import TransitionError from ophyd_async.core import DEFAULT_TIMEOUT, Device, DeviceCollector, NotConnected from ophyd_async.epics.motion import motor @@ -96,7 +97,7 @@ async def set_up_device(): RE = RunEngine(call_returns_result=True, loop=loop) def my_plan(): - sim_motor.done_moving._backend._set_value(True) # type: ignore + sim_motor.motor_done_move._backend._set_value(True) # type: ignore yield from bps.mov(sim_motor, 3.14) RE(my_plan()) diff --git a/tests/epics/motion/test_motor.py b/tests/epics/motion/test_motor.py index 60e0f25eb1..b75adcd6ac 100644 --- a/tests/epics/motion/test_motor.py +++ b/tests/epics/motion/test_motor.py @@ -24,10 +24,10 @@ async def sim_motor(): AsyncStatus.wrap async def fake_stop(*args, **kwargs): - sim_motor.done_moving._backend._set_value(True) # type: ignore + sim_motor.motor_done_move._backend._set_value(True) # type: ignore await asyncio.sleep(0.01) - sim_motor.stop_.trigger = fake_stop # type: ignore + sim_motor.motor_stop.trigger = fake_stop # type: ignore assert sim_motor.name == "sim_motor" set_sim_value(sim_motor.motor_egu, "mm") set_sim_value(sim_motor.precision, 3)