[pypy-commit] pypy default: undo test mode in rfile
bdkearns
noreply at buildbot.pypy.org
Fri Aug 29 19:15:46 CEST 2014
Author: Brian Kearns <bdkearns at gmail.com>
Branch:
Changeset: r73179:f7221037bd92
Date: 2014-08-29 13:04 -0400
http://bitbucket.org/pypy/pypy/changeset/f7221037bd92/
Log: undo test mode in rfile
diff --git a/rpython/rlib/rfile.py b/rpython/rlib/rfile.py
--- a/rpython/rlib/rfile.py
+++ b/rpython/rlib/rfile.py
@@ -137,7 +137,7 @@
c_setvbuf(ll_f, lltype.nullptr(rffi.CCHARP.TO), _IOLBF, BUFSIZ)
else:
c_setvbuf(ll_f, lltype.nullptr(rffi.CCHARP.TO), _IOFBF, buffering)
- return RFile(ll_f, mode)
+ return RFile(ll_f)
def create_temp_rfile():
@@ -159,7 +159,7 @@
finally:
lltype.free(ll_mode, flavor='raw')
_dircheck(ll_f)
- return RFile(ll_f, mode)
+ return RFile(ll_f)
def create_popen_file(command, type):
@@ -179,33 +179,15 @@
class RFile(object):
- readable = False
- writable = False
-
- def __init__(self, ll_file, mode='+'):
+ def __init__(self, ll_file):
self.ll_file = ll_file
- if 'r' in mode:
- self.readable = True
- if 'w' in mode or 'a' in mode:
- self.writable = True
- if '+' in mode:
- self.readable = self.writable = True
def _check_closed(self):
if not self.ll_file:
raise ValueError("I/O operation on closed file")
- def _check_reading(self):
- if not self.readable:
- raise OSError(0, "File not open for reading")
-
- def _check_writing(self):
- if not self.writable:
- raise OSError(0, "File not open for writing")
-
def write(self, value):
self._check_closed()
- self._check_writing()
assert value is not None
ll_value = rffi.get_nonmovingbuffer(value)
try:
@@ -243,7 +225,6 @@
def read(self, size=-1):
# XXX CPython uses a more delicate logic here
self._check_closed()
- self._check_reading()
ll_file = self.ll_file
if size == 0:
return ""
@@ -301,7 +282,6 @@
def truncate(self, arg=-1):
self._check_closed()
- self._check_writing()
if arg == -1:
arg = self.tell()
self.flush()
@@ -349,7 +329,6 @@
def readline(self, size=-1):
self._check_closed()
- self._check_reading()
if size == 0:
return ""
elif size < 0:
diff --git a/rpython/rlib/test/test_rfile.py b/rpython/rlib/test/test_rfile.py
--- a/rpython/rlib/test/test_rfile.py
+++ b/rpython/rlib/test/test_rfile.py
@@ -112,28 +112,10 @@
def f():
f = open(fname, "w")
- try:
- f.read()
- except exc as e:
- assert e.errno == errno
- else:
- assert False
- try:
- f.readline()
- except exc as e:
- assert e.errno == errno
- else:
- assert False
f.write("dupa\x00dupb")
f.close()
for mode in ['r', 'U']:
f2 = open(fname, mode)
- try:
- f2.write('')
- except exc as e:
- assert e.errno == errno
- else:
- assert False
dupa = f2.read(0)
assert dupa == ""
dupa = f2.read()
@@ -150,9 +132,7 @@
assert dupa == "dupa\x00dupb"
f2.close()
- exc = IOError; errno = None
f()
- exc = OSError; errno = 0
self.interpret(f, [])
def test_read_sequentially(self):
@@ -208,19 +188,11 @@
new_fno = os.dup(f.fileno())
f2 = os.fdopen(new_fno, "w")
f.close()
- try:
- f2.read()
- except exc as e:
- assert e.errno == errno
- else:
- assert False
f2.write("xxx")
f2.close()
- exc = IOError; errno = None
f()
assert open(fname).read() == "xxx"
- exc = OSError; errno = 0
self.interpret(f, [])
assert open(fname).read() == "xxx"
@@ -277,18 +249,8 @@
data = f.read()
assert data == "hello w"
f.close()
- f = open(fname)
- try:
- f.truncate()
- except exc as e:
- assert e.errno == errno
- else:
- assert False
- f.close()
- exc = IOError; errno = None
f()
- exc = OSError; errno = 0
self.interpret(f, [])
More information about the pypy-commit
mailing list