##// END OF EJS Templates
cborutil: cast bytearray to bytes...
Gregory Szorc -
r40160:b638219a default
parent child Browse files
Show More
@@ -925,6 +925,11 b' class bufferingdecoder(object):'
925 * Integer number of bytes decoded from the new input.
925 * Integer number of bytes decoded from the new input.
926 * Integer number of bytes wanted to decode the next value.
926 * Integer number of bytes wanted to decode the next value.
927 """
927 """
928 # We /might/ be able to support passing a bytearray all the
929 # way through. For now, let's cheat.
930 if isinstance(b, bytearray):
931 b = bytes(b)
932
928 # Our strategy for buffering is to aggregate the incoming chunks in a
933 # Our strategy for buffering is to aggregate the incoming chunks in a
929 # list until we've received enough data to decode the next item.
934 # list until we've received enough data to decode the next item.
930 # This is slightly more complicated than using an ``io.BytesIO``
935 # This is slightly more complicated than using an ``io.BytesIO``
@@ -965,6 +965,14 b' class BufferingDecoderTests(TestCase):'
965
965
966 self.assertEqual(decoder.getavailable(), [source])
966 self.assertEqual(decoder.getavailable(), [source])
967
967
968 def testbytearray(self):
969 source = b''.join(cborutil.streamencode(b'foobar'))
970
971 decoder = cborutil.bufferingdecoder()
972 decoder.decode(bytearray(source))
973
974 self.assertEqual(decoder.getavailable(), [b'foobar'])
975
968 class DecodeallTests(TestCase):
976 class DecodeallTests(TestCase):
969 def testemptyinput(self):
977 def testemptyinput(self):
970 self.assertEqual(cborutil.decodeall(b''), [])
978 self.assertEqual(cborutil.decodeall(b''), [])
General Comments 0
You need to be logged in to leave comments. Login now