X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=tests%2Fdbtest_debversion.py;h=c45200d1f2440d7a3e96f43d5ad57de561d5f45a;hb=7c5adcf962fe99d6a42307595f263f47d0112fbc;hp=3d10b92b14a560888f2efbaf0cc5c0e39a230691;hpb=1b66f63dac4e4293921358740695c6ec52d443ab;p=dak.git diff --git a/tests/dbtest_debversion.py b/tests/dbtest_debversion.py index 3d10b92b..c45200d1 100755 --- a/tests/dbtest_debversion.py +++ b/tests/dbtest_debversion.py @@ -16,6 +16,13 @@ class Version(object): return "" % 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, \ @@ -26,21 +33,28 @@ class DebVersionTestCase(DBDakTestCase): mapper(Version, self.version_table) def test_debversion(self): - v1 = Version('0.5') - self.session.add(v1) - v2 = Version('1.0') - self.session.add(v2) - #self.session.commit() + v = Version('0.5~') + self.session.add(v) + v = Version('0.5') + self.session.add(v) + v = Version('1.0') + self.session.add(v) q = self.session.query(Version) - self.assertEqual(2, q.count()) + 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()) - for v in self.session.query(Version.version): - print v + 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.scalar()) + q = self.session.query(func.max(Version.version)) + self.assertEqual('1.0', q.scalar()) def tearDown(self): - self.session.close() + self.session.rollback() self.version_table.drop() super(DebVersionTestCase, self).tearDown()