]> git.decadent.org.uk Git - dak.git/commitdiff
Add tests for process_gpgv_output
authorChris Lamb <lamby@debian.org>
Sat, 31 Oct 2009 23:28:41 +0000 (23:28 +0000)
committerChris Lamb <lamby@debian.org>
Sat, 31 Oct 2009 23:28:41 +0000 (23:28 +0000)
Signed-off-by: Chris Lamb <lamby@debian.org>
tests/test_process_gpgv_output.py [new file with mode: 0755]

diff --git a/tests/test_process_gpgv_output.py b/tests/test_process_gpgv_output.py
new file mode 100755 (executable)
index 0000000..ea1fb33
--- /dev/null
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+
+from base_test import DakTestCase
+
+import unittest
+
+from daklib.utils import process_gpgv_output
+
+class ProcessGPGVOutputTestCase(DakTestCase):
+    def assertParse(self, input, output):
+        self.assertEqual(process_gpgv_output(input)[0], output)
+
+    def assertNotParse(self, input):
+        ret = process_gpgv_output(input)
+        self.assertNotEqual(len(ret[1]), 0)
+
+    ##
+
+    def testEmpty(self):
+        self.assertParse('', {})
+
+    def testBroken(self):
+        self.assertNotParse('foo')
+        self.assertNotParse('  foo  ')
+        self.assertNotParse('[PREFIXPG:] KEY VAL1 VAL2 VAL3')
+
+    def testSimple(self):
+        self.assertParse(
+            '[GNUPG:] KEY VAL1 VAL2 VAL3',
+            {'KEY': ['VAL1', 'VAL2', 'VAL3']},
+        )
+
+    def testNoKeys(self):
+        self.assertParse('[GNUPG:] KEY', {'KEY': []})
+
+    def testDuplicate(self):
+        self.assertNotParse('[GNUPG:] TEST_KEY\n[GNUPG:] TEST_KEY')
+        self.assertNotParse('[GNUPG:] KEY VAL1\n[GNUPG:] KEY VAL2')
+
+    def testDuplicateSpecial(self):
+        # NODATA and friends are special
+        for special in ('NODATA', 'SIGEXPIRED', 'KEYEXPIRED'):
+            self.assertParse(
+                '[GNUPG:] %s\n[GNUPG:] %s' % (special, special),
+                {special: []},
+            )
+
+if __name__ == '__main__':
+    unittest.main()