Ejemplo n.º 1
0
def test_declare_qos_parameters_with_overrides():
    node = Node('my_node',
                parameter_overrides=[
                    Parameter('qos_overrides./my_topic.publisher.depth',
                              value=100),
                    Parameter('qos_overrides./my_topic.publisher.reliability',
                              value='best_effort'),
                ])
    for i in range(
            2
    ):  # try twice, the second time the parameters will be get and not declared
        _declare_qos_parameters(Publisher, node, '/my_topic',
                                QoSProfile(depth=10),
                                QoSOverridingOptions.with_default_policies())
        qos_overrides = node.get_parameters_by_prefix('qos_overrides')
        assert len(qos_overrides) == 3
        expected_params = (
            ('/my_topic.publisher.depth', 100),
            ('/my_topic.publisher.history', 'keep_last'),
            ('/my_topic.publisher.reliability', 'best_effort'),
        )
        for actual, expected in zip(
                sorted(qos_overrides.items(), key=lambda x: x[0]),
                expected_params):
            assert actual[0] == expected[0]  # same param name
            assert actual[1].value == expected[1]  # same param value
Ejemplo n.º 2
0
def test_declare_qos_parameters():
    node = Node('my_node')
    _declare_qos_parameters(Publisher, node, '/my_topic', QoSProfile(depth=10),
                            QoSOverridingOptions.with_default_policies())
    qos_overrides = node.get_parameters_by_prefix('qos_overrides')
    assert len(qos_overrides) == 3
    expected_params = (
        ('/my_topic.publisher.depth', 10),
        ('/my_topic.publisher.history', 'keep_last'),
        ('/my_topic.publisher.reliability', 'reliable'),
    )
    for actual, expected in zip(
            sorted(qos_overrides.items(), key=lambda x: x[0]),
            expected_params):
        assert actual[0] == expected[0]  # same param name
        assert actual[1].value == expected[1]  # same param value
Ejemplo n.º 3
0
def test_declare_qos_parameters_with_happy_callback():
    def qos_validation_callback(qos):
        result = QosCallbackResult()
        result.successful = True
        return result

    node = Node('my_node')
    _declare_qos_parameters(
        Publisher, node, '/my_topic', QoSProfile(depth=10),
        QoSOverridingOptions.with_default_policies(
            callback=qos_validation_callback))
    qos_overrides = node.get_parameters_by_prefix('qos_overrides')
    assert len(qos_overrides) == 3
    expected_params = (
        ('/my_topic.publisher.depth', 10),
        ('/my_topic.publisher.history', 'keep_last'),
        ('/my_topic.publisher.reliability', 'reliable'),
    )
    for actual, expected in zip(
            sorted(qos_overrides.items(), key=lambda x: x[0]),
            expected_params):
        assert actual[0] == expected[0]  # same param name
        assert actual[1].value == expected[1]  # same param value