[Python-checkins] distutils2: Adding a check for invalid partial name matching in the get_distribution

tarek.ziade python-checkins at python.org
Mon Apr 5 23:09:19 CEST 2010


tarek.ziade pushed cc83e566ff8b to distutils2:

http://hg.python.org/distutils2/rev/cc83e566ff8b
changeset:   99:cc83e566ff8b
user:        pumazi
date:        Wed Mar 31 09:28:42 2010 -0400
summary:     Adding a check for invalid partial name matching in the get_distribution function test.
files:       src/distutils2/_backport/pkgutil.py, src/distutils2/_backport/tests/test_pkgutil.py

diff --git a/src/distutils2/_backport/pkgutil.py b/src/distutils2/_backport/pkgutil.py
--- a/src/distutils2/_backport/pkgutil.py
+++ b/src/distutils2/_backport/pkgutil.py
@@ -730,20 +730,12 @@
     value is expected. If the directory is not found, ``None`` is returned.
 
     :rtype: :class:`Distribution` or None"""
-    name = _normalize_dist_name(name)
-    dist = None
-    for path in sys.path:
-        realpath = os.path.realpath(path)
-        if not os.path.isdir(realpath):
-            continue
-        for dir in os.listdir(realpath):
-            dir_path = os.path.join(realpath, dir)
-            if dir.startswith(name) and os.path.isdir(dir_path):
-                dist = Distribution(dir_path)
-                break
-        if dist is not None:
+    found = None
+    for dist in get_distributions():
+        if dist.name == name:
+            found = dist
             break
-    return dist
+    return found
 
 def get_file_users(path):
     """
diff --git a/src/distutils2/_backport/tests/test_pkgutil.py b/src/distutils2/_backport/tests/test_pkgutil.py
--- a/src/distutils2/_backport/tests/test_pkgutil.py
+++ b/src/distutils2/_backport/tests/test_pkgutil.py
@@ -94,7 +94,7 @@
         self.assertListEqual(sorted(found_dists), sorted(fake_dists))
 
     def test_get_distribution(self):
-        """Lookup a distribution by name."""
+        """Test for looking up a distribution by name."""
         # Test the lookup of the towel-stuff distribution
         name = 'towel-stuff' # Note: This is different from the directory name
 
@@ -109,6 +109,9 @@
         # Verify that an unknown distribution returns None
         self.assertEqual(None, get_distribution('bogus'))
 
+        # Verify partial name matching doesn't work
+        self.assertEqual(None, get_distribution('towel'))
+
 
 def test_suite():
     suite = unittest2.TestSuite()

--
Repository URL: http://hg.python.org/distutils2


More information about the Python-checkins mailing list