Skip to content

Commit

Permalink
[fix] handle int in headers fixes #209
Browse files Browse the repository at this point in the history
  • Loading branch information
mosquito committed Apr 3, 2019
1 parent bea0065 commit 2cf7ff1
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
4 changes: 3 additions & 1 deletion aio_pika/message.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,8 @@ def __getitem__(self, k):
return self._cache[k]

def __setitem__(self, key, value):
self._headers[key] = str(value).encode()
self._headers[key] = format_headers(value)
self._cache.pop(key, None)

def __len__(self) -> int:
return len(self._headers)
Expand All @@ -183,6 +184,7 @@ def header_converter(value: Any) -> bytes:
@header_converter.register(datetime)
@header_converter.register(NoneType)
@header_converter.register(list)
@header_converter.register(int)
def _(v: bytes):
return v

Expand Down
17 changes: 17 additions & 0 deletions tests/test_amqp.py
Original file line number Diff line number Diff line change
Expand Up @@ -1499,3 +1499,20 @@ def test_message_info(self):
)

self.assertDictEqual(info, msg.info())

def test_headers_content(self):
data = (
[42, 42, 42],
['foo', b'foo', 'foo'],
[b'\00', b'\00', '\00'],
)

for src, raw, value in data:
msg = Message(b'', headers={'value': src})
self.assertEqual(
msg.headers_raw['value'], raw, "%r != %r" % (src, raw)
)

self.assertEqual(
msg.headers['value'], value, "%r != %r" % (src, value)
)

0 comments on commit 2cf7ff1

Please sign in to comment.