diff --git a/tests/test_types.py b/tests/test_types.py index f2260adaf..faecb82fe 100644 --- a/tests/test_types.py +++ b/tests/test_types.py @@ -13,15 +13,27 @@ def test_int_too_short(): def test_single(): - v = t.Single(1.25) + value = 1.25 + extra = b'ab12!' + v = t.Single(value) ser = v.serialize() - assert t.Single.deserialize(ser) == (1.25, b'') + assert t.Single.deserialize(ser) == (value, b'') + assert t.Single.deserialize(ser + extra) == (value, extra) + + with pytest.raises(ValueError): + t.Double.deserialize(ser[1:]) def test_double(): - v = t.Double(1.25) + value = 1.25 + extra = b'ab12!' + v = t.Double(value) ser = v.serialize() - assert t.Double.deserialize(ser) == (1.25, b'') + assert t.Double.deserialize(ser) == (value, b'') + assert t.Double.deserialize(ser + extra) == (value, extra) + + with pytest.raises(ValueError): + t.Double.deserialize(ser[1:]) def test_lvbytes(): diff --git a/zigpy/types/basic.py b/zigpy/types/basic.py index e64358bdf..187e2cdf8 100644 --- a/zigpy/types/basic.py +++ b/zigpy/types/basic.py @@ -125,21 +125,22 @@ class bitmap64(uint64_t): # noqa: N801 class Single(float): + _fmt = '