diff --git a/module_build_service/builder/KojiModuleBuilder.py b/module_build_service/builder/KojiModuleBuilder.py index 534f2e4a..15a85961 100644 --- a/module_build_service/builder/KojiModuleBuilder.py +++ b/module_build_service/builder/KojiModuleBuilder.py @@ -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: diff --git a/tests/test_builder/test_koji.py b/tests/test_builder/test_koji.py index 0f990ef2..ce8b3443 100644 --- a/tests/test_builder/test_koji.py +++ b/tests/test_builder/test_koji.py @@ -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"""