]> granicus.if.org Git - python/commitdiff
Fix a bug where code was trying to index an int. Left over from the situation
authorBrett Cannon <bcannon@gmail.com>
Fri, 27 Feb 2009 03:38:28 +0000 (03:38 +0000)
committerBrett Cannon <bcannon@gmail.com>
Fri, 27 Feb 2009 03:38:28 +0000 (03:38 +0000)
from using str.rpartition to str.rindex.

Closes Issue5213.

Lib/importlib/__init__.py
Lib/test/test_importlib.py

index e046bc09fd69e62917b4068f857f5c9bf3250c89..35af00bb9a5235cc052d32170595bea7e6a20d49 100644 (file)
@@ -15,7 +15,7 @@ def _resolve_name(name, package, level):
     try:
         # rpartition is more "correct" and rfind is just as easy to use, but
         # neither are in Python 2.3.
-        dot_rindex = package.rindex('.', level)[0]
+        dot_rindex = package.rindex('.', level)
         base = package[:dot_rindex]
     except ValueError:
         base = package
index 572b1f169e7275832ca47445f079dccd500fae34..73bb6548be3b99e404e483053f500a750ed8ffa2 100644 (file)
@@ -140,11 +140,14 @@ class ImportModuleTests(unittest.TestCase):
         pkg_name = 'pkg'
         pkg_long_name = '{0}.__init__'.format(pkg_name)
         module_name = 'mod'
+        subpkg_name = '{0}.subpkg'.format(pkg_name)
+        subpkg_long_name = '{0}.__init__'.format(subpkg_name)
         absolute_name = '{0}.{1}'.format(pkg_name, module_name)
-        relative_name = '.{0}'.format(module_name)
-        with mock_modules(pkg_long_name, absolute_name) as mock:
+        relative_name = '..{0}'.format(module_name)
+        with mock_modules(pkg_long_name, subpkg_long_name,
+                            absolute_name) as mock:
             with import_state(meta_path=[mock]):
-                module = importlib.import_module(relative_name, pkg_name)
+                module = importlib.import_module(relative_name, subpkg_name)
                 self.assertEqual(module.__name__, absolute_name)
 
     def test_absolute_import_with_package(self):