提交 ad2d0b8d 编写于 作者: T Torsten Werner

Really fix the DebVersion type in dbconn.py.

Signed-off-by: NTorsten Werner <twerner@debian.org>
上级 35d077b2
......@@ -78,7 +78,7 @@ class DebVersion(UserDefinedType):
def bind_processor(self, dialect):
return None
def result_processor(self, dialect):
def result_processor(self, dialect, coltype):
return None
sa_major_version = sqlalchemy.__version__[0:3]
......
......@@ -16,6 +16,13 @@ class Version(object):
return "<Version('%s')>" % self.version
class DebVersionTestCase(DBDakTestCase):
"""
The DebVersionTestCase tests both comparison (<=, ==, >, !=), the in_()
method and aggregate functions (min, max) for the DebVersion type. To
simplify the test it creates a separate table 'version' which is not used
by dak itself.
"""
def setUp(self):
super(DebVersionTestCase, self).setUp()
self.version_table = Table('version', self.metadata, \
......@@ -32,12 +39,15 @@ class DebVersionTestCase(DBDakTestCase):
self.session.add(v)
v = Version('1.0')
self.session.add(v)
#self.session.commit()
q = self.session.query(Version)
self.assertEqual(3, q.count())
self.assertEqual(2, q.filter(Version.version <= '0.5').count())
self.assertEqual(1, q.filter(Version.version == '0.5').count())
self.assertEqual(2, q.filter(Version.version > '0.5~').count())
self.assertEqual(1, q.filter(Version.version > '0.5').count())
self.assertEqual(0, q.filter(Version.version > '1.0').count())
self.assertEqual(2, q.filter(Version.version != '1.0').count())
self.assertEqual(2, q.filter(Version.version.in_(['0.5~', '1.0'])).count())
q = self.session.query(func.min(Version.version))
self.assertEqual('0.5~', q.one()[0])
q = self.session.query(func.max(Version.version))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册