[pypy-svn] r64311 - in pypy/trunk/pypy/module/_file: . test
afa at codespeak.net
afa at codespeak.net
Fri Apr 17 23:28:17 CEST 2009
Author: afa
Date: Fri Apr 17 23:28:16 2009
New Revision: 64311
Modified:
pypy/trunk/pypy/module/_file/interp_file.py
pypy/trunk/pypy/module/_file/test/test_file_extra.py
Log:
Fix repr of file objects:
if filename is a str, backslashes are not doubled.
if filename is a unicode, backslashes are doubled.
This fixes test_repr on windows.
Modified: pypy/trunk/pypy/module/_file/interp_file.py
==============================================================================
--- pypy/trunk/pypy/module/_file/interp_file.py (original)
+++ pypy/trunk/pypy/module/_file/interp_file.py Fri Apr 17 23:28:16 2009
@@ -387,8 +387,16 @@
head = "closed"
else:
head = "open"
- repr_filename = self.space.str_w(self.space.repr(self.w_name))
- info = "%s file %s, mode '%s'" % (head, repr_filename, self.mode)
+ if self.space.abstract_isinstance_w(self.w_name, self.space.w_str):
+ info = "%s file '%s', mode '%s'" % (
+ head,
+ self.space.str_w(self.w_name),
+ self.mode)
+ else:
+ info = "%s file %s, mode '%s'" % (
+ head,
+ self.space.str_w(self.space.repr(self.w_name)),
+ self.mode)
return self.getrepr(self.space, info)
file__repr__.unwrap_spec = ['self']
Modified: pypy/trunk/pypy/module/_file/test/test_file_extra.py
==============================================================================
--- pypy/trunk/pypy/module/_file/test/test_file_extra.py (original)
+++ pypy/trunk/pypy/module/_file/test/test_file_extra.py Fri Apr 17 23:28:16 2009
@@ -206,6 +206,15 @@
f.close()
assert f.closed == True
+ def test_repr(self):
+ assert repr(self.file).startswith(
+ "<open file '%s', mode '%s' at 0x" % (
+ self.expected_filename, self.expected_mode))
+ self.file.close()
+ assert repr(self.file).startswith(
+ "<closed file '%s', mode '%s' at 0x" % (
+ self.expected_filename, self.expected_mode))
+
# ____________________________________________________________
#
# Basic 'rb' mode
@@ -269,7 +278,7 @@
# Files built with fdopen()
class AppTestFdOpen(BaseROTests):
- expected_filename = None
+ expected_filename = '<fdopen>'
expected_mode = 'rb'
extra_args = ()
@@ -569,6 +578,7 @@
def test_repr_unicode_filename(self):
f = open(unicode(self.temptestfile), 'w')
- assert repr(f).startswith("<open file u'" + self.temptestfile)
+ assert repr(f).startswith("<open file " +
+ repr(unicode(self.temptestfile)))
f.close()
More information about the Pypy-commit
mailing list