|
6 | 6 |
|
7 | 7 | import bluesky.plan_stubs as bps |
8 | 8 | import bluesky.plans as bp |
| 9 | +import ophyd_async |
9 | 10 | import pytest |
10 | 11 | from ophyd_async.testing import get_mock_put, set_mock_value |
11 | 12 |
|
@@ -349,13 +350,31 @@ def test_block_reprs(): |
349 | 350 | assert repr(BlockMot(block_name="qux", prefix="")) == "BlockMot(name=qux)" |
350 | 351 |
|
351 | 352 |
|
352 | | -async def test_block_mot_set(mot_block): |
| 353 | +async def test_block_mot_set_within_limits(mot_block): |
353 | 354 | set_mock_value(mot_block.user_setpoint, 10) |
354 | 355 | set_mock_value(mot_block.velocity, 10) |
| 356 | + set_mock_value(mot_block.high_limit_travel, 1000) |
| 357 | + set_mock_value(mot_block.low_limit_travel, -1000) |
355 | 358 | await mot_block.set(20) |
356 | 359 | get_mock_put(mot_block.user_setpoint).assert_called_once_with(20, wait=True) |
357 | 360 |
|
358 | 361 |
|
| 362 | +@pytest.mark.skipif( |
| 363 | + ophyd_async._version.version_tuple < (0, 13, 2), |
| 364 | + reason="Exception only raised in ophyd_async >= 0.13.2", |
| 365 | +) |
| 366 | +async def test_block_mot_set_outside_limits(mot_block): |
| 367 | + # Local import as API not available in older ophyd_async versions |
| 368 | + from ophyd_async.epics.motor import MotorLimitsException # noqa PLC0415 |
| 369 | + |
| 370 | + set_mock_value(mot_block.user_setpoint, 10) |
| 371 | + set_mock_value(mot_block.velocity, 10) |
| 372 | + set_mock_value(mot_block.high_limit_travel, 15) |
| 373 | + set_mock_value(mot_block.low_limit_travel, 5) |
| 374 | + with pytest.raises(MotorLimitsException): |
| 375 | + await mot_block.set(20) |
| 376 | + |
| 377 | + |
359 | 378 | @pytest.mark.parametrize("timeout_is_error", [True, False]) |
360 | 379 | async def test_block_failing_write(timeout_is_error): |
361 | 380 | block = await _block_with_write_config(BlockWriteConfig(timeout_is_error=timeout_is_error)) |
|
0 commit comments