diff options
-rw-r--r-- | amqp/serialization.py | 3 | ||||
-rw-r--r-- | t/unit/test_serialization.py | 7 |
2 files changed, 8 insertions, 2 deletions
diff --git a/amqp/serialization.py b/amqp/serialization.py index 183ae2e..758a3c0 100644 --- a/amqp/serialization.py +++ b/amqp/serialization.py @@ -172,11 +172,10 @@ def loads(format, buf, offset=0, if not bitcount: bits = ord(buf[offset:offset + 1]) offset += 1 - bitcount = 8 + bitcount = 8 val = (bits & 1) == 1 bits >>= 1 bitcount -= 1 - elif p == 'o': bitcount = bits = 0 val, = unpack_from('>B', buf, offset) diff --git a/t/unit/test_serialization.py b/t/unit/test_serialization.py index 3891090..b4165ae 100644 --- a/t/unit/test_serialization.py +++ b/t/unit/test_serialization.py @@ -105,6 +105,13 @@ class test_serialization: actual, _ = loads('BssbbbbbF', buf) assert actual == expected + def test_sixteen_bitflags(self): + expected = [True, False] * 8 + format = 'b' * len(expected) + buf = dumps(format, expected) + actual, _ = loads(format, buf) + assert actual == expected + class test_GenericContent: |