[tor-commits] [bridgedb/master] Add unittests for the bridgedb.crypto module.

isis at torproject.org isis at torproject.org
Sun Jan 12 06:06:32 UTC 2014


commit c834082c59abe6ae6d2e065e1a5afac2d399a612
Author: Isis Lovecruft <isis at torproject.org>
Date:   Tue Nov 19 03:53:56 2013 +0000

    Add unittests for the bridgedb.crypto module.
---
 lib/bridgedb/test/test_crypto.py |   57 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/lib/bridgedb/test/test_crypto.py b/lib/bridgedb/test/test_crypto.py
new file mode 100644
index 0000000..2e6894e
--- /dev/null
+++ b/lib/bridgedb/test/test_crypto.py
@@ -0,0 +1,57 @@
+# -*- coding: utf-8 -*-
+#
+# This file is part of BridgeDB, a Tor bridge distribution system.
+#
+# :authors: Isis Lovecruft 0xA3ADB67A2CDB8B35 <isis at torproject.org>
+#           please also see AUTHORS file
+# :copyright: (c) 2013, Isis Lovecruft
+#             (c) 2007-2013, The Tor Project, Inc.
+#             (c) 2007-2013, all entities within the AUTHORS file
+# :license: 3-Clause BSD, see LICENSE for licensing information
+
+"""Unittests for :mod:`bridgedb.crypto`."""
+
+from __future__ import print_function
+from __future__ import unicode_literals
+
+import os
+
+from twisted.trial import unittest
+from bridgedb import crypto
+
+
+SEKRIT_KEY  = b'v\x16Xm\xfc\x1b}\x063\x85\xaa\xa5\xf9\xad\x18\xb2P\x93\xc6k\xf9'
+SEKRIT_KEY += b'\x8bI\xd9\xb8xw\xf5\xec\x1b\x7f\xa8'
+
+
+class CryptoTest(unittest.TestCase):
+
+    def test_getKey_nokey(self):
+        """Test retrieving the secret_key from an empty file."""
+        filename = os.path.join(os.getcwd(), 'sekrit')
+        key = crypto.getKey(filename)
+        self.failUnlessIsInstance(key, basestring,
+                                  "key isn't a string! type=%r" % type(key))
+
+    def test_getKey_tmpfile(self):
+        """Test retrieving the secret_key from a new tmpfile."""
+        filename = self.mktemp()
+        key = crypto.getKey(filename)
+        self.failUnlessIsInstance(key, basestring,
+                                  "key isn't a string! type=%r" % type(key))
+
+    def test_getKey_keyexists(self):
+        """Write the example key to a file and test reading it back."""
+        filename = self.mktemp()
+        with open(filename, 'wb') as fh:
+            fh.write(SEKRIT_KEY)
+            fh.flush()
+
+        key = crypto.getKey(filename)
+        self.failUnlessIsInstance(key, basestring,
+                                  "key isn't a string! type=%r" % type(key))
+        self.assertEqual(SEKRIT_KEY, key,
+                         """The example key and the one read from file differ!
+                         key (in hex): %s
+                         SEKRIT_KEY (in hex): %s"""
+                         % (key.encode('hex'), SEKRIT_KEY.encode('hex')))





More information about the tor-commits mailing list