1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
import pytest
from umodbus.route import DataRule
endpoint = lambda slave_id, function_code, address: 0
def test_basic_route():
rule = DataRule(endpoint, slave_ids=[1], function_codes=[1], addresses=[1])
assert rule.match(slave_id=1, function_code=1, address=1)
assert not rule.match(slave_id=0, function_code=1, address=1)
assert not rule.match(slave_id=1, function_code=0, address=1)
assert not rule.match(slave_id=1, function_code=1, address=0)
def test_other_iterables():
# Other iterable types should work, not just lists
rule = DataRule(endpoint,
slave_ids=set([1]), function_codes=[1], addresses=[1])
assert rule.match(slave_id=1, function_code=1, address=1)
def test_wildcard_slave_id():
rule = DataRule(endpoint, slave_ids=None, function_codes=[1], addresses=[1])
assert rule.match(slave_id=1, function_code=1, address=1)
def test_wildcard_function_code():
rule = DataRule(endpoint, slave_ids=[1], function_codes=None, addresses=[1])
assert rule.match(slave_id=1, function_code=1, address=1)
def test_wildcard_address():
rule = DataRule(endpoint, slave_ids=[1], function_codes=[1], addresses=None)
assert rule.match(slave_id=1, function_code=1, address=1)
|