[Python-checkins] distutils2: Prevent pydoc failure with zipfile on sys.path (#4005 backport)

tarek.ziade python-checkins at python.org
Sun Jan 30 10:43:57 CET 2011


tarek.ziade pushed 04e872076657 to distutils2:

http://hg.python.org/distutils2/rev/04e872076657
changeset:   934:04e872076657
user:        ?ric Araujo <merwok at netwok.org>
date:        Sun Oct 31 15:28:58 2010 +0100
summary:
  Prevent pydoc failure with zipfile on sys.path (#4005 backport)

files:
  distutils2/_backport/pkgutil.py
  distutils2/_backport/tests/test_pkgutil.py

diff --git a/distutils2/_backport/pkgutil.py b/distutils2/_backport/pkgutil.py
--- a/distutils2/_backport/pkgutil.py
+++ b/distutils2/_backport/pkgutil.py
@@ -343,8 +343,7 @@
     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 = {}
diff --git a/distutils2/_backport/tests/test_pkgutil.py b/distutils2/_backport/tests/test_pkgutil.py
--- a/distutils2/_backport/tests/test_pkgutil.py
+++ b/distutils2/_backport/tests/test_pkgutil.py
@@ -108,6 +108,12 @@
         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]

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


More information about the Python-checkins mailing list