[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