[Zope-Checkins] CVS: Zope3/lib/python/Zope/Server/VFS/tests - testOSFileSystem.py:1.1.2.7

Shane Hathaway shane@cvs.zope.org
Mon, 8 Apr 2002 16:49:21 -0400


Update of /cvs-repository/Zope3/lib/python/Zope/Server/VFS/tests
In directory cvs.zope.org:/tmp/cvs-serv25380

Modified Files:
      Tag: Zope3-Server-Branch
	testOSFileSystem.py 
Log Message:
Brought OSFilesystem tests up to date


=== Zope3/lib/python/Zope/Server/VFS/tests/testOSFileSystem.py 1.1.2.6 => 1.1.2.7 ===
 import stat
 import tempfile
+from StringIO import StringIO
 
 from Interface.Verify import verifyClass
 from Zope.Server.VFS.IReadFileSystem import IReadFileSystem
@@ -120,10 +121,12 @@
         os.remove(path)
 
 
-    def testOpen(self):
+    def testReadfile(self):
         path = os.path.join(self.root, 'foo')
         open(path, 'w').write('writing test')
-        self.assertEqual(self.filesystem.open('foo', 'r').read(), 'writing test')
+        s = StringIO()
+        self.filesystem.readfile('foo', 'r', s)
+        self.assertEqual(s.getvalue(), 'writing test')
         os.remove(path)
 
 
@@ -207,19 +210,31 @@
         os.remove(path+'1')
 
 
-    def testUnlink(self):
+    def testWritefile(self):
+        s = StringIO('foo bar')
+        self.filesystem.writefile('foo', 'w', s)
         path = os.path.join(self.root, 'foo')
-        open(path, 'w').write('writing test')
-        self.filesystem.unlink('foo')
-        self.failIf(os.path.exists(path))
-
-
-    def testWrite(self):
-        path = os.path.join(self.root, 'foo')
-        file = open(path, 'w')
-        self.assertEqual(self.filesystem.write(file.fileno(), 'foo bar'), 7)
+        file = open(path, 'r')
+        self.assertEqual(file.read(), 'foo bar')
         file.close()
         os.remove(path)
+
+
+    def testCheckWriteable(self):
+        s = StringIO()
+        dirpath = os.path.join(self.root, 'somename')
+        os.mkdir(dirpath)
+        try:
+            # Can't overwrite a directory.
+            self.assertRaises(
+                IOError, self.filesystem.writefile, 'somename', 'w', s)
+        finally:
+            os.rmdir(dirpath)
+        try:
+            # Now it's ok.
+            self.filesystem.writefile('somename', 'w', s)
+        finally:
+            os.remove(dirpath)
 
 
     def testInterface(self):