]> granicus.if.org Git - python/commitdiff
Issue 4005: Remove .sort() call on dict_keys object.
authorAlexandre Vassalotti <alexandre@peadrop.com>
Sun, 5 Jul 2009 06:42:44 +0000 (06:42 +0000)
committerAlexandre Vassalotti <alexandre@peadrop.com>
Sun, 5 Jul 2009 06:42:44 +0000 (06:42 +0000)
This caused pydoc to fail when there was a zip file in sys.path.

Patch contributed by Amaury Forgeot d'Arc.

Lib/pkgutil.py
Lib/test/test_pkgutil.py

index 27dd887d869b06fa2076c3e027c7e0ad317f90b1..0ec6ec5265480c80043e03e5bc7c9176abc3776a 100644 (file)
@@ -318,8 +318,7 @@ try:
     from zipimport import zipimporter
 
     def iter_zipimport_modules(importer, prefix=''):
-        dirlist = zipimport._zip_directory_cache[importer.archive].keys()
-        dirlist.sort()
+        dirlist = sorted(zipimport._zip_directory_cache[importer.archive])
         _prefix = importer.prefix
         plen = len(_prefix)
         yielded = {}
index 169ef664113245eaf49958f1717f4a7563c749c1..f69af5a86bfcd08f5cd733211217c21a18258716 100644 (file)
@@ -74,6 +74,12 @@ class PkgutilTests(unittest.TestCase):
         self.assertEqual(res1, RESOURCE_DATA)
         res2 = pkgutil.get_data(pkg, 'sub/res.txt')
         self.assertEqual(res2, RESOURCE_DATA)
+
+        names = []
+        for loader, name, ispkg in pkgutil.iter_modules([zip_file]):
+            names.append(name)
+        self.assertEqual(names, ['test_getdata_zipfile'])
+
         del sys.path[0]
 
         del sys.modules[pkg]