示例#1
0
def test_validate_internal():
    """Test Internal messages."""
    versions = [('1.4', INTERNAL_FIXTURES_14), ('1.5', INTERNAL_FIXTURES_15),
                ('2.0', INTERNAL_FIXTURES_20)]
    for protocol_version, fixture in versions:
        gateway = get_gateway(protocol_version)
        const = get_const(protocol_version)
        for name, payload in fixture.items():
            if isinstance(payload, dict):
                _payload = payload.get('payload')
                return_value = payload.get('return')
            else:
                _payload = payload
                return_value = None
            sub_type = const.Internal[name]
            msg = Message('1;255;3;0;{};{}\n'.format(sub_type, _payload))
            valid = msg.validate(protocol_version)
            assert valid == {
                'node_id': 1,
                'child_id': 255,
                'type': 3,
                'ack': 0,
                'sub_type': sub_type,
                'payload': _payload
            }
            ret = gateway.logic('1;255;3;0;{};{}\n'.format(sub_type, _payload))
            if return_value is None:
                assert ret is None, 'Version: {} Message: {}'.format(
                    protocol_version, msg)
            else:
                assert ret, 'Version: {} Message: {}'.format(
                    protocol_version, msg)
示例#2
0
def test_validate_bad_pres(protocol_version, name, payload):
    """Test bad Presentation messages."""
    const = get_const(protocol_version)
    sub_type = const.Presentation[name]
    msg = get_message(f"1;0;0;0;{sub_type};{payload}\n")
    with pytest.raises(vol.Invalid):
        msg.validate(protocol_version)
示例#3
0
def test_validate_internal(protocol_version, name, payload):
    """Test Internal messages."""
    gateway = get_gateway(protocol_version=protocol_version)
    get_sensor(1, gateway)
    const = get_const(protocol_version)
    if isinstance(payload, dict):
        _payload = payload.get('payload')
        return_value = payload.get('return')
    else:
        _payload = payload
        return_value = None
    sub_type = const.Internal[name]
    msg = get_message('1;255;3;0;{};{}\n'.format(sub_type, _payload))
    valid = msg.validate(protocol_version)
    assert valid == {
        'node_id': 1,
        'child_id': 255,
        'type': 3,
        'ack': 0,
        'sub_type': sub_type,
        'payload': _payload
    }
    ret = gateway.logic('1;255;3;0;{};{}\n'.format(sub_type, _payload))
    if return_value is None:
        assert ret is None, 'Version: {} Message: {}'.format(
            protocol_version, msg)
    else:
        assert ret, 'Version: {} Message: {}'.format(protocol_version, msg)
示例#4
0
def test_validate_set(protocol_version, name, payload):
    """Test Set messages."""
    gateway = get_gateway(protocol_version=protocol_version)
    const = get_const(protocol_version)
    sub_type = const.SetReq[name]
    msg_string = f"1;0;1;0;{sub_type};{payload}\n"
    msg = get_message(msg_string)
    valid = msg.validate(protocol_version)
    assert str(valid) == str(msg)
    ret = gateway.logic(msg_string)
    assert ret is None
示例#5
0
def test_validate_bad_pres():
    """Test bad Presentation messages."""
    versions = [('1.4', PRES_BAD_FIXTURES_14), ('1.5', PRES_BAD_FIXTURES_15),
                ('2.0', PRES_BAD_FIXTURES_20)]
    for protocol_version, fixture in versions:
        const = get_const(protocol_version)
        for name, payload in fixture.items():
            sub_type = const.Presentation[name]
            msg = Message('1;0;0;0;{};{}\n'.format(sub_type, payload))
            with pytest.raises(vol.Invalid):
                msg.validate(protocol_version)
示例#6
0
def test_validate_pres(protocol_version, name, payload):
    """Test Presentation messages."""
    gateway = get_gateway(protocol_version=protocol_version)
    const = get_const(protocol_version)
    sub_type = const.Presentation[name]
    msg_string = "1;0;0;0;{};{}\n".format(sub_type, payload)
    msg = get_message(msg_string)
    valid = msg.validate(protocol_version)
    assert str(valid) == str(msg)
    ret = gateway.logic("1;0;0;0;{};{}\n".format(sub_type, payload))
    assert ret is None
示例#7
0
def test_validate_set(protocol_version, name, payload):
    """Test Set messages."""
    gateway = get_gateway(protocol_version=protocol_version)
    const = get_const(protocol_version)
    sub_type = const.SetReq[name]
    msg = get_message('1;0;1;0;{};{}\n'.format(sub_type, payload))
    valid = msg.validate(protocol_version)
    assert valid == {
        'node_id': 1,
        'child_id': 0,
        'type': 1,
        'ack': 0,
        'sub_type': sub_type,
        'payload': payload
    }
    ret = gateway.logic('1;0;1;0;{};{}\n'.format(sub_type, payload))
    assert ret is None
示例#8
0
def test_validate_internal():
    """Test Internal messages."""
    versions = [('1.4', INTERNAL_FIXTURES_14), ('1.5', INTERNAL_FIXTURES_15),
                ('2.0', INTERNAL_FIXTURES_20)]
    for protocol_version, fixture in versions:
        const = get_const(protocol_version)
        for name, payload in fixture.items():
            sub_type = const.Internal[name]
            msg = Message('1;255;3;0;{};{}\n'.format(sub_type, payload))
            valid = msg.validate(protocol_version)
            assert valid == {
                'node_id': 1,
                'child_id': 255,
                'type': 3,
                'ack': 0,
                'sub_type': sub_type,
                'payload': payload
            }
示例#9
0
def test_validate_set():
    """Test Set messages."""
    versions = [('1.4', SET_FIXTURES_14), ('1.5', SET_FIXTURES_15),
                ('2.0', SET_FIXTURES_20)]
    for protocol_version, fixture in versions:
        const = get_const(protocol_version)
        for name, payload in fixture.items():
            sub_type = const.SetReq[name]
            msg = Message('1;0;1;0;{};{}\n'.format(sub_type, payload))
            valid = msg.validate(protocol_version)
            assert valid == {
                'node_id': 1,
                'child_id': 0,
                'type': 1,
                'ack': 0,
                'sub_type': sub_type,
                'payload': payload
            }
示例#10
0
def test_validate_internal(protocol_version, name, payload):
    """Test Internal messages."""
    gateway = get_gateway(protocol_version=protocol_version)
    get_sensor(1, gateway)
    const = get_const(protocol_version)
    if isinstance(payload, dict):
        _payload = payload.get("payload")
        return_value = payload.get("return")
    else:
        _payload = payload
        return_value = None
    sub_type = const.Internal[name]
    msg_string = f"1;255;3;0;{sub_type};{_payload}\n"
    msg = get_message(msg_string)
    valid = msg.validate(protocol_version)
    assert str(valid) == str(msg)
    ret = gateway.logic(msg_string)
    if return_value is None:
        assert ret is None, f"Version: {protocol_version} Message: {msg}"
    else:
        assert ret, f"Version: {protocol_version} Message: {msg}"
示例#11
0
def test_validate_pres():
    """Test Presentation messages."""
    versions = [('1.4', PRES_FIXTURES_14), ('1.5', PRES_FIXTURES_15),
                ('2.0', PRES_FIXTURES_20)]
    for protocol_version, fixture in versions:
        gateway = get_gateway(protocol_version)
        const = get_const(protocol_version)
        for name, payload in fixture.items():
            sub_type = const.Presentation[name]
            msg = Message('1;0;0;0;{};{}\n'.format(sub_type, payload))
            valid = msg.validate(protocol_version)
            assert valid == {
                'node_id': 1,
                'child_id': 0,
                'type': 0,
                'ack': 0,
                'sub_type': sub_type,
                'payload': payload
            }
            ret = gateway.logic('1;0;0;0;{};{}\n'.format(sub_type, payload))
            assert ret is None