File tree Expand file tree Collapse file tree 4 files changed +38
-1
lines changed
test/test_importlib/metadata Expand file tree Collapse file tree 4 files changed +38
-1
lines changed Original file line number Diff line number Diff line change @@ -567,7 +567,7 @@ def _read_files_egginfo_installed(self):
567567 paths = (
568568 (subdir / name )
569569 .resolve ()
570- .relative_to (self .locate_file ('' ).resolve ())
570+ .relative_to (self .locate_file ('' ).resolve (), walk_up = True )
571571 .as_posix ()
572572 for name in text .splitlines ()
573573 )
Original file line number Diff line number Diff line change @@ -253,6 +253,40 @@ def main():
253253 }
254254
255255
256+ class EggInfoPkgPipInstalledExternalDataFiles (OnSysPath , SiteBuilder ):
257+ files : FilesSpec = {
258+ "egg_with_module_pkg.egg-info" : {
259+ "PKG-INFO" : "Name: egg_with_module-pkg" ,
260+ # SOURCES.txt is made from the source archive, and contains files
261+ # (setup.py) that are not present after installation.
262+ "SOURCES.txt" : """
263+ egg_with_module.py
264+ setup.py
265+ egg_with_module.json
266+ egg_with_module_pkg.egg-info/PKG-INFO
267+ egg_with_module_pkg.egg-info/SOURCES.txt
268+ egg_with_module_pkg.egg-info/top_level.txt
269+ """ ,
270+ # installed-files.txt is written by pip, and is a strictly more
271+ # accurate source than SOURCES.txt as to the installed contents of
272+ # the package.
273+ "installed-files.txt" : """
274+ ../../../etc/jupyter/jupyter_notebook_config.d/relative.json
275+ /etc/jupyter/jupyter_notebook_config.d/absolute.json
276+ ../egg_with_module.py
277+ PKG-INFO
278+ SOURCES.txt
279+ top_level.txt
280+ """ ,
281+ # missing top_level.txt (to trigger fallback to installed-files.txt)
282+ },
283+ "egg_with_module.py" : """
284+ def main():
285+ print("hello world")
286+ """ ,
287+ }
288+
289+
256290class EggInfoPkgPipInstalledNoModules (OnSysPath , SiteBuilder ):
257291 files : FilesSpec = {
258292 "egg_with_no_modules_pkg.egg-info" : {
Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ class APITests(
2929 fixtures .EggInfoPkg ,
3030 fixtures .EggInfoPkgPipInstalledNoToplevel ,
3131 fixtures .EggInfoPkgPipInstalledNoModules ,
32+ fixtures .EggInfoPkgPipInstalledExternalDataFiles ,
3233 fixtures .EggInfoPkgSourcesFallback ,
3334 fixtures .DistInfoPkg ,
3435 fixtures .DistInfoPkgWithDot ,
Original file line number Diff line number Diff line change 1+ When reading installed files from an egg, use ``relative_to(walk_up=True) ``
2+ to honor files installed outside of the installation root.
You can’t perform that action at this time.
0 commit comments