Author: Armin Rigo <[email protected]>
Branch:
Changeset: r44400:f4bb73c5058b
Date: 2011-05-24 13:57 +0200
http://bitbucket.org/pypy/pypy/changeset/f4bb73c5058b/
Log: Improve the test to check for zipfiles that contain both '/' and the
native os.sep with all tests, instead of some tests being written in
one style and other tests in the other style. It shows the bug #725
on Windows.
diff --git a/pypy/module/zipimport/test/test_zipimport.py
b/pypy/module/zipimport/test/test_zipimport.py
--- a/pypy/module/zipimport/test/test_zipimport.py
+++ b/pypy/module/zipimport/test/test_zipimport.py
@@ -1,7 +1,7 @@
from pypy.conftest import gettestobjspace
import marshal
-import py
+import py, os
import time
import struct
from pypy.module.imp.importing import get_pyc_magic, _w_long
@@ -15,6 +15,7 @@
cpy's regression tests
"""
compression = ZIP_STORED
+ pathsep = '/'
def make_pyc(cls, space, co, mtime):
data = marshal.dumps(co)
@@ -57,6 +58,7 @@
test_pyc = cls.make_pyc(space, co, now)
cls.w_test_pyc = space.wrap(test_pyc)
cls.w_compression = space.wrap(cls.compression)
+ cls.w_pathsep = space.wrap(cls.pathsep)
#ziptestmodule = tmpdir.ensure('ziptestmodule.zip').write(
ziptestmodule = tmpdir.join("somezip.zip")
cls.w_tmpzip = space.wrap(str(ziptestmodule))
@@ -100,6 +102,7 @@
from zipfile import ZipFile, ZipInfo
z = ZipFile(self.zipfile, 'w')
write_files = self.write_files
+ filename = filename.replace('/', self.pathsep)
write_files.append((filename, data))
for filename, data in write_files:
zinfo = ZipInfo(filename, time.localtime(self.now))
@@ -262,7 +265,7 @@
import zipimport
data = "saddsadsa"
self.writefile("xxx", data)
- self.writefile("xx"+os.sep+"__init__.py", "5")
+ self.writefile("xx/__init__.py", "5")
self.writefile("yy.py", "3")
self.writefile('uu.pyc', self.test_pyc)
z = zipimport.zipimporter(self.zipfile)
@@ -287,8 +290,7 @@
"""
import os
import zipimport
- self.writefile(
- os.sep.join(("directory", "package", "__init__.py")), "")
+ self.writefile("directory/package/__init__.py", "")
importer = zipimport.zipimporter(self.zipfile + "/directory")
# Grab this so if the assertion fails, py.test will display its
# value. Not sure why it doesn't the assertion uses import.archive
@@ -303,8 +305,7 @@
def test_subdirectory_importer(self):
import os
import zipimport
- self.writefile(
- os.sep.join(("directory", "package", "__init__.py")), "")
+ self.writefile("directory/package/__init__.py", "")
z = zipimport.zipimporter(self.zipfile + "/directory")
mod = z.load_module("package")
assert z.is_package("package")
@@ -313,14 +314,9 @@
def test_subdirectory_twice(self):
import os, zipimport
- self.writefile(
- os.sep.join(("package", "__init__.py")), "")
- self.writefile(
- os.sep.join(("package", "subpackage",
- "__init__.py")), "")
- self.writefile(
- os.sep.join(("package", "subpackage",
- "foo.py")), "")
+ self.writefile("package/__init__.py", "")
+ self.writefile("package/subpackage/__init__.py", "")
+ self.writefile("package/subpackage/foo.py", "")
import sys
print sys.path
mod = __import__('package.subpackage.foo', None, None, [])
@@ -331,8 +327,7 @@
"""
import os
import zipimport
- self.writefile(
- os.sep.join(("directory", "package", "__init__.py")), "")
+ self.writefile("directory/package/__init__.py", "")
importer = zipimport.zipimporter(self.zipfile + "/directory")
l = [i for i in zipimport._zip_directory_cache]
assert len(l)
@@ -370,3 +365,8 @@
except ImportError:
py.test.skip("zlib not available, cannot test compressed zipfiles")
cls.make_class()
+
+
+if os.sep != '/':
+ class AppTestNativePathSep(AppTestZipimport):
+ pathsep = os.sep
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit