From 6c5ccd4ee71158861c08c677f8e3c334125d7d2b Mon Sep 17 00:00:00 2001 From: "Rafael H. Schloming" Date: Fri, 6 Mar 2009 16:23:14 +0000 Subject: added support for encoding buffers git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@750960 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/python/qpid/codec010.py | 6 ++++++ qpid/python/qpid/spec010.py | 1 + qpid/python/tests/codec010.py | 5 +++++ 3 files changed, 12 insertions(+) (limited to 'qpid/python') diff --git a/qpid/python/qpid/codec010.py b/qpid/python/qpid/codec010.py index 62b0f6cf2a..f07362c38d 100644 --- a/qpid/python/qpid/codec010.py +++ b/qpid/python/qpid/codec010.py @@ -118,6 +118,8 @@ class Codec(Packer): def read_vbin8(self): return self.read(self.read_uint8()) def write_vbin8(self, b): + if isinstance(b, buffer): + b = str(b) self.write_uint8(len(b)) self.write(b) @@ -140,6 +142,8 @@ class Codec(Packer): def read_vbin16(self): return self.read(self.read_uint16()) def write_vbin16(self, b): + if isinstance(b, buffer): + b = str(b) self.write_uint16(len(b)) self.write(b) @@ -163,6 +167,8 @@ class Codec(Packer): def read_vbin32(self): return self.read(self.read_uint32()) def write_vbin32(self, b): + if isinstance(b, buffer): + b = str(b) self.write_uint32(len(b)) self.write(b) diff --git a/qpid/python/qpid/spec010.py b/qpid/python/qpid/spec010.py index 9a88b88169..2408d01f55 100644 --- a/qpid/python/qpid/spec010.py +++ b/qpid/python/qpid/spec010.py @@ -481,6 +481,7 @@ class Spec(Node): ENCODINGS = { unicode: direct("str16"), str: map_str, + buffer: direct("vbin32"), int: direct("int64"), long: direct("int64"), float: direct("float"), diff --git a/qpid/python/tests/codec010.py b/qpid/python/tests/codec010.py index 099734a040..a1f89dc3f4 100644 --- a/qpid/python/tests/codec010.py +++ b/qpid/python/tests/codec010.py @@ -48,6 +48,11 @@ class CodecTest(TestCase): def testMapBinary(self): self.check("map", {"binary": "\x7f\xb4R^\xe5\xf0:\x89\x96E1\xf6\xfe\xb9\x1b\xf5"}) + def testMapBuffer(self): + s = "\x7f\xb4R^\xe5\xf0:\x89\x96E1\xf6\xfe\xb9\x1b\xf5" + dec = self.check("map", {"buffer": buffer(s)}, False) + assert dec["buffer"] == s + def testMapInt(self): self.check("map", {"int": 3}) -- cgit v1.2.1