84 lines
2.0 KiB
Python
84 lines
2.0 KiB
Python
import pytest
|
|
|
|
from lib.logitech_receiver import common
|
|
|
|
|
|
def test_crc16():
|
|
value = b'123456789'
|
|
expected = 0x29B1
|
|
|
|
result = common.crc16(value)
|
|
|
|
assert result == expected
|
|
|
|
|
|
def test_named_int():
|
|
named_int = common.NamedInt(0x2, 'pulse')
|
|
|
|
assert named_int.name == 'pulse'
|
|
assert named_int == 2
|
|
|
|
|
|
def test_named_int_comparison():
|
|
default_value = 0
|
|
default_name = 'entry'
|
|
named_int = common.NamedInt(default_value, default_name)
|
|
|
|
named_int_equal = common.NamedInt(default_value, default_name)
|
|
named_int_unequal_name = common.NamedInt(default_value, 'unequal')
|
|
named_int_unequal_value = common.NamedInt(5, default_name)
|
|
named_int_unequal = common.NamedInt(2, 'unequal')
|
|
|
|
assert named_int == named_int_equal
|
|
assert named_int != named_int_unequal_name
|
|
assert named_int != named_int_unequal_value
|
|
assert named_int != named_int_unequal
|
|
|
|
|
|
@pytest.fixture
|
|
def named_ints():
|
|
return common.NamedInts(empty=0, critical=5, low=20, good=50, full=90)
|
|
|
|
|
|
def test_named_ints(named_ints):
|
|
assert named_ints.empty == 0
|
|
assert named_ints.empty.name == 'empty'
|
|
assert named_ints.critical == 5
|
|
assert named_ints.critical.name == 'critical'
|
|
assert named_ints.low == 20
|
|
assert named_ints.low.name == 'low'
|
|
assert named_ints.good == 50
|
|
assert named_ints.good.name == 'good'
|
|
assert named_ints.full == 90
|
|
assert named_ints.full.name == 'full'
|
|
|
|
assert len(named_ints) == 5
|
|
|
|
|
|
@pytest.mark.parametrize('bytes_input, expected_output', [
|
|
(b'\x01\x02\x03\x04', '01020304'),
|
|
(b'', ''),
|
|
])
|
|
def test_strhex(bytes_input, expected_output):
|
|
result = common.strhex(bytes_input)
|
|
|
|
assert result == expected_output
|
|
|
|
|
|
def test_bytest2int():
|
|
value = b'\x12\x34\x56\x78'
|
|
expected = 0x12345678
|
|
|
|
result = common.bytes2int(value)
|
|
|
|
assert result == expected
|
|
|
|
|
|
def test_int2bytes():
|
|
value = 0x12345678
|
|
expected = b'\x12\x34\x56\x78'
|
|
|
|
result = common.int2bytes(value)
|
|
|
|
assert result == expected
|