Merge #1524 Gracefully handle builds without a koji tag

This commit is contained in:
Matt Prahl
2019-11-22 16:26:12 +00:00
2 changed files with 32 additions and 0 deletions

View File

@@ -1338,6 +1338,9 @@ class KojiModuleBuilder(GenericBuilder):
the module build in the build system.
:return: list of architectures
"""
if not module.koji_tag:
log.warning("No Koji tag associated with module %r", module)
return []
koji_session = KojiModuleBuilder.get_session(conf, login=False)
tag = koji_session.getTag(module.koji_tag)
if not tag:

View File

@@ -934,6 +934,35 @@ class TestKojiBuilder:
ret = KojiModuleBuilder.get_module_build_arches(module_build)
assert " ".join(ret) == arches
@patch.dict("sys.modules", krbV=MagicMock())
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
def test_get_module_build_arches_with_archless_tag(self, ClientSession):
module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2)
session = ClientSession.return_value
session.getTag.return_value = {"arches": ""}
ret = KojiModuleBuilder.get_module_build_arches(module_build)
assert ret == []
@patch.dict("sys.modules", krbV=MagicMock())
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
def test_get_module_build_arches_without_tag(self, ClientSession):
module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2)
module_build.koji_tag = None
session = ClientSession.return_value
ret = KojiModuleBuilder.get_module_build_arches(module_build)
assert ret == []
session.getTag.assert_not_called()
session.assert_not_called()
@patch.dict("sys.modules", krbV=MagicMock())
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
def test_get_module_build_arches_with_unknown_tag(self, ClientSession):
module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2)
session = ClientSession.return_value
session.getTag.return_value = None
with pytest.raises(ValueError, match="Unknown Koji tag .*"):
KojiModuleBuilder.get_module_build_arches(module_build)
class TestGetDistTagSRPM:
"""Test KojiModuleBuilder.get_disttag_srpm"""