diff --git a/src/tests/sunsynk/test_helpers.py b/src/tests/sunsynk/test_helpers.py index 7eac583f..6f4591d8 100644 --- a/src/tests/sunsynk/test_helpers.py +++ b/src/tests/sunsynk/test_helpers.py @@ -1,5 +1,7 @@ """Test helpers.""" +import struct + import pytest from sunsynk.helpers import ( @@ -119,6 +121,12 @@ def test_pack_unpack() -> None: assert unpack_value(pack_value(val, bits=16, signed=True), signed=True) == val assert unpack_value(pack_value(val, bits=32, signed=True), signed=True) == val + # Test error cases + with pytest.raises(struct.error): + pack_value(-1, bits=16, signed=False) + with pytest.raises(ValueError): + pack_value(1, bits=8) # Invalid bit length + def test_patch_bitmask() -> None: """Test patch_bitmask function.""" diff --git a/src/tests/sunsynk/test_rwsensors.py b/src/tests/sunsynk/test_rwsensors.py index de303f10..720added 100644 --- a/src/tests/sunsynk/test_rwsensors.py +++ b/src/tests/sunsynk/test_rwsensors.py @@ -94,6 +94,7 @@ def test_number_rw(state: InverterState) -> None: # writing negative values (when allowed by min) s.min = -10 + s.factor = -1 # indicate signed values assert s.value_to_reg(-1, state.get) == (65535,) s = NumberRWSensor(1, "s2", factor=0.01)