use name_or_id_clause in get_external_repos
This commit is contained in:
parent
c87eba6bcd
commit
bcf423362b
2 changed files with 14 additions and 62 deletions
|
|
@ -3760,19 +3760,18 @@ def get_external_repos(info=None, url=None, event=None, queryOpts=None):
|
|||
tables = ['external_repo']
|
||||
joins = ['external_repo_config ON external_repo_id = id']
|
||||
clauses = [eventCondition(event)]
|
||||
values = {}
|
||||
if info is not None:
|
||||
if isinstance(info, str):
|
||||
clauses.append('name = %(info)s')
|
||||
elif isinstance(info, int):
|
||||
clauses.append('id = %(info)i')
|
||||
else:
|
||||
raise koji.GenericError('Invalid type for lookup: %s' % type(info))
|
||||
clause, c_values = name_or_id_clause(info, table='external_repo')
|
||||
clauses.append(clause)
|
||||
values.update(c_values)
|
||||
if url:
|
||||
clauses.append('url = %(url)s')
|
||||
values['url'] = url
|
||||
|
||||
query = QueryProcessor(columns=fields, tables=tables,
|
||||
joins=joins, clauses=clauses,
|
||||
values=locals(), opts=queryOpts)
|
||||
values=values, opts=queryOpts)
|
||||
return query.execute()
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -17,15 +17,7 @@ class TestGetExternalRepos(DBQueryTestCase):
|
|||
joins=[
|
||||
'external_repo_config ON external_repo_id = id'],
|
||||
clauses=['(active = TRUE)'],
|
||||
values={'clauses': ['(active = TRUE)'],
|
||||
'event': None,
|
||||
'fields': ['id', 'name', 'url'],
|
||||
'info': None,
|
||||
'joins': [
|
||||
'external_repo_config ON external_repo_id = id'],
|
||||
'queryOpts': None,
|
||||
'tables': ['external_repo'],
|
||||
'url': None},
|
||||
values={},
|
||||
opts={})
|
||||
self.assertEqual(rv, [{'id': 1,
|
||||
'name': 'ext_repo_1',
|
||||
|
|
@ -46,19 +38,7 @@ class TestGetExternalRepos(DBQueryTestCase):
|
|||
'(create_event <= 1000'
|
||||
' AND ( revoke_event IS NULL'
|
||||
' OR 1000 < revoke_event ))'],
|
||||
values={'clauses': [
|
||||
'(create_event <= 1000'
|
||||
' AND ( revoke_event IS NULL'
|
||||
' OR 1000 < revoke_event ))'],
|
||||
'event': 1000,
|
||||
'fields': ['id', 'name', 'url'],
|
||||
'info': None,
|
||||
'joins': [
|
||||
'external_repo_config ON'
|
||||
' external_repo_id = id'],
|
||||
'queryOpts': None,
|
||||
'tables': ['external_repo'],
|
||||
'url': None},
|
||||
values={},
|
||||
opts={})
|
||||
self.assertEqual(rv, [{'id': 1,
|
||||
'name': 'ext_repo_1',
|
||||
|
|
@ -75,17 +55,8 @@ class TestGetExternalRepos(DBQueryTestCase):
|
|||
joins=[
|
||||
'external_repo_config ON external_repo_id = id'],
|
||||
clauses=['(active = TRUE)',
|
||||
'name = %(info)s'],
|
||||
values={'clauses': ['(active = TRUE)',
|
||||
'name = %(info)s'],
|
||||
'event': None,
|
||||
'fields': ['id', 'name', 'url'],
|
||||
'info': 'ext_repo_1',
|
||||
'joins': [
|
||||
'external_repo_config ON external_repo_id = id'],
|
||||
'queryOpts': None,
|
||||
'tables': ['external_repo'],
|
||||
'url': None},
|
||||
'(external_repo.name = %(external_repo_name)s)'],
|
||||
values={'external_repo_name': 'ext_repo_1'},
|
||||
opts={})
|
||||
self.assertEqual(rv, [{'id': 1,
|
||||
'name': 'ext_repo_1',
|
||||
|
|
@ -102,17 +73,8 @@ class TestGetExternalRepos(DBQueryTestCase):
|
|||
joins=[
|
||||
'external_repo_config ON external_repo_id = id'],
|
||||
clauses=['(active = TRUE)',
|
||||
'id = %(info)i'],
|
||||
values={'clauses': ['(active = TRUE)',
|
||||
'id = %(info)i'],
|
||||
'event': None,
|
||||
'fields': ['id', 'name', 'url'],
|
||||
'info': 1,
|
||||
'joins': [
|
||||
'external_repo_config ON external_repo_id = id'],
|
||||
'queryOpts': None,
|
||||
'tables': ['external_repo'],
|
||||
'url': None},
|
||||
'(external_repo.id = %(external_repo_id)s)'],
|
||||
values={'external_repo_id': 1},
|
||||
opts={})
|
||||
self.assertEqual(rv, [{'id': 1,
|
||||
'name': 'ext_repo_1',
|
||||
|
|
@ -130,16 +92,7 @@ class TestGetExternalRepos(DBQueryTestCase):
|
|||
'external_repo_config ON external_repo_id = id'],
|
||||
clauses=['(active = TRUE)',
|
||||
'url = %(url)s'],
|
||||
values={'clauses': ['(active = TRUE)',
|
||||
'url = %(url)s'],
|
||||
'event': None,
|
||||
'fields': ['id', 'name', 'url'],
|
||||
'info': None,
|
||||
'joins': [
|
||||
'external_repo_config ON external_repo_id = id'],
|
||||
'queryOpts': None,
|
||||
'tables': ['external_repo'],
|
||||
'url': 'http://example.com/repo/'},
|
||||
values={'url': 'http://example.com/repo/'},
|
||||
opts={})
|
||||
self.assertEqual(rv, [{'id': 1,
|
||||
'name': 'ext_repo_1',
|
||||
|
|
@ -149,4 +102,4 @@ class TestGetExternalRepos(DBQueryTestCase):
|
|||
info = {'info_key': 'info_value'}
|
||||
with self.assertRaises(koji.GenericError) as cm:
|
||||
kojihub.get_external_repos(info=info)
|
||||
self.assertEqual("Invalid type for lookup: %s" % type(info), str(cm.exception))
|
||||
self.assertEqual("Invalid name or id value: %s" % info, str(cm.exception))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue