From 95dee6c46351f271d45166147dc342a3646d6f70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Kadl=C4=8D=C3=ADk?= Date: Fri, 17 Mar 2017 11:29:25 +0100 Subject: [PATCH] Not fail when 'ref' is missing --- module_build_service/utils.py | 5 +++-- tests/test_utils/test_utils.py | 13 +++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/module_build_service/utils.py b/module_build_service/utils.py index 51c2fb0a..1bac207a 100644 --- a/module_build_service/utils.py +++ b/module_build_service/utils.py @@ -767,8 +767,9 @@ def get_reusable_component(session, module, component_name): # Assumes that the streams have been replaced with commit hashes, so we # can compare to see if they have changed. Since a build is unique to # a commit hash, this is a safe test. - if br_module['ref'] != \ - old_mmd.xmd['mbs']['buildrequires'][br_module_name]['ref']: + ref1 = br_module.get('ref') + ref2 = old_mmd.xmd['mbs']['buildrequires'][br_module_name].get('ref') + if not (ref1 and ref2) or ref1 != ref2: return None # At this point we've determined that both module builds depend(ed) on the diff --git a/tests/test_utils/test_utils.py b/tests/test_utils/test_utils.py index 8cd37fd6..6dbc9817 100644 --- a/tests/test_utils/test_utils.py +++ b/tests/test_utils/test_utils.py @@ -151,6 +151,19 @@ class TestUtils(unittest.TestCase): db.session, new_module, 'tangerine') self.assertEqual(rv.package, 'tangerine') + def test_get_reusable_component_empty_scmurl(self): + test_reuse_component_init_data() + + new_module = models.ModuleBuild.query.filter_by(id=2).one() + mmd = new_module.mmd() + mmd.xmd['mbs']['buildrequires'] = {'base-runtime': {}} + new_module.modulemd = mmd.dumps() + db.session.commit() + + rv = module_build_service.utils.get_reusable_component( + db.session, new_module, 'tangerine') + self.assertEqual(rv, None) + def test_get_reusable_component_different_perl_tangerine(self): test_reuse_component_init_data() second_module_build = models.ModuleBuild.query.filter_by(id=2).one()