Author: Matti Picus <[email protected]>
Branch: win32-fixes4
Changeset: r70214:cf76d42b70fb
Date: 2014-03-23 17:58 +0200
http://bitbucket.org/pypy/pypy/changeset/cf76d42b70fb/
Log: win32 uses ll_os functions for rposix calls, which work differently
- no as_bytes() on str args,
- float/double differences with stat()
diff --git a/rpython/rlib/test/test_rposix.py b/rpython/rlib/test/test_rposix.py
--- a/rpython/rlib/test/test_rposix.py
+++ b/rpython/rlib/test/test_rposix.py
@@ -25,7 +25,7 @@
def as_unicode(self):
return self.unistr
-class BasePosixUnicode:
+class BasePosixUnicodeOrAscii:
def setup_method(self, method):
self.ufilename = self._get_filename()
try:
@@ -34,9 +34,12 @@
py.test.skip("encoding not good enough")
f.write("test")
f.close()
-
- self.path = UnicodeWithEncoding(self.ufilename)
- self.path2 = UnicodeWithEncoding(self.ufilename + ".new")
+ if sys.platform == 'win32' and isinstance(self.ufilename, str):
+ self.path = self.ufilename
+ self.path2 = self.ufilename + ".new"
+ else:
+ self.path = UnicodeWithEncoding(self.ufilename)
+ self.path2 = UnicodeWithEncoding(self.ufilename + ".new")
def test_open(self):
def f():
@@ -55,8 +58,11 @@
def test_stat(self):
def f():
return rposix.stat(self.path).st_mtime
-
- assert interpret(f, []) == os.stat(self.ufilename).st_mtime
+ if sys.platform == 'win32':
+ #double vs. float, be satisfied with sub-millisec resolution
+ assert abs(interpret(f, []) - os.stat(self.ufilename).st_mtime) <
1e-4
+ else:
+ assert interpret(f, []) == os.stat(self.ufilename).st_mtime
def test_access(self):
def f():
@@ -96,7 +102,11 @@
if sys.platform == 'win32':
def f():
- return u', '.join(rposix.listdir(udir))
+ if isinstance(udir.as_unicode(), str):
+ _udir = udir.as_unicode()
+ else:
+ _udir = udir
+ return u', '.join(rposix.listdir(_udir))
result = interpret(f, [])
assert os.path.basename(self.ufilename) in ll_to_string(result)
else:
@@ -149,11 +159,11 @@
interpret(f, []) # does not crash
-class TestPosixAscii(BasePosixUnicode):
+class TestPosixAscii(BasePosixUnicodeOrAscii):
def _get_filename(self):
return str(udir.join('test_open_ascii'))
-class TestPosixUnicode(BasePosixUnicode):
+class TestPosixUnicode(BasePosixUnicodeOrAscii):
def _get_filename(self):
return (unicode(udir.join('test_open')) +
u'\u65e5\u672c.txt') # "Japan"
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit