[pypy-svn] r78656 - in pypy/branch/fast-forward/pypy/module/_file: . test
afa at codespeak.net
afa at codespeak.net
Wed Nov 3 01:13:53 CET 2010
Author: afa
Date: Wed Nov 3 01:13:51 2010
New Revision: 78656
Modified:
pypy/branch/fast-forward/pypy/module/_file/interp_file.py
pypy/branch/fast-forward/pypy/module/_file/test/test_file.py
Log:
file.newlines should be accessible even after the file has been closed.
Modified: pypy/branch/fast-forward/pypy/module/_file/interp_file.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/_file/interp_file.py (original)
+++ pypy/branch/fast-forward/pypy/module/_file/interp_file.py Wed Nov 3 01:13:51 2010
@@ -31,6 +31,8 @@
encoding = None # This is not used internally by file objects
fd = -1
+ newlines = 0 # Updated when the stream is closed
+
def __init__(self, space):
self.space = space
@@ -113,6 +115,7 @@
space = self.space
stream = self.stream
if stream is not None:
+ self.newlines = self.stream.getnewlines()
self.stream = None
self.fd = -1
openstreams = getopenstreams(self.space)
@@ -439,7 +442,10 @@
return space.wrap(file.stream is None)
def descr_file_newlines(space, file):
- newlines = file.getstream().getnewlines()
+ if file.stream:
+ newlines = file.stream.getnewlines()
+ else:
+ newlines = file.newlines
if newlines == 0:
return space.w_None
elif newlines == 1:
Modified: pypy/branch/fast-forward/pypy/module/_file/test/test_file.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/_file/test/test_file.py (original)
+++ pypy/branch/fast-forward/pypy/module/_file/test/test_file.py Wed Nov 3 01:13:51 2010
@@ -108,10 +108,13 @@
f.write("\r\n")
assert f.newlines is None
f.close()
+ assert f.newlines is None
f = self.file(self.temppath, "rU")
res = f.read()
assert res == "\n"
assert f.newlines == "\r\n"
+ f.close()
+ assert f.newlines == "\r\n"
def test_unicode(self):
import os
More information about the Pypy-commit
mailing list