You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by jd...@apache.org on 2023/09/29 11:18:22 UTC

[qpid-python] 04/09: QPID-8631: use io.BytesIO for bytes

This is an automated email from the ASF dual-hosted git repository.

jdanek pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-python.git

commit bd2a9f1bba2809a6429b1b66202c68f0f14287c4
Author: Jiri Daněk <jd...@redhat.com>
AuthorDate: Tue Apr 11 10:21:54 2023 +0200

    QPID-8631: use io.BytesIO for bytes
---
 qpid/codec.py        | 13 +++++--------
 qpid/connection08.py | 13 +++++--------
 qpid/tests/codec.py  | 17 ++++++++---------
 3 files changed, 18 insertions(+), 25 deletions(-)

diff --git a/qpid/codec.py b/qpid/codec.py
index 01c4309..4ee38ef 100644
--- a/qpid/codec.py
+++ b/qpid/codec.py
@@ -29,10 +29,7 @@ The unit test for this module is located in tests/codec.py
 from __future__ import absolute_import
 import re, qpid, os
 from . import spec08
-try:
-  from cStringIO import StringIO
-except ImportError:
-  from io import StringIO
+from io import BytesIO
 from struct import *
 from .reference import ReferenceId
 from logging import getLogger
@@ -438,7 +435,7 @@ class Codec:
     """
     encodes a table data structure in network byte order
     """
-    enc = StringIO()
+    enc = BytesIO()
     codec = Codec(enc, self.spec)
     if tbl:
       for key, value in tbl.items():
@@ -573,7 +570,7 @@ class Codec:
 
   def encode_struct(self, type, s):
     if type.size:
-      enc = StringIO()
+      enc = BytesIO()
       codec = Codec(enc, self.spec)
       codec.encode_struct_body(type, s)
       codec.flush()
@@ -636,7 +633,7 @@ class Codec:
     return s
 
   def encode_long_struct(self, s):
-    enc = StringIO()
+    enc = BytesIO()
     codec = Codec(enc, self.spec)
     type = s.type
     codec.encode_short(type.type)
@@ -644,7 +641,7 @@ class Codec:
     self.encode_longstr(enc.getvalue())
 
   def decode_long_struct(self):
-    codec = Codec(StringIO(self.decode_longstr()), self.spec)
+    codec = Codec(BytesIO(self.decode_longstr()), self.spec)
     type = self.spec.structs[codec.decode_short()]
     return codec.decode_struct_body(type)
 
diff --git a/qpid/connection08.py b/qpid/connection08.py
index 338e79f..ecd4eb0 100644
--- a/qpid/connection08.py
+++ b/qpid/connection08.py
@@ -26,10 +26,7 @@ server, or even a proxy implementation.
 from __future__ import absolute_import
 import socket, errno, qpid
 from . import codec
-try:
-  from cStringIO import StringIO
-except ImportError:
-  from io import StringIO
+from io import BytesIO
 from .codec import EOF
 from .compat import SHUT_RDWR
 from .exceptions import VersionError
@@ -189,7 +186,7 @@ class Connection:
     c = self.codec
     c.encode_octet(self.spec.constants.byname[frame.type].id)
     c.encode_short(frame.channel)
-    body = StringIO()
+    body = BytesIO()
     enc = codec.Codec(body, self.spec)
     frame.encode(enc)
     enc.flush()
@@ -211,7 +208,7 @@ class Connection:
     try:
       channel = c.decode_short()
       body = c.decode_longstr()
-      dec = codec.Codec(StringIO(body), self.spec)
+      dec = codec.Codec(BytesIO(body), self.spec)
       frame = Frame.DECODERS[type].decode(self.spec, dec, len(body))
       frame.channel = channel
       end = c.decode_octet()
@@ -250,7 +247,7 @@ class Connection:
 
     c.encode_octet(flags) # TODO: currently fixed at ver=0, B=E=b=e=1
     c.encode_octet(self.spec.constants.byname[frame.type].id)
-    body = StringIO()
+    body = BytesIO()
     enc = codec.Codec(body, self.spec)
     frame.encode(enc)
     enc.flush()
@@ -282,7 +279,7 @@ class Connection:
       raise FramingError("frame error: reserved bits not all zero")
     body_size = frame_size - 12 # TODO: Magic number (frame header size)
     body = c.read(body_size)
-    dec = codec.Codec(StringIO(body), self.spec)
+    dec = codec.Codec(BytesIO(body), self.spec)
     try:
       frame = Frame.DECODERS[type].decode(self.spec, dec, len(body))
     except EOF:
diff --git a/qpid/tests/codec.py b/qpid/tests/codec.py
index 6520e0e..9d77b22 100644
--- a/qpid/tests/codec.py
+++ b/qpid/tests/codec.py
@@ -23,10 +23,7 @@ from __future__ import print_function
 import unittest
 from qpid.codec import Codec
 from qpid.spec08 import load
-try:
-    from cStringIO import StringIO
-except ImportError:
-    from io import StringIO
+from io import BytesIO
 from qpid.reference import ReferenceId
 
 __doc__ = """
@@ -75,7 +72,7 @@ class BaseDataTypes(unittest.TestCase):
         """
         standard setUp for unitetest (refer unittest documentation for details)
         """
-        self.codec = Codec(StringIO(), SPEC)
+        self.codec = Codec(BytesIO(), SPEC)
 
     # ------------------
     def tearDown(self):
@@ -100,7 +97,7 @@ class BaseDataTypes(unittest.TestCase):
         helper function - creates a input stream and then calls the function with arguments as have been
         supplied
         """
-        self.codec.stream = StringIO(args[0])
+        self.codec.stream = BytesIO(args[0])
         return getattr(self.codec, functionName)()
 
 
@@ -212,7 +209,7 @@ class IntegerTestCase(BaseDataTypes):
     # -----------------------
     def test_ulong_int(self):
         """
-        testing unsigned long iteger
+        testing unsigned long integer
         """
         self.failUnlessEqual(self.callFunc('encode_long', self.const_integer), self.const_integer_long_encoded, 'long encoding FAILED...')
 
@@ -633,19 +630,21 @@ def test(type, value):
       values = value
     else:
       values = [value]
-    stream = StringIO()
+    stream = BytesIO()
     codec = Codec(stream, SPEC)
     for v in values:
       codec.encode(type, v)
     codec.flush()
     enc = stream.getvalue()
-    stream.reset()
+    stream.seek(0)
     dup = []
     for i in range(len(values)):
       dup.append(codec.decode(type))
     if values != dup:
       raise AssertionError("%r --> %r --> %r" % (values, enc, dup))
 
+test.__test__ = False  # tells pytest to not try run this as a test function
+
 # -----------------------
 def dotest(type, value):
     """


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org