def test_serialize_simple(self): f = OxidizedFinder() m = OxidizedResource() m.is_module = True m.name = "my_module" m.in_memory_source = b"import io" f.add_resource(m) m = OxidizedResource() m.is_module = True m.name = "module_b" m.in_memory_bytecode = b"dummy bytecode" f.add_resource(m) serialized = f.serialize_indexed_resources() self.assertIsInstance(serialized, bytes) f2 = OxidizedFinder() f2.index_bytes(serialized) modules = {r.name: r for r in f2.indexed_resources() if r.is_module} self.assertEqual(len(modules), 2) self.assertIn("my_module", modules) self.assertIn("module_b", modules) self.assertEqual(modules["my_module"].in_memory_source, b"import io") self.assertEqual(modules["module_b"].in_memory_bytecode, b"dummy bytecode")
def test_index_bytes_simple(self): f = OxidizedFinder() f.index_bytes(self.get_resources_data())
def test_index_bytes_bad(self): f = OxidizedFinder() with self.assertRaises(ValueError): f.index_bytes(b"foo")
def test_no_indices(self): f = OxidizedFinder() f.index_bytes(b"pyembed\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00")
def test_resources_bad_magic(self): with self.assertRaisesRegex(ValueError, "unrecognized file format"): f = OxidizedFinder() f.index_bytes(b"\xde\xad\xbe\xef\xaa\xaa\xaa\xaa")
def test_resources_no_magic(self): with self.assertRaisesRegex(ValueError, "reading 8 byte"): f = OxidizedFinder() f.index_bytes(b"foo")
def test_bad_resources_type(self): with self.assertRaises(TypeError): f = OxidizedFinder() f.index_bytes("foo")