]> git.donarmstrong.com Git - dak.git/blobdiff - tests/dbtest_validation.py
Add classes Validator and ValidatorTestCase.
[dak.git] / tests / dbtest_validation.py
diff --git a/tests/dbtest_validation.py b/tests/dbtest_validation.py
new file mode 100755 (executable)
index 0000000..597097c
--- /dev/null
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+
+from db_test import DBDakTestCase
+
+from daklib.dbconn import Architecture
+from daklib.dak_exceptions import DBUpdateError
+
+import unittest
+
+class ValidatorTestCase(DBDakTestCase):
+    """
+    The ValidatorTestCase tests the validation mechanism.
+    """
+
+    def must_fail(self):
+        ''''
+        This function must fail with DBUpdateError because arch_string is not
+        set. It rolls back the transaction before re-raising the exception.
+        '''
+        try:
+            architecture = Architecture()
+            self.session.add(architecture)
+            self.session.flush()
+        except:
+            self.session.rollback()
+            raise
+
+    def test_validation(self):
+        'tests validate()'
+        self.assertRaises(DBUpdateError, self.must_fail)
+        # should not fail
+        architecture = Architecture('i386')
+        self.session.add(architecture)
+        self.session.flush()
+
+if __name__ == '__main__':
+    unittest.main()