From b7764d800055d4f858e7679ee0e9c4161f48d56c Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Jul 13 2021 12:26:19 +0000 Subject: Handle correctly unexpected Koji task types --- diff --git a/greenwave/product_versions.py b/greenwave/product_versions.py index 70ba274..af119a5 100644 --- a/greenwave/product_versions.py +++ b/greenwave/product_versions.py @@ -54,8 +54,13 @@ def _guess_koji_build_product_version( if not koji_task_id: return None - target = retrieve_koji_task_request(koji_task_id, koji_base_url)[1] - return _guess_product_version(target, koji_build=True) + task_request = retrieve_koji_task_request(koji_task_id, koji_base_url) + if isinstance(task_request, list) and len(task_request) > 1: + target = task_request[1] + if isinstance(target, str): + return _guess_product_version(target, koji_build=True) + + return None except (xmlrpc.client.ProtocolError, socket.error) as err: raise ConnectionError('Could not reach Koji: {}'.format(err)) except xmlrpc.client.Fault: diff --git a/greenwave/tests/test_resultsdb_consumer.py b/greenwave/tests/test_resultsdb_consumer.py index 0575e19..cd10136 100644 --- a/greenwave/tests/test_resultsdb_consumer.py +++ b/greenwave/tests/test_resultsdb_consumer.py @@ -362,6 +362,23 @@ def test_guess_product_version_with_koji_without_task_id(koji_proxy, app): assert product_version is None +@pytest.mark.parametrize('task_request', ( + ['git://example.com/project', 7777, {}], + [], + None, +)) +def test_guess_product_version_with_koji_and_unexpected_task_type(task_request, koji_proxy, app): + koji_proxy.getBuild.return_value = {'task_id': 666} + koji_proxy.getTaskRequest.return_value = task_request + + subject = create_subject('container-build', 'fake_koji_build') + product_version = subject_product_version(subject, 'http://localhost:5006/kojihub') + + koji_proxy.getBuild.assert_called_once_with('fake_koji_build') + koji_proxy.getTaskRequest.assert_called_once_with(666) + assert product_version is None + + @pytest.mark.parametrize('nvr', ( 'badnvr.elastic-1-228', 'badnvr-1.2-1.elastic8',