[pypy-svn] r49412 - in pypy/branch/pypy-interp-file/module/_file: . test

arigo at codespeak.net arigo at codespeak.net
Wed Dec 5 20:13:02 CET 2007


Author: arigo
Date: Wed Dec  5 20:13:02 2007
New Revision: 49412

Modified:
   pypy/branch/pypy-interp-file/module/_file/app_file.py
   pypy/branch/pypy-interp-file/module/_file/interp_file.py
   pypy/branch/pypy-interp-file/module/_file/test/test_file_extra.py
Log:
Fix test.  More file properties.


Modified: pypy/branch/pypy-interp-file/module/_file/app_file.py
==============================================================================
--- pypy/branch/pypy-interp-file/module/_file/app_file.py	(original)
+++ pypy/branch/pypy-interp-file/module/_file/app_file.py	Wed Dec  5 20:13:02 2007
@@ -83,7 +83,7 @@
                         doc = "file mode ('r', 'U', 'w', 'a', "
                               "possibly with 'b' or '+' added)")
     #name     = property(lambda self: self._name, doc = "file name")
-    closed   = property(lambda self: self._closed,
+    #closed   = property(lambda self: self._closed,
                         doc = "True if the file is closed")
     #newlines = property(lambda self: self.getnewlines(),
     #                    doc = "end-of-line convention used in this file")

Modified: pypy/branch/pypy-interp-file/module/_file/interp_file.py
==============================================================================
--- pypy/branch/pypy-interp-file/module/_file/interp_file.py	(original)
+++ pypy/branch/pypy-interp-file/module/_file/interp_file.py	Wed Dec  5 20:13:02 2007
@@ -332,6 +332,9 @@
     return space.wrap(file)
 descr_file_fdopen.unwrap_spec = [ObjSpace, W_Root, int, str, int]
 
+def descr_file_closed(space, file):
+    return space.wrap(file.stream is None)
+
 def descr_file_newlines(space, file):
     newlines = file.getstream().getnewlines()
     if newlines == 0:
@@ -351,6 +354,13 @@
         result.append(space.wrap('\r\n'))
     return space.newtuple(result)
 
+def descr_file_softspace(space, file):
+    return space.wrap(file.softspace)
+
+def descr_file_setsoftspace(space, file, w_newvalue):
+    file.softspace = space.int_w(w_newvalue)
+
+# ____________________________________________________________
 
 W_File.typedef = TypeDef(
     "file",
@@ -377,8 +387,14 @@
     mode     = interp_attrproperty('mode', cls=W_File,
                               doc = "file mode ('r', 'U', 'w', 'a', "
                                     "possibly with 'b' or '+' added)"),
+    closed   = GetSetProperty(descr_file_closed, cls=W_File,
+                              doc="True if the file is closed"),
     newlines = GetSetProperty(descr_file_newlines, cls=W_File,
                               doc="end-of-line convention used in this file"),
+    softspace= GetSetProperty(descr_file_softspace,
+                              descr_file_setsoftspace,
+                              cls=W_File,
+                              doc="Support for 'print'."),
     __repr__ = interp2app(W_File.file__repr__),
     **dict([(name, interp2app(getattr(W_File, 'file_' + name)))
                 for name in W_File._exposed_method_names])

Modified: pypy/branch/pypy-interp-file/module/_file/test/test_file_extra.py
==============================================================================
--- pypy/branch/pypy-interp-file/module/_file/test/test_file_extra.py	(original)
+++ pypy/branch/pypy-interp-file/module/_file/test/test_file_extra.py	Wed Dec  5 20:13:02 2007
@@ -76,7 +76,7 @@
             inputline = self.file.next()
             assert inputline == sampleline
         for i in range(5):
-            py.test.raises(StopIteration, self.file.next)
+            raises(StopIteration, self.file.next)
 
     def test_read(self):
         import random
@@ -185,10 +185,10 @@
             assert f.mode == self.expected_mode
         assert f.closed == False
         assert not f.softspace
-        py.test.raises((TypeError, AttributeError), 'f.name = 42')
-        py.test.raises((TypeError, AttributeError), 'f.name = "stuff"')
-        py.test.raises((TypeError, AttributeError), 'f.mode = "r"')
-        py.test.raises((TypeError, AttributeError), 'f.closed = True')
+        raises((TypeError, AttributeError), 'f.name = 42')
+        raises((TypeError, AttributeError), 'f.name = "stuff"')
+        raises((TypeError, AttributeError), 'f.mode = "r"')
+        raises((TypeError, AttributeError), 'f.closed = True')
         f.softspace = True
         assert f.softspace
         f.softspace = False
@@ -215,6 +215,8 @@
             space.wrap(self.expected_mode),
             *[space.wrap(a) for a in self.extra_args])
         self.w_sample = space.wrap(SAMPLE)
+        self.w_expected_filename = space.wrap(self.expected_filename)
+        self.w_expected_mode = space.wrap(self.expected_mode)
         self.w_expected_lines = space.wrap(self.get_expected_lines())
 
     def teardown_method(self, method):
@@ -317,7 +319,7 @@
     assert f.mode == 'w'
     assert f.closed == False
     assert f.encoding == None # Fix when we find out what this is
-    py.test.raises((TypeError, AttributeError), setattr, f, 'name', 42)
+    raises((TypeError, AttributeError), setattr, f, 'name', 42)
 
 def app_test_readlines():
     fn = str(udir.join('temptestfile'))


More information about the pypy-svn mailing list