File tree 4 files changed +38
-1
lines changed
test/test_importlib/metadata 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):
567
567
paths = (
568
568
(subdir / name )
569
569
.resolve ()
570
- .relative_to (self .locate_file ('' ).resolve ())
570
+ .relative_to (self .locate_file ('' ).resolve (), walk_up = True )
571
571
.as_posix ()
572
572
for name in text .splitlines ()
573
573
)
Original file line number Diff line number Diff line change @@ -253,6 +253,40 @@ def main():
253
253
}
254
254
255
255
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
+
256
290
class EggInfoPkgPipInstalledNoModules (OnSysPath , SiteBuilder ):
257
291
files : FilesSpec = {
258
292
"egg_with_no_modules_pkg.egg-info" : {
Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ class APITests(
29
29
fixtures .EggInfoPkg ,
30
30
fixtures .EggInfoPkgPipInstalledNoToplevel ,
31
31
fixtures .EggInfoPkgPipInstalledNoModules ,
32
+ fixtures .EggInfoPkgPipInstalledExternalDataFiles ,
32
33
fixtures .EggInfoPkgSourcesFallback ,
33
34
fixtures .DistInfoPkg ,
34
35
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