Add get_tag_from_target method
I noticed that the get_fedora_rawhide_tag and get_epel_latest_tag methods were basically doing the same thing, so it makes logical sense to combine them. The corresponding test methods are also combined, with parametrized input to cover all the same scenarios. Signed-off-by: Carl George <carlwgeorge@gmail.com>
This commit is contained in:
parent
bac1f97189
commit
239edbb71d
2 changed files with 49 additions and 62 deletions
|
@ -110,16 +110,12 @@ class TestProcessBlockRetired:
|
|||
assert caplog.records[-1].message == "dead.package file was not added, bailing"
|
||||
|
||||
@patch("toddlers.plugins.koji_block_retired.KojiBlockRetired._create_session")
|
||||
@patch(
|
||||
"toddlers.plugins.koji_block_retired.KojiBlockRetired.get_fedora_rawhide_tag"
|
||||
)
|
||||
def test_dead_package_added_to_main_branch(
|
||||
self, mock_get_fedora_rawhide_tag, caplog
|
||||
):
|
||||
@patch("toddlers.plugins.koji_block_retired.KojiBlockRetired.get_tag_from_target")
|
||||
def test_dead_package_added_to_main_branch(self, mock_get_tag_from_target, caplog):
|
||||
"""
|
||||
Assert that that main branch will be changed to rawhide tag
|
||||
"""
|
||||
mock_get_fedora_rawhide_tag.return_value = "f41"
|
||||
mock_get_tag_from_target.return_value = "f41"
|
||||
caplog.set_level(logging.INFO)
|
||||
|
||||
message = MagicMock()
|
||||
|
@ -140,7 +136,7 @@ class TestProcessBlockRetired:
|
|||
"keytab": "keytab",
|
||||
}
|
||||
with patch.object(
|
||||
self.toddler_cls, "get_fedora_rawhide_tag", MagicMock(return_value="f41")
|
||||
self.toddler_cls, "get_tag_from_target", MagicMock(return_value="f41")
|
||||
):
|
||||
self.toddler_cls.process_block_retired(config, message)
|
||||
self.toddler_cls.koji_session.packageListBlock.assert_called_once_with(
|
||||
|
@ -267,47 +263,48 @@ class TestProcessBlockRetired:
|
|||
== "Commit is older than 1 day, probably new branch creation, bailing."
|
||||
)
|
||||
|
||||
def test_get_fedora_rawhide_tag(self):
|
||||
self.toddler_cls.koji_session.getBuildTarget.return_value = {
|
||||
"build_tag": 94099,
|
||||
"build_tag_name": "f42-build",
|
||||
"dest_tag": 94094,
|
||||
"dest_tag_name": "f42-updates-candidate",
|
||||
"id": 88,
|
||||
"name": "rawhide",
|
||||
}
|
||||
assert self.toddler_cls.get_fedora_rawhide_tag(branch="rawhide") == "f42"
|
||||
@pytest.mark.parametrize(
|
||||
"branch,target,tag",
|
||||
(
|
||||
(
|
||||
"rawhide",
|
||||
{
|
||||
"build_tag": 94099,
|
||||
"build_tag_name": "f42-build",
|
||||
"dest_tag": 94094,
|
||||
"dest_tag_name": "f42-updates-candidate",
|
||||
"id": 88,
|
||||
"name": "rawhide",
|
||||
},
|
||||
"f42",
|
||||
),
|
||||
(
|
||||
"epel10",
|
||||
{
|
||||
"build_tag": 93222,
|
||||
"build_tag_name": "epel10.0-build",
|
||||
"dest_tag": 93225,
|
||||
"dest_tag_name": "epel10.0-testing-candidate",
|
||||
"id": 40886,
|
||||
"name": "epel10",
|
||||
},
|
||||
"epel10.0",
|
||||
),
|
||||
),
|
||||
ids=("rawhide", "epel10"),
|
||||
)
|
||||
def test_get_tag_from_target(self, branch, target, tag):
|
||||
self.toddler_cls.koji_session.getBuildTarget.return_value = target
|
||||
assert self.toddler_cls.get_tag_from_target(branch=branch) == tag
|
||||
|
||||
def test_get_fedora_rawhide_koji_error(self, caplog):
|
||||
@pytest.mark.parametrize("branch", ("rawhide", "epel10"))
|
||||
def test_get_tag_from_target_error(self, branch, caplog):
|
||||
self.toddler_cls.koji_session.getBuildTarget.side_effect = koji.GenericError(
|
||||
"Failed"
|
||||
)
|
||||
self.toddler_cls.get_fedora_rawhide_tag(branch="rawhide")
|
||||
self.toddler_cls.get_tag_from_target(branch=branch)
|
||||
assert (
|
||||
caplog.records[-1].message
|
||||
== "Failed to get fedora rawhide tag in koji: Failed"
|
||||
)
|
||||
|
||||
def test_get_epel_latest_tag(self):
|
||||
self.toddler_cls.koji_session.getBuildTarget.return_value = {
|
||||
"build_tag": 93222,
|
||||
"build_tag_name": "epel10.0-build",
|
||||
"dest_tag": 93225,
|
||||
"dest_tag_name": "epel10.0-testing-candidate",
|
||||
"id": 40886,
|
||||
"name": "epel10",
|
||||
}
|
||||
|
||||
assert self.toddler_cls.get_epel_latest_tag(branch="epel10") == "epel10.0"
|
||||
|
||||
def test_get_epel_latest_tag_koji_error(self, caplog):
|
||||
self.toddler_cls.koji_session.getBuildTarget.side_effect = koji.GenericError(
|
||||
"Failed"
|
||||
)
|
||||
self.toddler_cls.get_epel_latest_tag(branch="epel10")
|
||||
assert (
|
||||
caplog.records[-1].message
|
||||
== "Failed to get latest epel tag in koji: Failed"
|
||||
caplog.records[-1].message == f"Failed to get {branch} tag in koji: Failed"
|
||||
)
|
||||
|
||||
@patch("toddlers.plugins.koji_block_retired.KojiBlockRetired._create_session")
|
||||
|
@ -337,9 +334,9 @@ class TestProcessBlockRetired:
|
|||
)
|
||||
|
||||
@patch("toddlers.plugins.koji_block_retired.KojiBlockRetired._create_session")
|
||||
@patch("toddlers.plugins.koji_block_retired.KojiBlockRetired.get_epel_latest_tag")
|
||||
def test_branch_epel(self, mock_get_fedora_epel_tag, mock_session, caplog):
|
||||
mock_get_fedora_epel_tag.return_value = "epel10.2"
|
||||
@patch("toddlers.plugins.koji_block_retired.KojiBlockRetired.get_tag_from_target")
|
||||
def test_branch_epel(self, mock_get_tag_from_target, mock_session, caplog):
|
||||
mock_get_tag_from_target.return_value = "epel10.2"
|
||||
caplog.set_level(logging.INFO)
|
||||
message = MagicMock()
|
||||
message.body = {
|
||||
|
|
|
@ -40,24 +40,14 @@ class KojiBlockRetired(ToddlerBase):
|
|||
self.koji_session = koji.ClientSession(koji_url)
|
||||
self.koji_session.gssapi_login(principal=principal, keytab=keytab)
|
||||
|
||||
def get_fedora_rawhide_tag(self, branch):
|
||||
def get_tag_from_target(self, branch):
|
||||
try:
|
||||
_log.info("Getting koji tag for fedora rawhide")
|
||||
_log.info(f"Getting koji tag for {branch} target")
|
||||
target = self.koji_session.getBuildTarget(branch)
|
||||
tag = target["build_tag_name"].removesuffix("-build")
|
||||
return tag
|
||||
except koji.GenericError as e:
|
||||
_log.exception(f"Failed to get fedora rawhide tag in koji: {e}")
|
||||
return None
|
||||
|
||||
def get_epel_latest_tag(self, branch):
|
||||
try:
|
||||
_log.info("Getting koji tag for latest epel release")
|
||||
target = self.koji_session.getBuildTarget(branch)
|
||||
tag = target["build_tag_name"].removesuffix("-build")
|
||||
return tag
|
||||
except koji.GenericError as e:
|
||||
_log.exception(f"Failed to get latest epel tag in koji: {e}")
|
||||
_log.exception(f"Failed to get {branch} tag in koji: {e}")
|
||||
return None
|
||||
|
||||
def accepts_topic(self, topic):
|
||||
|
@ -116,13 +106,13 @@ class KojiBlockRetired(ToddlerBase):
|
|||
self._create_session(koji_url, principal, keytab)
|
||||
|
||||
if branch in ["main", "rawhide"]:
|
||||
tag_name = self.get_fedora_rawhide_tag("rawhide")
|
||||
tag_name = self.get_tag_from_target("rawhide")
|
||||
elif "container" in msg["commit"]["namespace"]:
|
||||
tag_name = (
|
||||
"".join([branch, "-container"]) if "container" not in branch else branch
|
||||
)
|
||||
elif re.match(r"^epel\d{2,}$", branch):
|
||||
tag_name = self.get_epel_latest_tag(branch)
|
||||
tag_name = self.get_tag_from_target(branch)
|
||||
else:
|
||||
tag_name = branch
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue