From: Brian Warner <warner@allmydata.com>
Date: Wed, 17 Jan 2007 22:34:29 +0000 (-0700)
Subject: improve test coverage a bit
X-Git-Tag: tahoe_v0.1.0-0-UNSTABLE~357
X-Git-Url: https://git.rkrishnan.org/vdrive/%22file:/frontends/(%5B%5E?a=commitdiff_plain;h=56df1a48f425605ff6bd6591d3f94f38103eb7a2;p=tahoe-lafs%2Ftahoe-lafs.git

improve test coverage a bit
---

diff --git a/src/allmydata/filetable.py b/src/allmydata/filetable.py
index 7b8c0e19..f0f2b492 100644
--- a/src/allmydata/filetable.py
+++ b/src/allmydata/filetable.py
@@ -13,6 +13,8 @@ class BadDirectoryError(Exception):
     """There was a problem with the directory being referenced."""
 class BadFileError(Exception):
     """The file being referenced does not exist."""
+class BadNameError(Exception):
+    """Bad filename component"""
 
 class MutableDirectoryNode(Referenceable):
     implements(RIMutableDirectoryNode)
@@ -25,7 +27,7 @@ class MutableDirectoryNode(Referenceable):
 
     def validate_name(self, name):
         if name == "." or name == ".." or "/" in name:
-            raise DeadDirectoryNodeError("bad filename component")
+            raise BadNameError("'%s' is not cool" % name)
 
     # these are the public methods, available to anyone who holds a reference
 
diff --git a/src/allmydata/test/test_filetable.py b/src/allmydata/test/test_filetable.py
index f72a9d31..f4a5a662 100644
--- a/src/allmydata/test/test_filetable.py
+++ b/src/allmydata/test/test_filetable.py
@@ -1,8 +1,8 @@
 
 import os
 from twisted.trial import unittest
-from allmydata.filetable import MutableDirectoryNode, \
-     DeadDirectoryNodeError, BadDirectoryError, BadFileError
+from allmydata.filetable import (MutableDirectoryNode, DeadDirectoryNodeError,
+                                 BadDirectoryError, BadFileError, BadNameError)
 
 
 class FileTable(unittest.TestCase):
@@ -21,6 +21,9 @@ class FileTable(unittest.TestCase):
 
         self.failUnlessEqual(root.get("one"), "vid-one")
         self.failUnlessRaises(BadFileError, root.get, "missing")
+        self.failUnlessRaises(BadNameError, root.get, "/etc/passwd") # evil
+        self.failUnlessRaises(BadNameError, root.get, "..") # sneaky
+        self.failUnlessRaises(BadNameError, root.get, ".") # dumb
 
         # now play with directories
         subdir1 = root.add_directory("subdir1")
diff --git a/src/allmydata/test/test_filetree_new.py b/src/allmydata/test/test_filetree_new.py
index 1ce1432a..a7434376 100644
--- a/src/allmydata/test/test_filetree_new.py
+++ b/src/allmydata/test/test_filetree_new.py
@@ -254,12 +254,12 @@ class MultipleSubTrees(unittest.TestCase):
         o = FakeOpener({("CHK-Directory", "dir_three_uri"): st2})
 
         d = defer.succeed(None)
-        #d.addCallback(lambda res:
-        #              st1.get(["one", "two", "three", "four", "five"], o))
+        d.addCallback(lambda res:
+                      st1.get(["one", "two", "three", "four", "five"], o))
         def _got_five(res):
             self.failUnless(IDirectoryNode.providedBy(res))
             self.failUnlessIdentical(res, five)
-        #d.addCallback(_got_five)
+        d.addCallback(_got_five)
 
         d.addCallback(lambda res:
                       st1.add(["one", "two", "six"],
diff --git a/src/allmydata/test/test_system.py b/src/allmydata/test/test_system.py
index f2f53126..3ebc49f1 100644
--- a/src/allmydata/test/test_system.py
+++ b/src/allmydata/test/test_system.py
@@ -125,10 +125,6 @@ class SystemTest(unittest.TestCase):
             log.msg("download finished")
             self.failUnlessEqual(data, DATA)
         d.addCallback(_download_done)
-        def _oops(res):
-            log.msg("oops, an error orccurred, finishing: %s" % res)
-            return res
-        d.addErrback(_oops)
         return d
     test_upload_and_download.timeout = 20