[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