[dak/master] Convert class Priority to ORMObject.
Signed-off-by: Torsten Werner <twerner@debian.org>
---
daklib/dbconn.py | 19 ++++++++++++-------
tests/dbtest_contents.py | 18 +++++++++++++++++-
2 files changed, 29 insertions(+), 8 deletions(-)
diff --git a/daklib/dbconn.py b/daklib/dbconn.py
index 47b933e..524f85c 100755
--- a/daklib/dbconn.py
+++ b/daklib/dbconn.py
@@ -2078,9 +2078,16 @@ __all__.append('get_policy_queue_from_path')
################################################################################
-class Priority(object):
- def __init__(self, *args, **kwargs):
- pass
+class Priority(ORMObject):
+ def __init__(self, priority = None, level = None):
+ self.priority = priority
+ self.level = level
+
+ def properties(self):
+ return ['priority', 'priority_id', 'level', 'overrides_count']
+
+ def not_null_constraints(self):
+ return ['priority', 'level']
def __eq__(self, val):
if isinstance(val, str):
@@ -2094,9 +2101,6 @@ class Priority(object):
# This signals to use the normal comparison operator
return NotImplemented
- def __repr__(self):
- return '<Priority %s (%s)>' % (self.priority, self.priority_id)
-
__all__.append('Priority')
@session_wrapper
@@ -3167,7 +3171,8 @@ class DBConn(object):
component_id = self.tbl_override.c.component,
component = relation(Component),
priority_id = self.tbl_override.c.priority,
- priority = relation(Priority),
+ priority = relation(Priority, \
+ backref=backref('overrides', lazy='dynamic')),
section_id = self.tbl_override.c.section,
section = relation(Section, \
backref=backref('overrides', lazy='dynamic')),
diff --git a/tests/dbtest_contents.py b/tests/dbtest_contents.py
index 7ce61cd..d4f57ad 100755
--- a/tests/dbtest_contents.py
+++ b/tests/dbtest_contents.py
@@ -3,7 +3,7 @@
from db_test import DBDakTestCase
from daklib.dbconn import DBConn, BinContents, OverrideType, get_override_type, \
- Section, get_section, get_sections
+ Section, get_section, get_sections, Priority, get_priority, get_priorities
from sqlalchemy.exc import FlushError, IntegrityError
import unittest
@@ -84,5 +84,21 @@ class ContentsTestCase(DBDakTestCase):
self.assertEqual(section.section_id, all_sections['python'])
self.assertEqual(0, section.overrides.count())
+ def test_priority(self):
+ '''
+ Test Priority class.
+ '''
+ priority = Priority(priority = 'standard', level = 7)
+ self.session.add(priority)
+ self.session.flush()
+ self.assertEqual('standard', priority.priority)
+ self.assertEqual(7, priority.level)
+ self.assertEqual('standard', priority)
+ self.assertTrue(priority != 'extra')
+ self.assertEqual(priority, get_priority('standard', self.session))
+ all_priorities = get_priorities(self.session)
+ self.assertEqual(priority.priority_id, all_priorities['standard'])
+ self.assertEqual(0, priority.overrides.count())
+
if __name__ == '__main__':
unittest.main()
--
1.5.6.5
Reply to: