[dak/master] Test and refactor get_suites_source_in().
Signed-off-by: Torsten Werner <twerner@debian.org>
---
daklib/dbconn.py | 2 +-
tests/dbtest_packages.py | 9 ++++++++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/daklib/dbconn.py b/daklib/dbconn.py
index 06960bf..6f598bb 100755
--- a/daklib/dbconn.py
+++ b/daklib/dbconn.py
@@ -2168,7 +2168,7 @@ def get_suites_source_in(source, session=None):
@return: list of Suite objects for the given source
"""
- return session.query(Suite).join(SrcAssociation).join(DBSource).filter_by(source=source).all()
+ return session.query(Suite).filter(Suite.sources.any(source=source)).all()
__all__.append('get_suites_source_in')
diff --git a/tests/dbtest_packages.py b/tests/dbtest_packages.py
index 9af916f..9ac4ef4 100755
--- a/tests/dbtest_packages.py
+++ b/tests/dbtest_packages.py
@@ -4,7 +4,8 @@ from db_test import DBDakTestCase
from daklib.dbconn import Architecture, Suite, get_suite_architectures, \
get_architecture_suites, Maintainer, DBSource, Location, PoolFile, \
- check_poolfile, get_poolfile_like_name, get_source_in_suite
+ check_poolfile, get_poolfile_like_name, get_source_in_suite, \
+ get_suites_source_in
from sqlalchemy.orm.exc import MultipleResultsFound
import unittest
@@ -266,6 +267,12 @@ class PackageTestCase(DBDakTestCase):
get_source_in_suite('hello', 'squeeze', self.session))
self.assertEqual(self.source['sl'], \
get_source_in_suite('sl', 'sid', self.session))
+ # test get_suites_source_in()
+ self.assertEqual([self.suite['sid']], \
+ get_suites_source_in('hello', self.session))
+ self.assertEqual(2, len(get_suites_source_in('sl', self.session)))
+ self.assertTrue(self.suite['squeeze'] in \
+ get_suites_source_in('sl', self.session))
if __name__ == '__main__':
--
1.5.6.5
Reply to: