Add get_coverage()
Checking the unexpected records. Change-Id: I22aa3aa528259ede949df935993a6d1ce24ca7fd
This commit is contained in:
parent
e22975ab47
commit
6390a0086d
|
@ -29,6 +29,7 @@ CONF.register_cli_opt(cfg.BoolOpt('verbose', short='v', default=False,
|
||||||
|
|
||||||
DAY_SECONDS = 60 * 60 * 24
|
DAY_SECONDS = 60 * 60 * 24
|
||||||
Session = None
|
Session = None
|
||||||
|
engine = None
|
||||||
|
|
||||||
|
|
||||||
def setup():
|
def setup():
|
||||||
|
@ -55,8 +56,7 @@ def get_session(autocommit=True, expire_on_commit=False):
|
||||||
:param bool expire_on_commit: Expire the session on commit defaults False.
|
:param bool expire_on_commit: Expire the session on commit defaults False.
|
||||||
"""
|
"""
|
||||||
global Session
|
global Session
|
||||||
if not Session:
|
setup()
|
||||||
setup()
|
|
||||||
session = Session(autocommit=autocommit,
|
session = Session(autocommit=autocommit,
|
||||||
expire_on_commit=expire_on_commit)
|
expire_on_commit=expire_on_commit)
|
||||||
|
|
||||||
|
@ -101,3 +101,23 @@ def create_coverage(project_name, coverage_rate=0.0, report_time=None,
|
||||||
with session.begin():
|
with session.begin():
|
||||||
session.add(coverage)
|
session.add(coverage)
|
||||||
return coverage
|
return coverage
|
||||||
|
|
||||||
|
|
||||||
|
def get_coverage(project_name=None, test_type=None, session=None):
|
||||||
|
"""Get new coverage records in the database.
|
||||||
|
|
||||||
|
This method is used to get coverage records in the database. The records
|
||||||
|
are order by report_time.
|
||||||
|
:param str project_name: project_name e.g. openstack/tempest
|
||||||
|
:param str test_type: test_type e.g. py35
|
||||||
|
:return: The coverage objects from the DB
|
||||||
|
:rtype: list
|
||||||
|
"""
|
||||||
|
|
||||||
|
session = session or get_session()
|
||||||
|
covs = session.query(models.Coverage)
|
||||||
|
if project_name:
|
||||||
|
covs = covs.filter_by(project_name=project_name)
|
||||||
|
if test_type:
|
||||||
|
covs = covs.filter_by(test_type=test_type)
|
||||||
|
return covs.order_by(models.Coverage.report_time).all()
|
||||||
|
|
|
@ -74,7 +74,7 @@ def run_migrations_online():
|
||||||
and associate a connection with the context.
|
and associate a connection with the context.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
connectable = db_api.get_session().get_bind()
|
connectable = db_api.engine
|
||||||
|
|
||||||
with connectable.connect() as connection:
|
with connectable.connect() as connection:
|
||||||
context.configure(
|
context.configure(
|
||||||
|
|
|
@ -46,13 +46,13 @@ class Database(fix.Fixture):
|
||||||
db_test_utils.run_migration("head")
|
db_test_utils.run_migration("head")
|
||||||
|
|
||||||
def cleanup(self):
|
def cleanup(self):
|
||||||
engine = db_api.get_session().get_bind()
|
engine = db_api.engine
|
||||||
engine.dispose()
|
engine.dispose()
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
self._cache_schema()
|
self._cache_schema()
|
||||||
engine = db_api.get_session().get_bind()
|
engine = db_api.engine
|
||||||
engine.dispose()
|
engine.dispose()
|
||||||
engine.connect()
|
engine.connect()
|
||||||
|
|
||||||
|
|
|
@ -47,3 +47,21 @@ class TestDatabaseAPI(base.TestCase):
|
||||||
cov = api.create_coverage('foo_project')
|
cov = api.create_coverage('foo_project')
|
||||||
self.assertTrue(cov is not None)
|
self.assertTrue(cov is not None)
|
||||||
self.assertEqual(cov.project_name, 'foo_project')
|
self.assertEqual(cov.project_name, 'foo_project')
|
||||||
|
|
||||||
|
def test_get_coverage_all(self):
|
||||||
|
api.create_coverage('foo1_project')
|
||||||
|
api.create_coverage('foo2_project')
|
||||||
|
covs = api.get_coverage()
|
||||||
|
self.assertTrue(covs is not None)
|
||||||
|
self.assertEqual(len(covs), 2)
|
||||||
|
names = [n.project_name for n in covs]
|
||||||
|
self.assertIn(needle='foo1_project', haystack=names)
|
||||||
|
self.assertIn(needle='foo2_project', haystack=names)
|
||||||
|
|
||||||
|
def test_get_coverage_with_projenct_name(self):
|
||||||
|
api.create_coverage('foo1_project')
|
||||||
|
api.create_coverage('foo2_project')
|
||||||
|
covs = api.get_coverage(project_name='foo1_project')
|
||||||
|
self.assertTrue(covs is not None)
|
||||||
|
self.assertEqual(len(covs), 1)
|
||||||
|
self.assertEqual(covs[0].project_name, 'foo1_project')
|
||||||
|
|
Loading…
Reference in New Issue