From d06bd3a49e0d0389dcef19cad7361364bbfd95ff Mon Sep 17 00:00:00 2001 From: mprahl Date: Tue, 6 Feb 2018 09:33:54 -0500 Subject: [PATCH] Don't fail a module build when there are no buildrequires --- module_build_service/resolver/PDCResolver.py | 4 ++-- tests/test_resolver/test_pdc.py | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/module_build_service/resolver/PDCResolver.py b/module_build_service/resolver/PDCResolver.py index 32e5d34b..25defcaa 100644 --- a/module_build_service/resolver/PDCResolver.py +++ b/module_build_service/resolver/PDCResolver.py @@ -405,8 +405,8 @@ class PDCResolver(GenericResolver): else: queried_mmd = module_info - if (not queried_mmd or not queried_mmd.xmd.get('mbs') or - not queried_mmd.xmd['mbs'].get('buildrequires')): + if (not queried_mmd or 'mbs' not in queried_mmd.xmd or + 'buildrequires' not in queried_mmd.xmd['mbs']): raise RuntimeError( 'The module "{0!r}" did not contain its modulemd or did not have ' 'its xmd attribute filled out in PDC'.format(module_info)) diff --git a/tests/test_resolver/test_pdc.py b/tests/test_resolver/test_pdc.py index a2e89769..88aa73f8 100644 --- a/tests/test_resolver/test_pdc.py +++ b/tests/test_resolver/test_pdc.py @@ -24,6 +24,7 @@ import os import copy from mock import patch, PropertyMock +import pytest import module_build_service.resolver as mbs_resolver import module_build_service.utils @@ -66,10 +67,23 @@ class TestPDCModule: assert result['variant_version'] == 'master' assert 'build_deps' in result - def test_get_module_build_dependencies(self, pdc_module_active): + @pytest.mark.parametrize('empty_buildrequires', [False, True]) + def test_get_module_build_dependencies(self, pdc_module_active, empty_buildrequires): """ Tests that we return just direct build-time dependencies of testmodule. """ + expected = set(['module-f28-build']) + if empty_buildrequires: + expected = set() + pdc_item = pdc_module_active.endpoints['unreleasedvariants']['GET'][-1] + mmd = modulemd.ModuleMetadata() + mmd.loads(pdc_item['modulemd']) + mmd.buildrequires = {} + mmd.xmd['mbs']['buildrequires'] = {} + pdc_item.update({ + 'modulemd': mmd.dumps(), + 'build_deps': [] + }) query = { 'name': 'testmodule', 'version': 'master', @@ -77,7 +91,7 @@ class TestPDCModule: } resolver = mbs_resolver.GenericResolver.create(tests.conf, backend='pdc') result = resolver.get_module_build_dependencies(query).keys() - assert set(result) == set(['module-f28-build']) + assert set(result) == expected def test_get_module_build_dependencies_recursive(self, pdc_module_active): """