File tree Expand file tree Collapse file tree 2 files changed +52
-0
lines changed
Expand file tree Collapse file tree 2 files changed +52
-0
lines changed Original file line number Diff line number Diff line change @@ -169,6 +169,32 @@ def setUp(self):
169169 build_files (DistInfoPkg .files , self .site_dir )
170170
171171
172+ class DistInfoSymlinkedPkg (OnSysPath , SiteDir ):
173+ files : FilesSpec = {
174+ "symlinked_pkg-1.0.0.dist-info" : {
175+ "METADATA" : """
176+ Name: symlinked-pkg
177+ Version: 1.0.0
178+ """ ,
179+ "RECORD" : "symlinked,,\n " ,
180+ },
181+ ".symlink.target" : {
182+ "__init__.py" : """
183+ def main():
184+ print("hello world")
185+ """ ,
186+ },
187+ # "symlinked" -> ".symlink.target", see below
188+ }
189+
190+ def setUp (self ):
191+ super ().setUp ()
192+ build_files (DistInfoSymlinkedPkg .files , self .site_dir )
193+ target = self .site_dir / ".symlink.target"
194+ assert target .is_dir ()
195+ (self .site_dir / "symlinked" ).symlink_to (target , target_is_directory = True )
196+
197+
172198class EggInfoPkg (OnSysPath , SiteDir ):
173199 files : FilesSpec = {
174200 "egginfo_pkg.egg-info" : {
Original file line number Diff line number Diff line change @@ -387,6 +387,32 @@ def test_packages_distributions_all_module_types(self):
387387 assert not any (name .endswith ('.dist-info' ) for name in distributions )
388388
389389
390+ class PackagesDistributionsDistTest (
391+ fixtures .DistInfoPkg ,
392+ fixtures .DistInfoSymlinkedPkg ,
393+ unittest .TestCase ,
394+ ):
395+ def test_packages_distributions_on_dist_info (self ):
396+ """
397+ Test _top_level_inferred() on various dist-info packages.
398+ """
399+ distributions = packages_distributions ()
400+
401+ def import_names_from_package (package_name ):
402+ return {
403+ import_name
404+ for import_name , package_names in distributions .items ()
405+ if package_name in package_names
406+ }
407+
408+ # distinfo-pkg has one import ('mod') inferred from RECORD
409+ assert import_names_from_package ('distinfo-pkg' ) == {'mod' }
410+
411+ # symlinked-pkg has one import ('symlinked') inderred from RECORD which
412+ # references a symlink to the real package dir elsewhere.
413+ assert import_names_from_package ('symlinked-pkg' ) == {'symlinked' }
414+
415+
390416class PackagesDistributionsEggTest (
391417 fixtures .EggInfoPkg ,
392418 fixtures .EggInfoPkgPipInstalledNoToplevel ,
You can’t perform that action at this time.
0 commit comments