From 920f9b01be83be306771e1876e083fdea9f32057 Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Dec 21 2021 13:46:15 +0000 Subject: use name_or_id_clause in get_channel --- diff --git a/hub/kojihub.py b/hub/kojihub.py index 7f9beb0..f7c9ffd 100644 --- a/hub/kojihub.py +++ b/hub/kojihub.py @@ -5536,16 +5536,10 @@ def get_channel(channelInfo, strict=False): For example, {'id': 20, 'name': 'container'} """ fields = ('id', 'name', 'description', 'enabled', 'comment') - query = """SELECT %s FROM channels - WHERE """ % ', '.join(fields) - if isinstance(channelInfo, int): - query += """id = %(channelInfo)i""" - elif isinstance(channelInfo, str): - query += """name = %(channelInfo)s""" - else: - raise koji.GenericError('Invalid type for channelInfo: %s' % type(channelInfo)) - - return _singleRow(query, locals(), fields, strict) + clause, values = name_or_id_clause(channelInfo, table='channels') + query = QueryProcessor(columns=fields, tables=['channels'], + clauses=[clause], values=values) + return query.executeOne(strict=strict) def query_buildroots(hostID=None, tagID=None, state=None, rpmID=None, archiveID=None, taskID=None, diff --git a/tests/test_hub/test_get_channel.py b/tests/test_hub/test_get_channel.py index 9b5e766..23cebf9 100644 --- a/tests/test_hub/test_get_channel.py +++ b/tests/test_hub/test_get_channel.py @@ -20,12 +20,12 @@ class TestGetChannel(unittest.TestCase): channel_info = {'channel': 'val'} with self.assertRaises(koji.GenericError) as cm: self.exports.getChannel(channel_info) - self.assertEqual('Invalid type for channelInfo: %s' % type(channel_info), + self.assertEqual('Invalid name or id value: %s' % channel_info, str(cm.exception)) # list channel_info = ['channel'] with self.assertRaises(koji.GenericError) as cm: self.exports.getChannel(channel_info) - self.assertEqual('Invalid type for channelInfo: %s' % type(channel_info), + self.assertEqual('Invalid name or id value: %s' % channel_info, str(cm.exception))