MCPcopy
hub / github.com/pex-tool/pex / test_chroot_zip_symlink

Function test_chroot_zip_symlink

tests/test_common.py:228–274  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

226
227
228def test_chroot_zip_symlink():
229 # type: () -> None
230 with temporary_dir() as tmp:
231 chroot = Chroot(os.path.join(tmp, "chroot"))
232 chroot.write(b"data", "directory/subdirectory/file")
233 chroot.write(b"data", "directory/subdirectory/file.foo")
234 chroot.symlink(
235 os.path.join(chroot.path(), "directory/subdirectory/file"),
236 "directory/subdirectory/symlinked",
237 )
238
239 cwd = os.getcwd()
240 try:
241 os.chdir(os.path.join(chroot.path(), "directory/subdirectory"))
242 chroot.symlink(
243 "file",
244 "directory/subdirectory/rel-symlinked",
245 )
246 finally:
247 os.chdir(cwd)
248
249 chroot.symlink(os.path.join(chroot.path(), "directory"), "symlinked")
250 zip_dst = os.path.join(tmp, "chroot.zip")
251 chroot.zip(zip_dst, exclude_file=lambda path: path.endswith(".foo"))
252 with open_zip(zip_dst) as zip:
253 assert [
254 "directory/",
255 "directory/subdirectory/",
256 "directory/subdirectory/file",
257 "directory/subdirectory/rel-symlinked",
258 "directory/subdirectory/symlinked",
259 "symlinked/",
260 "symlinked/subdirectory/",
261 "symlinked/subdirectory/file",
262 "symlinked/subdirectory/rel-symlinked",
263 "symlinked/subdirectory/symlinked",
264 ] == sorted(zip.namelist())
265 assert b"" == zip.read("directory/")
266 assert b"" == zip.read("directory/subdirectory/")
267 assert b"data" == zip.read("directory/subdirectory/file")
268 assert b"data" == zip.read("directory/subdirectory/rel-symlinked")
269 assert b"data" == zip.read("directory/subdirectory/symlinked")
270 assert b"" == zip.read("symlinked/")
271 assert b"" == zip.read("symlinked/subdirectory/")
272 assert b"data" == zip.read("symlinked/subdirectory/file")
273 assert b"data" == zip.read("symlinked/subdirectory/rel-symlinked")
274 assert b"data" == zip.read("symlinked/subdirectory/symlinked")
275
276
277def test_deterministic_walk():

Callers

nothing calls this directly

Calls 9

writeMethod · 0.95
symlinkMethod · 0.95
pathMethod · 0.95
zipMethod · 0.95
temporary_dirFunction · 0.90
ChrootClass · 0.90
open_zipFunction · 0.90
joinMethod · 0.45
readMethod · 0.45

Tested by

no test coverage detected