diff options
Diffstat (limited to 'lib/glider/tests.py')
-rw-r--r-- | lib/glider/tests.py | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/lib/glider/tests.py b/lib/glider/tests.py index 1c392e8..7aeb4f6 100644 --- a/lib/glider/tests.py +++ b/lib/glider/tests.py @@ -1,21 +1,57 @@ import unittest import doctest +import os +import tempfile import glider.keys import glider.formats import glider.repository +import glider.checkJson import glider.tests -class EncryptionTest(unittest.TestCase): - pass +class CanonicalEncodingTest(unittest.TestCase): + def test_encode(self): + enc = glider.formats.encodeCanonical + self.assertEquals(enc(''), '""') + self.assertEquals(enc('"'), '"\\""') + self.assertEquals(enc('\t\\\n"\r'), + '"\t\\\\\n\\"\r"') + +class CryptoTests(unittest.TestCase): + def test_encrypt(self): + s = "The Secret words are marzipan habidashery zeugma." + password = "the password is swordfish." + encrypted = glider.keys.encryptSecret(s, password) + self.assertNotEquals(encrypted, s) + self.assert_(encrypted.startswith("GKEY1")) + self.assertEquals(s, glider.keys.decryptSecret(encrypted, password)) + self.assertRaises(glider.BadPassword, glider.keys.decryptSecret, + encrypted, "password") + self.assertRaises(glider.UnknownFormat, glider.keys.decryptSecret, + "foobar", password) + + def test_keystore(self): + passwd = "umfitty noonah" + fname = tempfile.mktemp() + ks = glider.keys.KeyStore(fname) + key1 = glider.keys.RSAKey.generate(512) + key2 = glider.keys.RSAKey.generate(512) + ks.addKey(key1) + ks.addKey(key2) + ks.save(passwd) + + ks2 = glider.keys.KeyStore(fname) + ks2.load(passwd) + self.assertEquals(key1.key.n, ks2.getKey(key1.getKeyID()).key.n) def suite(): suite = unittest.TestSuite() suite.addTest(doctest.DocTestSuite(glider.formats)) suite.addTest(doctest.DocTestSuite(glider.keys)) + suite.addTest(doctest.DocTestSuite(glider.checkJson)) loader = unittest.TestLoader() suite.addTest(loader.loadTestsFromModule(glider.tests)) |