[Python-checkins] r57520 - sandbox/trunk/import_in_py/zipimport_/tests.py sandbox/trunk/import_in_py/zipimport_/zipimport.py

brett.cannon python-checkins at python.org
Sun Aug 26 23:53:09 CEST 2007


Author: brett.cannon
Date: Sun Aug 26 23:53:09 2007
New Revision: 57520

Modified:
   sandbox/trunk/import_in_py/zipimport_/tests.py
   sandbox/trunk/import_in_py/zipimport_/zipimport.py
Log:
Raise ZipImportError when the archive path has a length of 0.


Modified: sandbox/trunk/import_in_py/zipimport_/tests.py
==============================================================================
--- sandbox/trunk/import_in_py/zipimport_/tests.py	(original)
+++ sandbox/trunk/import_in_py/zipimport_/tests.py	Sun Aug 26 23:53:09 2007
@@ -56,6 +56,9 @@
 
     """Test the creation of a zipimport.zipimporter instance."""
 
+    def test_empty_archive_path(self):
+        self.assertRaises(zipimport.ZipImportError, zipimport.zipimporter, '')
+
     def test_nonzip(self):
         # ZipImportError should be raised if a non-zip file is specified.
             with open(test_support.TESTFN, 'w') as test_file:

Modified: sandbox/trunk/import_in_py/zipimport_/zipimport.py
==============================================================================
--- sandbox/trunk/import_in_py/zipimport_/zipimport.py	(original)
+++ sandbox/trunk/import_in_py/zipimport_/zipimport.py	Sun Aug 26 23:53:09 2007
@@ -1,14 +1,19 @@
 """A re-implementation of zipimport to use importlib."""
 import importlib
 
-import contextlib
-import datetime
-import imp
-import os
-import time
+#import contextlib
+#import datetime
+#import imp
+#import os
+#import time
 import zipfile
 
 
+# XXX Import lock prevents concurrency issues during importation use, but does
+#  not make any guarantees for non-import uses.
+_zip_directory_cache = {}
+
+
 class ZipImportError(ImportError):
     pass
 
@@ -26,6 +31,12 @@
         than a zip file is passed in then ZipImportError is raised.
 
         """
+        if len(archivepath) == 0:
+            raise ZipImportError("archive path is empty")
+
+
+
+        # XXX need to have archive, prefix, _files attributes.
         raise NotImplementedError
         path = os.path.abspath(archivepath)
         # XXX Need to tweak to handle zip archive package info like


More information about the Python-checkins mailing list