def read(self, count): if count < 0: raise ValueError("count cannot be negative") l = len(self.buffer) if count == 0: data = "" elif count <= l: data = self.buffer[:count] self.buffer = self.buffer[count:] else: data = self.buffer count -= l bytes = count // 8 if count & 7: bytes += 1 buf = encode_bin(self.substream.read(bytes)) data += buf[:count] self.buffer = buf[count:] self.total_size += len(data) return data
def test_encode_bin(self): self.assertEqual( encode_bin("ab"), "\x00\x01\x01\x00\x00\x00\x00\x01\x00\x01\x01\x00\x00\x00\x01\x00")
def test_encode_bin(self): self.assertEqual(encode_bin(six.b("ab")), six.b("\x00\x01\x01\x00\x00\x00\x00\x01\x00\x01\x01\x00\x00\x00\x01\x00"))
def test_encode_bin(self): self.assertEqual(encode_bin("ab"), "\x00\x01\x01\x00\x00\x00\x00\x01\x00\x01\x01\x00\x00\x00\x01\x00")