[Python-checkins] distutils2: Fix resolve_name. This thing is no fun.

tarek.ziade python-checkins at python.org
Thu Aug 19 08:34:14 CEST 2010


tarek.ziade pushed 34beee674f34 to distutils2:

http://hg.python.org/distutils2/rev/34beee674f34
changeset:   587:34beee674f34
user:        ?ric Araujo <merwok at netwok.org>
date:        Sun Aug 15 05:59:31 2010 +0200
summary:     Fix resolve_name. This thing is no fun.
files:       src/distutils2/tests/test_util.py, src/distutils2/util.py

diff --git a/src/distutils2/tests/test_util.py b/src/distutils2/tests/test_util.py
--- a/src/distutils2/tests/test_util.py
+++ b/src/distutils2/tests/test_util.py
@@ -343,9 +343,13 @@
         self.assertEqual(set(res), set(['pkg1', 'pkg5', 'pkg1.pkg3', 'pkg1.pkg3.pkg6']))
 
     def test_resolve_name(self):
-        self.assertEqual(UtilTestCase, resolve_name("distutils2.tests.test_util.UtilTestCase"))
-        self.assertEqual(UtilTestCase.test_resolve_name,
-                         resolve_name("distutils2.tests.test_util.UtilTestCase.test_resolve_name"))
+        self.assertEqual(str(42), resolve_name('__builtin__.str')(42))
+        self.assertEqual(
+            UtilTestCase.__name__,
+            resolve_name("distutils2.tests.test_util.UtilTestCase").__name__)
+        self.assertEqual(
+            UtilTestCase.test_resolve_name.__name__,
+            resolve_name("distutils2.tests.test_util.UtilTestCase.test_resolve_name").__name__)
 
         self.assertRaises(ImportError, resolve_name,
                           "distutils2.tests.test_util.UtilTestCaseNot")
diff --git a/src/distutils2/util.py b/src/distutils2/util.py
--- a/src/distutils2/util.py
+++ b/src/distutils2/util.py
@@ -637,7 +637,10 @@
     return packages
 
 def resolve_name(name):
-    """Resolve a name like ``module.object`` to an object and return it."""
+    """Resolve a name like ``module.object`` to an object and return it.
+
+    Raise ImportError if the module or name is not found.
+    """
     parts = name.split('.')
     cursor = len(parts)
     module_name, rest = parts[:cursor], parts[cursor:]
@@ -652,12 +655,14 @@
             cursor -= 1
             module_name = parts[:cursor]
             rest = parts[cursor:]
+            ret = ''
 
     for part in parts[1:]:
         try:
             ret = getattr(ret, part)
         except AttributeError:
             raise ImportError
+
     return ret
 
 def splitext(path):

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


More information about the Python-checkins mailing list