summaryrefslogtreecommitdiff
path: root/lib/thandy/tests.py
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2008-11-22 17:39:57 +0000
committerNick Mathewson <nickm@torproject.org>2008-11-22 17:39:57 +0000
commit6c78fd8ff6b3d39fbae85103bda0651ca2f764d9 (patch)
treef392cef3d3e0b3810964d8f8a3f594229f8bf90d /lib/thandy/tests.py
parent06b83a522f6f05aed23b6dca4bfd4eeb6e6b057a (diff)
more docs and tests
git-svn-id: file:///home/or/svnrepo/updater/trunk@17364 55e972cd-5a19-0410-ae62-a4d7a52db4cd
Diffstat (limited to 'lib/thandy/tests.py')
-rw-r--r--lib/thandy/tests.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/lib/thandy/tests.py b/lib/thandy/tests.py
index e2fb767..924fc82 100644
--- a/lib/thandy/tests.py
+++ b/lib/thandy/tests.py
@@ -9,9 +9,25 @@ import thandy.keys
import thandy.formats
import thandy.repository
import thandy.checkJson
+import thandy.util
import thandy.tests
+def deltree(top):
+ for dirpath, dirnames, filenames in os.walk(top, topdown=False):
+ for f in filenames:
+ os.unlink(os.path.join(dirpath, f))
+ for d in dirnames:
+ os.rmdir(os.path.join(dirpath, d))
+ os.rmdir(top)
+
+def contents(fn, mode='rb'):
+ f = open(fn, mode)
+ try:
+ return f.read()
+ finally:
+ f.close()
+
class CanonicalEncodingTest(unittest.TestCase):
def test_encode(self):
enc = thandy.formats.encodeCanonical
@@ -47,6 +63,59 @@ class CryptoTests(unittest.TestCase):
ks2.load(passwd)
self.assertEquals(key1.key.n, ks2.getKey(key1.getKeyID()).key.n)
+class UtilTests(unittest.TestCase):
+ def setUp(self):
+ self._dir = tempfile.mkdtemp()
+ def tearDown(self):
+ deltree(self._dir)
+
+ def test_replaceFile(self):
+ fn1 = os.path.join(self._dir, "File1")
+ S1="Why do you curtsey, commoner? I presumed this would be anonymous."
+ S2="I am simply guaranteeing your commitment to my anonymity."
+ # -- WIGU adventures, 24 March 2005.
+ thandy.util.replaceFile(fn1, S1)
+ self.assertEquals(contents(fn1), S1)
+ thandy.util.replaceFile(fn1, S2)
+ self.assertEquals(contents(fn1), S2)
+
+ self.assertEquals(os.listdir(self._dir), [ "File1" ])
+
+ def test_moveFile(self):
+ d = self._dir
+ os.mkdir(os.path.join(d, "subdir"))
+ fn1 = os.path.join(d, "f1")
+ fn2 = os.path.join(d, "f2")
+ fn3 = os.path.join(d, "subdir", "f3")
+ S1="""We monitor all citizens constantly to detect insider baddies!
+ Isn't it wondersome?!"""
+ S2="""Wondersome yes... But could such a tactic instill a sense of
+ distrust and fear in a populace that is overwhelmingly true and
+ pious?"""
+ S3="""I think the fact that we are not currently under siege by
+ unscrupulous minions speaks for itself."""
+ # -- WIGU adventures, 22 January 2004
+
+ thandy.util.replaceFile(fn1, S1)
+ thandy.util.replaceFile(fn2, S2)
+ thandy.util.replaceFile(fn3, S3)
+
+ self.assertEquals(contents(fn1), S1)
+ self.assertTrue(os.path.exists(fn2))
+ self.assertTrue(os.path.exists(fn3))
+
+ thandy.util.moveFile(fn2, fn1)
+ self.assertEquals(contents(fn1), S2)
+ self.assertFalse(os.path.exists(fn2))
+
+ thandy.util.moveFile(fn1, fn3)
+ self.assertEquals(contents(fn3), S2)
+ self.assertFalse(os.path.exists(fn1))
+
+ self.assertEquals(os.listdir(d), ["subdir"])
+ self.assertEquals(os.listdir(os.path.join(d, "subdir")), ["f3"])
+
+
def suite():
suite = unittest.TestSuite()