예제 #1
0
    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")