]> git.decadent.org.uk Git - dak.git/blobdiff - tests/dbtest_ormobject.py
Add new class ORMObject and ORMObjectTestCase.
[dak.git] / tests / dbtest_ormobject.py
diff --git a/tests/dbtest_ormobject.py b/tests/dbtest_ormobject.py
new file mode 100755 (executable)
index 0000000..a5b7755
--- /dev/null
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+
+from db_test import DBDakTestCase
+
+from daklib.dbconn import Architecture, Suite
+
+import json
+import re
+import unittest
+
+class ORMObjectTestCase(DBDakTestCase):
+    """
+    The ORMObjectTestCase tests the behaviour of the ORMObject.
+    """
+
+    def test_strings(self):
+        'tests json(), __repr__(), and __str__()'
+        architecture = Architecture(arch_string = 'i386')
+        # test json()
+        data = json.loads(architecture.json())
+        self.assertEqual('i386', data['arch_string'])
+        # test repr()
+        self.assertEqual('<Architecture i386>', repr(architecture))
+        # test str()
+        self.assertTrue(re.match('<Architecture {.*}>', str(architecture)))
+        self.assertTrue(re.search('"arch_string": "i386"', str(architecture)))
+        sid = Suite(suite_name = 'sid')
+        squeeze = Suite(suite_name = 'squeeze')
+        architecture.suites = [sid, squeeze]
+        self.assertTrue(re.search('"suites_count": 2', str(architecture)))
+
+if __name__ == '__main__':
+    unittest.main()