test: fixed npoint tests after axis refactoring

This commit is contained in:
2024-10-02 18:11:51 +02:00
parent 15bdbe2e03
commit 59db1c067b
+34 -8
View File
@@ -19,9 +19,16 @@ def controller():
@pytest.fixture
def npointx(controller):
npointx = NPointAxis(controller, 0, "nx")
def npointx():
controller = mock.MagicMock()
npointx = NPointAxis(
axis_Id="A", name="npointx", host="localhost", port=1234, socket_cls=controller
)
npointx.controller.on()
npointx.controller.sock.reset_mock()
npointx.controller.sock.receive.reset_mock()
yield npointx
npointx.controller.off()
@pytest.mark.parametrize(
@@ -33,10 +40,27 @@ def npointx(controller):
],
)
def test_axis_put(npointx, pos, msg):
npointx.set(pos)
npointx.controller._set_target_pos(npointx.axis_Id_numeric, pos)
npointx.controller.sock.put.assert_called_with(msg)
def test_npoint_axis_move(npointx):
"""
Test that the move method sends the correct messages to the controller.
It should send the set target position, followed by 2 get current position messages.
"""
npointx.controller.sock.receive.side_effect = [
b"\xa0\x34\x13\x83\x11\x00\x00\x00\x00U", # pos 0
b"\xa0\x34\x13\x83\x11\xcd\xcc\x00\x00U", # pos 5
]
npointx.move(5)
assert (
mock.call(b"\xa2\x18\x12\x83\x11\xcd\xcc\x00\x00U")
in npointx.controller.sock.put.mock_calls
)
assert len(npointx.controller.sock.put.mock_calls) == 3
@pytest.mark.parametrize(
"pos, msg_in, msg_out",
[
@@ -46,8 +70,8 @@ def test_axis_put(npointx, pos, msg):
],
)
def test_axis_get_out(npointx, pos, msg_in, msg_out):
npointx.controller.sock.receive.return_value = msg_out
assert pytest.approx(npointx.get(), rel=0.01) == pos
npointx.controller.sock.receive.side_effect = [msg_out]
assert pytest.approx(npointx.readback.get(), rel=0.01) == pos
@pytest.mark.parametrize(
@@ -59,14 +83,16 @@ def test_axis_get_out(npointx, pos, msg_in, msg_out):
],
)
def test_axis_get_in(npointx, axis, msg_in, msg_out):
npointx.controller.sock.receive.return_value = msg_out
npointx.controller.sock.receive.side_effect = [msg_out]
npointx.controller._get_current_pos(axis)
npointx.controller.sock.put.assert_called_once_with(msg_in)
def test_axis_out_of_range(controller):
with pytest.raises(ValueError):
npointx = NPointAxis(controller, 3, "nx")
npointx = NPointAxis(
axis_Id="G", name="npointx", host="localhost", port=1234, socket_cls=mock.MagicMock()
)
def test_get_axis_out_of_range(controller):
@@ -105,7 +131,7 @@ def test_hex_list_to_int(in_buffer, byteorder, signed, val):
],
)
def test_get_range(npointx, axis, msg_in, msg_out):
npointx.controller.sock.receive.return_value = msg_out
npointx.controller.sock.receive.side_effect = [msg_out]
val = npointx.controller._get_range(axis)
npointx.controller.sock.put.assert_called_once_with(msg_in)
assert val == 100