def test_from_stream(self): ae = self.assertEqual data = bytearray() data.extend(b"\x3E\x00\x00\x00") # size data.extend(b"\x01\x00\x00\x00") # id/index data.extend(b"\x00\x68\x67\x4F\xB7\xA3\xCA\x01") # mtime data.extend(b"d\x00a\x00n\x00g\x00e\x00r\x00-\x00s\x00i\x00") # name data.extend(b"g\x00n\x00-\x00s\x00h\x00o\x00c\x00k\x00") # more name data.extend(b".\x00j\x00p\x00g\x00\x00\x00") # more name stream = ByteIStream(data) ce0 = CatalogEntry.from_stream(stream) ce1 = CatalogEntry.from_stream(stream, 0) for ce in (ce0, ce1): ae(ce.size, 0x3E) ae(ce.id, 1) ae(ce.stream_name, "1") ae(ce.mtime, datetime(2010, 2, 2, 3, 25, 4))
def test_from_stream(self): ae = self.assertEqual data = bytearray() # catalog header data.extend(b"\x10\x00\x07\x00") # unknown 1 and 2 data.extend(b"\x02\x00\x00\x00") # item_count data.extend(b"\x00\x01\x02\x03") # width data.extend(b"\x04\x05\x06\x07") # height # first entry data.extend(b"\x2E\x00\x00\x00") # size data.extend(b"\x01\x00\x00\x00") # id/index data.extend(b"\x95\x98\x50\xB7\xA3\xCA\x01") # mtime data.extend(b"z\x00o\x00o\x00l\x00e\x00m\x00u\x00r\x00") # name data.extend(b"1\x00.\x00j\x00p\x00g\x00\x00") # more name # second entry data.extend(b"\x3E\x00\x00\x00") # size data.extend(b"\x02\x00\x00\x00") # id/index data.extend(b"\x00\x68\x67\x4F\xB7\xA3\xCA\x01") # mtime data.extend(b"d\x00a\x00n\x00g\x00e\x00r\x00-\x00s\x00i\x00") # name data.extend(b"g\x00n\x00-\x00s\x00h\x00o\x00c\x00k\x00") # more name data.extend(b".\x00j\x00p\x00g\x00\x00\x00") # more name stream = ByteIStream(data) cat0 = Catalog.from_stream(stream) cat1 = Catalog.from_stream(stream, 0) entries = [ CatalogEntry.from_stream(stream, 16), CatalogEntry.from_stream(stream, 62) ] for cat in (cat0, cat1): ae(cat.width, 0x03020100) ae(cat.height, 0x07060504) ae(cat.item_count, 2) ae(cat.entries, entries)