def testEmptyData(self): data = [b"", b"", b""] serialized = list(gzchunked.Serialize(iter(data))) deserialized = list(gzchunked.Deserialize(iter(serialized))) self.assertEqual(deserialized, data)
def testSingleEntry(self): data = [b"foo"] serialized = list(gzchunked.Serialize(iter(data))) deserialized = list(gzchunked.Deserialize(iter(serialized))) self.assertEqual(deserialized, data)
def testMultipleEntries(self): data = [b"foo", b"bar", b"baz", b"quux", b"norf", b"thud"] serialized = list(gzchunked.Serialize(iter(data))) deserialized = list(gzchunked.Deserialize(iter(serialized))) self.assertEqual(deserialized, data)
def testIncorrectSize(self): buf = io.BytesIO() with gzip.GzipFile(fileobj=buf, mode="wb") as filedesc: filedesc.write(struct.pack("!I", 42)) with self.assertRaises(ValueError): list(gzchunked.Deserialize(iter([buf.getvalue()])))
def testMultipleChunks(self): data = [os.urandom(1024 * 1024) for _ in range(8)] serialized = list(gzchunked.Serialize(iter(data), chunk_size=(1024 * 1024))) self.assertGreater(len(serialized), 1) deserialized = list(gzchunked.Deserialize(iter(serialized))) self.assertEqual(deserialized, data)
def testIncorrectData(self): buf = io.BytesIO() with gzip.GzipFile(fileobj=buf, mode="wb") as filedesc: filedesc.write(struct.pack("!Q", 8)) filedesc.write(b"quux") with self.assertRaises(chunked.ChunkTruncatedError): list(gzchunked.Deserialize(iter([buf.getvalue()])))
def testNoChunks(self): deserialized = list(gzchunked.Deserialize(iter([]))) self.assertEmpty(deserialized)
def testEmpty(self): serialized = list(gzchunked.Serialize(iter([]))) deserialized = list(gzchunked.Deserialize(iter(serialized))) self.assertEqual(deserialized, [])
def DeserializeStream( cls, entries: Iterator[bytes], ) -> Iterator["TimelineEntry"]: return map(cls.FromSerializedBytes, gzchunked.Deserialize(entries))
def DeserializeStream( cls, entries, ): return map(cls.FromSerializedBytes, gzchunked.Deserialize(entries))
def DeserializeTimelineEntryProtoStream( entries: Iterator[bytes], ) -> Iterator[timeline_pb2.TimelineEntry]: """Deserializes given gzchunked stream chunks into TimelineEntry protos.""" return map(_ParseTimelineEntryProto, gzchunked.Deserialize(entries))