[Zope-Checkins] CVS: Zope3/lib/python/Zope/Server/VFS/tests - testOSFileSystem.py:1.1.2.1
Stephan Richter
srichter@cbu.edu
Tue, 2 Apr 2002 13:13:06 -0500
Update of /cvs-repository/Zope3/lib/python/Zope/Server/VFS/tests
In directory cvs.zope.org:/tmp/cvs-serv23618/tests
Added Files:
Tag: Zope3-Server-Branch
testOSFileSystem.py
Log Message:
Issue 48: Comment
Here is the first cut of writing tests. Right now it tests only 2 methods
so far, but I keep working on it.
But now it is lunch time!
=== Added File Zope3/lib/python/Zope/Server/VFS/tests/testOSFileSystem.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""
$Id: testOSFileSystem.py,v 1.1.2.1 2002/04/02 18:13:06 srichter Exp $
"""
import unittest
import os
import tempfile
from Interface.Verify import verifyClass
from Zope.Server.VFS.IReadFileSystem import IReadFileSystem
from Zope.Server.VFS.IWriteFileSystem import IWriteFileSystem
from Zope.Server.VFS.OSFileSystem import OSFileSystem
class OSFileSystemTest(unittest.TestCase):
"""This test is constructed in a way that it builds up a directory
structure, whcih is removed at the end.
"""
filesystem_class = OSFileSystem
def setUp(self):
tempdir = tempfile.gettempdir()
self.root = os.path.join(tempdir, 'Test')
os.mkdir(self.root)
self.filesystem = self.filesystem_class(self.root)
def tearDown(self):
os.rmdir(self.root)
def testNormalize(self):
self.assertEqual(self.filesystem.normalize('/foo/bar//'), '/foo/bar')
self.assertEqual(self.filesystem.normalize('/foo//bar'), '/foo/bar')
self.assertEqual(self.filesystem.normalize('///foo/bar'), '/foo/bar')
self.assertEqual(self.filesystem.normalize('///foo//bar////'),
'/foo/bar')
self.assertEqual(self.filesystem.normalize('../foo/bar'), '/')
self.assertEqual(self.filesystem.normalize('..'), '/')
self.assertEqual(self.filesystem.normalize('/..'), '/')
self.assertEqual(self.filesystem.normalize('/foo/..'), '/')
self.assertEqual(self.filesystem.normalize('/foo/../bar'), '/bar')
self.assertEqual(self.filesystem.normalize('../../'), '/')
self.assertEqual(self.filesystem.normalize('///../foo/bar'), '/foo/bar')
self.assertEqual(self.filesystem.normalize('/foo/..///'), '/')
self.assertEqual(self.filesystem.normalize('///foo/..//bar'), '/bar')
self.assertEqual(self.filesystem.normalize('..///../'), '/')
def testTranslate(self):
self.assertEqual(self.filesystem.root, self.root)
self.assertEqual(self.filesystem.translate('/foo/'),
self.filesystem.path_module.join(self.root, 'foo'))
self.assertEqual(self.filesystem.translate('/foo/bar'),
self.filesystem.path_module.join(self.root,
'foo', 'bar'))
self.assertEqual(self.filesystem.translate('foo/bar'),
self.filesystem.path_module.join(self.root,
'foo', 'bar'))
def testInterface(self):
self.failUnless(
IReadFileSystem.isImplementedByInstancesOf(self.filesystem_class))
self.failUnless(verifyClass(IReadFileSystem, self.filesystem_class))
self.failUnless(
IWriteFileSystem.isImplementedByInstancesOf(self.filesystem_class))
self.failUnless(verifyClass(IWriteFileSystem, self.filesystem_class))
def test_suite():
loader = unittest.TestLoader()
return loader.loadTestsFromTestCase(OSFileSystemTest)
if __name__=='__main__':
unittest.TextTestRunner().run( test_suite() )