]> git.decadent.org.uk Git - dak.git/blob - tests/dbtest_validation.py
Add classes Validator and ValidatorTestCase.
[dak.git] / tests / dbtest_validation.py
1 #!/usr/bin/env python
2
3 from db_test import DBDakTestCase
4
5 from daklib.dbconn import Architecture
6 from daklib.dak_exceptions import DBUpdateError
7
8 import unittest
9
10 class ValidatorTestCase(DBDakTestCase):
11     """
12     The ValidatorTestCase tests the validation mechanism.
13     """
14
15     def must_fail(self):
16         ''''
17         This function must fail with DBUpdateError because arch_string is not
18         set. It rolls back the transaction before re-raising the exception.
19         '''
20         try:
21             architecture = Architecture()
22             self.session.add(architecture)
23             self.session.flush()
24         except:
25             self.session.rollback()
26             raise
27
28     def test_validation(self):
29         'tests validate()'
30         self.assertRaises(DBUpdateError, self.must_fail)
31         # should not fail
32         architecture = Architecture('i386')
33         self.session.add(architecture)
34         self.session.flush()
35
36 if __name__ == '__main__':
37     unittest.main()