Пример #1
0
def test_revert_device_should_raise_lock_error_on_non_matching_requester():
    with pytest.raises(LockError):
        device_state = {
            "foo/bar": DeviceState("requester-id-1", "task-id-1", "anytime")
        }
        requester_id = "request-id-1"
        topic = "foo/bar"

        with get_actuator_agent(vip_message_peer="wrong-requester", device_state=device_state) \
                as actuator_agent:
            actuator_agent.revert_device(requester_id, topic)
Пример #2
0
def test_set_multiple_points_should_raise_lock_error_on_non_matching_requester(
):
    with pytest.raises(LockError):
        requester_id = "wrong-requester"
        topic_values = [("foo/bar", "roma_value")]
        device_state = {
            "foo": DeviceState("requester-id-1", "task-id-1", "anytime")
        }

        with get_actuator_agent(vip_message_peer=requester_id, device_state=device_state) \
                as actuator_agent:
            actuator_agent.set_multiple_points("request-id-1", topic_values)
def test_handle_revert_device_should_succeed():
    device_state = {
        "somedevicepath": DeviceState("sender-1", "task-id-1", "anytime")
    }

    with get_actuator_agent(device_state=device_state,
                            vip_rpc_call_res=MockedAsyncResult({"foo": "bar"})) as actuator_agent:
        actuator_agent.handle_revert_device(
            PEER, SENDER, BUS, REVERT_DEVICE_TOPIC, HEADERS, MESSAGE
        )

        actuator_agent.vip.rpc.call.assert_called_once()
        actuator_agent.vip.pubsub.publish.assert_called_once()
        actuator_agent.vip.rpc.call.assert_not_called()
        actuator_agent.vip.pubsub.publish.assert_called_once()
        assert (
            caplog.records[-1].message
            == "Actuator Agent Error: {'type': 'AttributeError', "
            "'value': \"'ActuatorAgent' object has no attribute 'driver_vip_identity'\"}"
        )


@pytest.mark.parametrize(
    "sender, device_state",
    [
        (
            SENDER,
            {"somepath": DeviceState("sender-1", "task-id-1", "anytime")},
        ),
        (
            "pubsub.compat",
            {"somepath": DeviceState("pubsub.compat", "task-id-1", "anytime")},
        ),
    ],
)
def test_handle_set_should_succeed(sender, device_state):
    with get_actuator_agent(vip_rpc_call_res=MockedAsyncResult({"foo": "bar"}), device_state=device_state) as actuator_agent:

        actuator_agent.handle_set(PEER, sender, BUS, SET_TOPIC, HEADERS, MESSAGE)

        actuator_agent.vip.rpc.call.assert_called_once()
        actuator_agent.vip.pubsub.publish.assert_called()
Пример #5
0
    with get_actuator_agent(
            vip_rpc_call_res=MockedAsyncResult(10.0)) as actuator_agent:
        result = actuator_agent.get_point(topic, point=point)

        actuator_agent.vip.rpc.call.assert_called_once()
        assert result is not None


@pytest.mark.actuator_unit
@pytest.mark.parametrize(
    "point, device_state",
    [
        (
            42,
            {
                "foo/bar": DeviceState("requester-id-1", "task-id-1",
                                       "anytime")
            },
        ),
        (None, {
            "foo": DeviceState("requester-id-1", "task-id-1", "anytime")
        }),
    ],
)
def test_set_point_should_succeed(point, device_state):
    requester_id = "requester-id-1"
    topic = "foo/bar"
    value = "some value"

    with get_actuator_agent(vip_message_peer=requester_id, device_state=device_state) as \
            actuator_agent:
        result = actuator_agent.set_point(requester_id,