Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(857)

Unified Diff: third_party/twisted_8_1/twisted/test/test_paths.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/twisted_8_1/twisted/test/test_nmea.py ('k') | third_party/twisted_8_1/twisted/test/test_pb.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/twisted_8_1/twisted/test/test_paths.py
diff --git a/third_party/twisted_8_1/twisted/test/test_paths.py b/third_party/twisted_8_1/twisted/test/test_paths.py
deleted file mode 100644
index fe4f925eceec290ab1535e04ffa011f6ebc9354a..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/test/test_paths.py
+++ /dev/null
@@ -1,648 +0,0 @@
-# Copyright (c) 2001-2008 Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-"""
-Test cases covering L{twisted.python.filepath} and L{twisted.python.zippath}.
-"""
-
-import os, time, pickle, errno, zipfile, stat
-
-from twisted.python.win32 import WindowsError, ERROR_DIRECTORY
-from twisted.python import filepath
-from twisted.python.zippath import ZipArchive
-from twisted.python.runtime import platform
-
-from twisted.trial import unittest
-
-
-class AbstractFilePathTestCase(unittest.TestCase):
-
- f1content = "file 1"
- f2content = "file 2"
-
- def _mkpath(self, *p):
- x = os.path.abspath(os.path.join(self.cmn, *p))
- self.all.append(x)
- return x
-
- def subdir(self, *dirname):
- os.mkdir(self._mkpath(*dirname))
-
- def subfile(self, *dirname):
- return open(self._mkpath(*dirname), "wb")
-
- def setUp(self):
- self.now = time.time()
- cmn = self.cmn = os.path.abspath(self.mktemp())
- self.all = [cmn]
- os.mkdir(cmn)
- self.subdir("sub1")
- f = self.subfile("file1")
- f.write(self.f1content)
- f = self.subfile("sub1", "file2")
- f.write(self.f2content)
- self.subdir('sub3')
- f = self.subfile("sub3", "file3.ext1")
- f = self.subfile("sub3", "file3.ext2")
- f = self.subfile("sub3", "file3.ext3")
- self.all.sort()
-
- self.path = filepath.FilePath(cmn)
-
- def test_segmentsFromPositive(self):
- """
- Verify that the segments between two paths are correctly identified.
- """
- self.assertEquals(
- self.path.child("a").child("b").child("c").segmentsFrom(self.path),
- ["a", "b", "c"])
-
- def test_segmentsFromNegative(self):
- """Verify that segmentsFrom notices when the ancestor isn't an ancestor.
- """
- self.assertRaises(
- ValueError,
- self.path.child("a").child("b").child("c").segmentsFrom,
- self.path.child("d").child("c").child("e"))
-
- def test_walk(self):
- """Verify that walking the path gives the same result as the known file
- hierarchy.
- """
- x = [foo.path for foo in self.path.walk()]
- x.sort()
- self.assertEquals(x, self.all)
-
- def test_validSubdir(self):
- """Verify that a valid subdirectory will show up as a directory, but not as a
- file, not as a symlink, and be listable.
- """
- sub1 = self.path.child('sub1')
- self.failUnless(sub1.exists(),
- "This directory does exist.")
- self.failUnless(sub1.isdir(),
- "It's a directory.")
- self.failUnless(not sub1.isfile(),
- "It's a directory.")
- self.failUnless(not sub1.islink(),
- "It's a directory.")
- self.failUnlessEqual(sub1.listdir(),
- ['file2'])
-
-
- def test_invalidSubdir(self):
- """
- Verify that a subdirectory that doesn't exist is reported as such.
- """
- sub2 = self.path.child('sub2')
- self.failIf(sub2.exists(),
- "This directory does not exist.")
-
- def test_validFiles(self):
- """
- Make sure that we can read existent non-empty files.
- """
- f1 = self.path.child('file1')
- self.failUnlessEqual(f1.open().read(), self.f1content)
- f2 = self.path.child('sub1').child('file2')
- self.failUnlessEqual(f2.open().read(), self.f2content)
-
-
- def test_dictionaryKeys(self):
- """
- Verify that path instances are usable as dictionary keys.
- """
- f1 = self.path.child('file1')
- f1prime = self.path.child('file1')
- f2 = self.path.child('file2')
- dictoid = {}
- dictoid[f1] = 3
- dictoid[f1prime] = 4
- self.assertEquals(dictoid[f1], 4)
- self.assertEquals(dictoid.keys(), [f1])
- self.assertIdentical(dictoid.keys()[0], f1)
- self.assertNotIdentical(dictoid.keys()[0], f1prime) # sanity check
- dictoid[f2] = 5
- self.assertEquals(dictoid[f2], 5)
- self.assertEquals(len(dictoid), 2)
-
-
- def test_dictionaryKeyWithString(self):
- """
- Verify that path instances are usable as dictionary keys which do not clash
- with their string counterparts.
- """
- f1 = self.path.child('file1')
- dictoid = {f1: 'hello'}
- dictoid[f1.path] = 'goodbye'
- self.assertEquals(len(dictoid), 2)
-
-
- def test_childrenNonexistentError(self):
- """
- Verify that children raises the appropriate exception for non-existent
- directories.
- """
- self.assertRaises(filepath.UnlistableError,
- self.path.child('not real').children)
-
- def test_childrenNotDirectoryError(self):
- """
- Verify that listdir raises the appropriate exception for attempting to list
- a file rather than a directory.
- """
- self.assertRaises(filepath.UnlistableError,
- self.path.child('file1').children)
-
-
- def test_newTimesAreFloats(self):
- """
- Verify that all times returned from the various new time functions are ints
- (and hopefully therefore 'high precision').
- """
- for p in self.path, self.path.child('file1'):
- self.failUnlessEqual(type(p.getAccessTime()), float)
- self.failUnlessEqual(type(p.getModificationTime()), float)
- self.failUnlessEqual(type(p.getStatusChangeTime()), float)
-
-
- def test_oldTimesAreInts(self):
- """
- Verify that all times returned from the various time functions are
- integers, for compatibility.
- """
- for p in self.path, self.path.child('file1'):
- self.failUnlessEqual(type(p.getatime()), int)
- self.failUnlessEqual(type(p.getmtime()), int)
- self.failUnlessEqual(type(p.getctime()), int)
-
-
-
-class FakeWindowsPath(filepath.FilePath):
- """
- A test version of FilePath which overrides listdir to raise L{WindowsError}.
- """
-
- def listdir(self):
- """
- @raise WindowsError: always.
- """
- raise WindowsError(
- ERROR_DIRECTORY,
- "A directory's validness was called into question")
-
-
-class ListingCompatibilityTests(unittest.TestCase):
- """
- These tests verify compatibility with legacy behavior of directory listing.
- """
-
- def test_windowsErrorExcept(self):
- """
- Verify that when a WindowsError is raised from listdir, catching
- WindowsError works.
- """
- fwp = FakeWindowsPath(self.mktemp())
- self.assertRaises(filepath.UnlistableError, fwp.children)
- self.assertRaises(WindowsError, fwp.children)
-
-
- def test_alwaysCatchOSError(self):
- """
- Verify that in the normal case where a directory does not exist, we will
- get an OSError.
- """
- fp = filepath.FilePath(self.mktemp())
- self.assertRaises(OSError, fp.children)
-
-
- def test_keepOriginalAttributes(self):
- """
- Verify that the Unlistable exception raised will preserve the attributes of
- the previously-raised exception.
- """
- fp = filepath.FilePath(self.mktemp())
- ose = self.assertRaises(OSError, fp.children)
- d1 = ose.__dict__.keys()
- d1.remove('originalException')
- d2 = ose.originalException.__dict__.keys()
- d1.sort()
- d2.sort()
- self.assertEquals(d1, d2)
-
-
-
-def zipit(dirname, zfname):
- """
- create a zipfile on zfname, containing the contents of dirname'
- """
- zf = zipfile.ZipFile(zfname, "w")
- basedir = os.path.basename(dirname)
- for root, dirs, files, in os.walk(dirname):
- for fname in files:
- fspath = os.path.join(root, fname)
- arcpath = os.path.join(root, fname)[len(dirname)+1:]
- # print fspath, '=>', arcpath
- zf.write(fspath, arcpath)
- zf.close()
-
-class ZipFilePathTestCase(AbstractFilePathTestCase):
-
- def setUp(self):
- AbstractFilePathTestCase.setUp(self)
- zipit(self.cmn, self.cmn+'.zip')
- self.path = ZipArchive(self.cmn+'.zip')
- self.all = [x.replace(self.cmn, self.cmn+'.zip') for x in self.all]
-
-
-class FilePathTestCase(AbstractFilePathTestCase):
-
- def test_chmod(self):
- """
- Make sure that calling L{FilePath.chmod} modifies the permissions of
- the passed file as expected (using C{os.stat} to check). We use some
- basic modes that should work everywhere (even on Windows).
- """
- for mode in (0555, 0777):
- self.path.child("sub1").chmod(mode)
- self.assertEquals(
- stat.S_IMODE(os.stat(self.path.child("sub1").path).st_mode),
- mode)
-
-
- def test_getAndSet(self):
- content = 'newcontent'
- self.path.child('new').setContent(content)
- newcontent = self.path.child('new').getContent()
- self.failUnlessEqual(content, newcontent)
- content = 'content'
- self.path.child('new').setContent(content, '.tmp')
- newcontent = self.path.child('new').getContent()
- self.failUnlessEqual(content, newcontent)
-
-
- def test_symbolicLink(self):
- """
- Verify the behavior of the C{isLink} method against links and
- non-links. Also check that the symbolic link shares the directory
- property with its target.
- """
- s4 = self.path.child("sub4")
- s3 = self.path.child("sub3")
- os.symlink(s3.path, s4.path)
- self.assertTrue(s4.islink())
- self.assertFalse(s3.islink())
- self.assertTrue(s4.isdir())
- self.assertTrue(s3.isdir())
-
-
- def test_linkTo(self):
- """
- Verify that symlink creates a valid symlink that is both a link and a
- file if its target is a file, or a directory if its target is a
- directory.
- """
- targetLinks = [
- (self.path.child("sub2"), self.path.child("sub2.link")),
- (self.path.child("sub2").child("file3.ext1"),
- self.path.child("file3.ext1.link"))
- ]
- for target, link in targetLinks:
- target.linkTo(link)
- self.assertTrue(link.islink(), "This is a link")
- self.assertEquals(target.isdir(), link.isdir())
- self.assertEquals(target.isfile(), link.isfile())
-
-
- def test_linkToErrors(self):
- """
- Verify C{linkTo} fails in the following case:
- - the target is in a directory that doesn't exist
- - the target already exists
- """
- self.assertRaises(OSError, self.path.child("file1").linkTo,
- self.path.child('nosub').child('file1'))
- self.assertRaises(OSError, self.path.child("file1").linkTo,
- self.path.child('sub1').child('file2'))
-
-
- if not getattr(os, "symlink", None):
- skipMsg = "Your platform does not support symbolic links."
- test_symbolicLink.skip = skipMsg
- test_linkTo.skip = skipMsg
- test_linkToErrors.skip = skipMsg
-
-
- def testMultiExt(self):
- f3 = self.path.child('sub3').child('file3')
- exts = '.foo','.bar', 'ext1','ext2','ext3'
- self.failIf(f3.siblingExtensionSearch(*exts))
- f3e = f3.siblingExtension(".foo")
- f3e.touch()
- self.failIf(not f3.siblingExtensionSearch(*exts).exists())
- self.failIf(not f3.siblingExtensionSearch('*').exists())
- f3e.remove()
- self.failIf(f3.siblingExtensionSearch(*exts))
-
- def testPreauthChild(self):
- fp = filepath.FilePath('.')
- fp.preauthChild('foo/bar')
- self.assertRaises(filepath.InsecurePath, fp.child, '/foo')
-
- def testStatCache(self):
- p = self.path.child('stattest')
- p.touch()
- self.failUnlessEqual(p.getsize(), 0)
- self.failUnlessEqual(abs(p.getmtime() - time.time()) // 20, 0)
- self.failUnlessEqual(abs(p.getctime() - time.time()) // 20, 0)
- self.failUnlessEqual(abs(p.getatime() - time.time()) // 20, 0)
- self.failUnlessEqual(p.exists(), True)
- self.failUnlessEqual(p.exists(), True)
- # OOB removal: FilePath.remove() will automatically restat
- os.remove(p.path)
- # test caching
- self.failUnlessEqual(p.exists(), True)
- p.restat(reraise=False)
- self.failUnlessEqual(p.exists(), False)
- self.failUnlessEqual(p.islink(), False)
- self.failUnlessEqual(p.isdir(), False)
- self.failUnlessEqual(p.isfile(), False)
-
- def testPersist(self):
- newpath = pickle.loads(pickle.dumps(self.path))
- self.failUnlessEqual(self.path.__class__, newpath.__class__)
- self.failUnlessEqual(self.path.path, newpath.path)
-
- def testInsecureUNIX(self):
- self.assertRaises(filepath.InsecurePath, self.path.child, "..")
- self.assertRaises(filepath.InsecurePath, self.path.child, "/etc")
- self.assertRaises(filepath.InsecurePath, self.path.child, "../..")
-
- def testInsecureWin32(self):
- self.assertRaises(filepath.InsecurePath, self.path.child, r"..\..")
- self.assertRaises(filepath.InsecurePath, self.path.child, r"C:randomfile")
-
- if platform.getType() != 'win32':
- testInsecureWin32.skip = "Consider yourself lucky."
-
- def testInsecureWin32Whacky(self):
- """Windows has 'special' filenames like NUL and CON and COM1 and LPR
- and PRN and ... god knows what else. They can be located anywhere in
- the filesystem. For obvious reasons, we do not wish to normally permit
- access to these.
- """
- self.assertRaises(filepath.InsecurePath, self.path.child, "CON")
- self.assertRaises(filepath.InsecurePath, self.path.child, "C:CON")
- self.assertRaises(filepath.InsecurePath, self.path.child, r"C:\CON")
-
- if platform.getType() != 'win32':
- testInsecureWin32Whacky.skip = "Consider yourself lucky."
-
- def testComparison(self):
- self.assertEquals(filepath.FilePath('a'),
- filepath.FilePath('a'))
- self.failUnless(filepath.FilePath('z') >
- filepath.FilePath('a'))
- self.failUnless(filepath.FilePath('z') >=
- filepath.FilePath('a'))
- self.failUnless(filepath.FilePath('a') >=
- filepath.FilePath('a'))
- self.failUnless(filepath.FilePath('a') <=
- filepath.FilePath('a'))
- self.failUnless(filepath.FilePath('a') <
- filepath.FilePath('z'))
- self.failUnless(filepath.FilePath('a') <=
- filepath.FilePath('z'))
- self.failUnless(filepath.FilePath('a') !=
- filepath.FilePath('z'))
- self.failUnless(filepath.FilePath('z') !=
- filepath.FilePath('a'))
-
- self.failIf(filepath.FilePath('z') !=
- filepath.FilePath('z'))
-
- def testSibling(self):
- p = self.path.child('sibling_start')
- ts = p.sibling('sibling_test')
- self.assertEquals(ts.dirname(), p.dirname())
- self.assertEquals(ts.basename(), 'sibling_test')
- ts.createDirectory()
- self.assertIn(ts, self.path.children())
-
- def testTemporarySibling(self):
- ts = self.path.temporarySibling()
- self.assertEquals(ts.dirname(), self.path.dirname())
- self.assertNotIn(ts.basename(), self.path.listdir())
- ts.createDirectory()
- self.assertIn(ts, self.path.parent().children())
-
- def testRemove(self):
- self.path.remove()
- self.failIf(self.path.exists())
-
-
- def test_removeWithSymlink(self):
- """
- For a path which is a symbolic link, L{FilePath.remove} just deletes
- the link, not the target.
- """
- link = self.path.child("sub1.link")
- # setUp creates the sub1 child
- os.symlink(self.path.child("sub1").path, link.path)
- link.remove()
- self.assertFalse(link.exists())
- self.assertTrue(self.path.child("sub1").exists())
-
- if getattr(os, 'symlink', None) is None:
- test_removeWithSymlink.skip = "Platform doesn't support symbolic links"
-
-
- def testCopyTo(self):
- self.assertRaises((OSError, IOError), self.path.copyTo, self.path.child('file1'))
- oldPaths = list(self.path.walk()) # Record initial state
- fp = filepath.FilePath(self.mktemp())
- self.path.copyTo(fp)
- self.path.remove()
- fp.copyTo(self.path)
- newPaths = list(self.path.walk()) # Record double-copy state
- newPaths.sort()
- oldPaths.sort()
- self.assertEquals(newPaths, oldPaths)
-
- def testMoveTo(self):
- self.assertRaises((OSError, IOError), self.path.moveTo, self.path.child('file1'))
- oldPaths = list(self.path.walk()) # Record initial state
- fp = filepath.FilePath(self.mktemp())
- self.path.moveTo(fp)
- fp.moveTo(self.path)
- newPaths = list(self.path.walk()) # Record double-move state
- newPaths.sort()
- oldPaths.sort()
- self.assertEquals(newPaths, oldPaths)
-
-
- def test_crossMountMoveTo(self):
- """
- C{moveTo} should be able to handle C{EXDEV} error raised by
- C{os.rename} when trying to move a file on a different mounted
- filesystem.
- """
- # Bit of a whitebox test - force os.rename, which moveTo tries
- # before falling back to a slower method, to fail, forcing moveTo to
- # use the slower behavior.
- invokedWith = []
- def faultyRename(src, dest):
- invokedWith.append((src, dest))
- if len(invokedWith) == 2:
- raise OSError(errno.EXDEV, 'Test-induced failure simulating cross-device rename failure')
- return originalRename(src, dest)
-
- originalRename = os.rename
- os.rename = faultyRename
- try:
- self.testMoveTo()
- # A bit of a sanity check for this whitebox test - if our rename
- # was never invoked, the test has probably fallen into
- # disrepair!
- self.failUnless(len(invokedWith) >= 2)
- finally:
- os.rename = originalRename
-
-
- def testOpen(self):
- # Opening a file for reading when it does not already exist is an error
- nonexistent = self.path.child('nonexistent')
- e = self.assertRaises(IOError, nonexistent.open)
- self.assertEquals(e.errno, errno.ENOENT)
-
- # Opening a file for writing when it does not exist is okay
- writer = self.path.child('writer')
- f = writer.open('w')
- f.write('abc\ndef')
- f.close()
-
- # Make sure those bytes ended up there - and test opening a file for
- # reading when it does exist at the same time
- f = writer.open()
- self.assertEquals(f.read(), 'abc\ndef')
- f.close()
-
- # Re-opening that file in write mode should erase whatever was there.
- f = writer.open('w')
- f.close()
- f = writer.open()
- self.assertEquals(f.read(), '')
- f.close()
-
- # Put some bytes in a file so we can test that appending does not
- # destroy them.
- appender = self.path.child('appender')
- f = appender.open('w')
- f.write('abc')
- f.close()
-
- f = appender.open('a')
- f.write('def')
- f.close()
-
- f = appender.open('r')
- self.assertEquals(f.read(), 'abcdef')
- f.close()
-
- # read/write should let us do both without erasing those bytes
- f = appender.open('r+')
- self.assertEquals(f.read(), 'abcdef')
- # ANSI C *requires* an fseek or an fgetpos between an fread and an
- # fwrite or an fwrite and a fread. We can't reliable get Python to
- # invoke fgetpos, so we seek to a 0 byte offset from the current
- # position instead. Also, Python sucks for making this seek
- # relative to 1 instead of a symbolic constant representing the
- # current file position.
- f.seek(0, 1)
- # Put in some new bytes for us to test for later.
- f.write('ghi')
- f.close()
-
- # Make sure those new bytes really showed up
- f = appender.open('r')
- self.assertEquals(f.read(), 'abcdefghi')
- f.close()
-
- # write/read should let us do both, but erase anything that's there
- # already.
- f = appender.open('w+')
- self.assertEquals(f.read(), '')
- f.seek(0, 1) # Don't forget this!
- f.write('123')
- f.close()
-
- # super append mode should let us read and write and also position the
- # cursor at the end of the file, without erasing everything.
- f = appender.open('a+')
-
- # The order of these lines may seem surprising, but it is necessary.
- # The cursor is not at the end of the file until after the first write.
- f.write('456')
- f.seek(0, 1) # Asinine.
- self.assertEquals(f.read(), '')
-
- f.seek(0, 0)
- self.assertEquals(f.read(), '123456')
- f.close()
-
- # Opening a file exclusively must fail if that file exists already.
- nonexistent.requireCreate(True)
- nonexistent.open('w').close()
- existent = nonexistent
- del nonexistent
- self.assertRaises((OSError, IOError), existent.open)
-
-
- def test_existsCache(self):
- """
- Check that C{filepath.FilePath.exists} correctly restat the object if
- an operation has occurred in the mean time.
- """
- fp = filepath.FilePath(self.mktemp())
- self.assertEquals(fp.exists(), False)
-
- fp.makedirs()
- self.assertEquals(fp.exists(), True)
-
-
-
-from twisted.python import urlpath
-
-class URLPathTestCase(unittest.TestCase):
- def setUp(self):
- self.path = urlpath.URLPath.fromString("http://example.com/foo/bar?yes=no&no=yes#footer")
-
- def testStringConversion(self):
- self.assertEquals(str(self.path), "http://example.com/foo/bar?yes=no&no=yes#footer")
-
- def testChildString(self):
- self.assertEquals(str(self.path.child('hello')), "http://example.com/foo/bar/hello")
- self.assertEquals(str(self.path.child('hello').child('')), "http://example.com/foo/bar/hello/")
-
- def testSiblingString(self):
- self.assertEquals(str(self.path.sibling('baz')), 'http://example.com/foo/baz')
-
- # The sibling of http://example.com/foo/bar/
- # is http://example.comf/foo/bar/baz
- # because really we are constructing a sibling of
- # http://example.com/foo/bar/index.html
- self.assertEquals(str(self.path.child('').sibling('baz')), 'http://example.com/foo/bar/baz')
-
- def testParentString(self):
- # parent should be equivalent to '..'
- # 'foo' is the current directory, '/' is the parent directory
- self.assertEquals(str(self.path.parent()), 'http://example.com/')
- self.assertEquals(str(self.path.child('').parent()), 'http://example.com/foo/')
- self.assertEquals(str(self.path.child('baz').parent()), 'http://example.com/foo/')
- self.assertEquals(str(self.path.parent().parent().parent().parent().parent()), 'http://example.com/')
-
- def testHereString(self):
- # here should be equivalent to '.'
- self.assertEquals(str(self.path.here()), 'http://example.com/foo/')
- self.assertEquals(str(self.path.child('').here()), 'http://example.com/foo/bar/')
-
« no previous file with comments | « third_party/twisted_8_1/twisted/test/test_nmea.py ('k') | third_party/twisted_8_1/twisted/test/test_pb.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698