def test_urllib(self): c = OxidizedResourceCollector(policy="filesystem-relative-only:lib") for path in sys.path: if os.path.isdir(path): for resource in find_resources_in_path(path): if isinstance(resource, PythonModuleBytecode): if resource.module.startswith("urllib"): if resource.optimize_level == 0: c.add_filesystem_relative("lib", resource) resources, file_installs = c.oxidize() self.assertEqual(len(resources), len(file_installs)) idx = None for i, resource in enumerate(resources): if resource.name == "urllib.request": idx = i break self.assertIsNotNone(idx) (path, data, executable) = file_installs[idx] self.assertEqual( path, pathlib.Path("lib") / "urllib" / "__pycache__" / ("request.%s.pyc" % sys.implementation.cache_tag), ) self.assertTrue(data.startswith(importlib.util.MAGIC_NUMBER))
def test_urllib(self): c = OxidizedResourceCollector( allowed_locations=["filesystem-relative"]) for path in sys.path: if os.path.isdir(path): for resource in find_resources_in_path(path): if isinstance(resource, PythonModuleBytecode): if resource.module.startswith("urllib"): if resource.optimize_level == 0: c.add_filesystem_relative("lib", resource) python_exe = os.environ.get("PYTHON_SYS_EXECUTABLE") with assert_tempfile_cleaned_up(): resources, file_installs = c.oxidize(python_exe=python_exe) self.assertEqual(len(resources), len(file_installs)) idx = None for i, resource in enumerate(resources): if resource.name == "urllib.request": idx = i break self.assertIsNotNone(idx) (path, data, executable) = file_installs[idx] self.assertEqual( path, pathlib.Path("lib") / "urllib" / "__pycache__" / ("request.%s.pyc" % sys.implementation.cache_tag), ) self.assertTrue(data.startswith(importlib.util.MAGIC_NUMBER))
def test_add_sys_path(self): c = OxidizedResourceCollector( allowed_locations=["in-memory", "filesystem-relative"]) for path in sys.path: if os.path.isdir(path): for resource in find_resources_in_path(path): c.add_in_memory(resource) c.add_filesystem_relative("", resource) python_exe = os.environ.get("PYTHON_SYS_EXECUTABLE") with assert_tempfile_cleaned_up(): resources, file_installs = c.oxidize(python_exe=python_exe) f = OxidizedFinder() f.add_resources(resources) with (self.td / "serialized").open("wb") as fh: fh.write(f.serialize_indexed_resources()) f = OxidizedFinder() f.index_file_memory_mapped(self.td / "serialized") self.assertGreaterEqual(len(f.indexed_resources()), len(resources)) for r in f.indexed_resources(): r.in_memory_source r.in_memory_bytecode
def test_add_sys_path(self): c = OxidizedResourceCollector( policy="prefer-in-memory-fallback-filesystem-relative:prefix") for path in sys.path: if os.path.isdir(path): for resource in find_resources_in_path(path): c.add_in_memory(resource) c.add_filesystem_relative("", resource) resources, file_installs = c.oxidize() f = OxidizedFinder() f.add_resources(resources) with (self.td / "serialized").open("wb") as fh: fh.write(f.serialize_indexed_resources()) f = OxidizedFinder(resources_file=self.td / "serialized") self.assertGreaterEqual(len(f.indexed_resources()), len(resources)) for r in f.indexed_resources(): r.in_memory_source r.in_memory_bytecode