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
 |