From 0fcdd3b95d31061c8c6715da8364e4918f2105dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Bompard?= Date: Tue, 17 Dec 2024 16:17:38 +0100 Subject: [PATCH] Don't hardcode src.fedoraproject.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Aurélien Bompard --- tests/conftest.py | 11 ++++ tests/plugins/test_check_commit_rights.py | 68 ++++++++++------------- tests/utils/test_pagure.py | 28 ++++------ toddlers/plugins/check_commit_rights.py | 2 +- toddlers/utils/pagure.py | 12 +--- 5 files changed, 53 insertions(+), 68 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 2ff0a51..19e779e 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -3,6 +3,7 @@ import os import sys from unittest.mock import MagicMock +from fedora_messaging.config import conf as fm_config import pytest from toddlers.utils.cache import cache @@ -35,6 +36,16 @@ def toddler(request, monkeypatch): if obj is make_session: monkeypatch.setattr(toddler_module, name, MagicMock()) + monkeypatch.setitem( + fm_config, + "consumer_config", + { + "default": { + "dist_git_url": "https://src.fedoraproject.org", + }, + }, + ) + toddler_obj = toddler_cls() # disable the cache cache.configure(backend="dogpile.cache.null", replace_existing_backend=True) diff --git a/tests/plugins/test_check_commit_rights.py b/tests/plugins/test_check_commit_rights.py index a583ce5..d917a54 100644 --- a/tests/plugins/test_check_commit_rights.py +++ b/tests/plugins/test_check_commit_rights.py @@ -6,6 +6,17 @@ import pytest import toddlers.plugins.check_commit_rights +@pytest.fixture +def toddler_config(): + return { + "exclude_users": "[]", + "notify_emails": "[]", + "admin_email": "foo@bar", + "mail_server": "127.0.0.1", + "dist_git_url": "https://src.fedoraproject.org", + } + + class TestCheckCommitRightsToddler: toddler_cls = toddlers.plugins.check_commit_rights.CheckCommitRights @@ -49,7 +60,7 @@ class TestCheckCommitRightsToddler: @patch("toddlers.utils.fedora_account.set_fasjson", new=Mock(return_value=True)) @patch("toddlers.utils.fedora_account.get_group_member") - def test_process_no_fas(self, get_group_member, toddler): + def test_process_no_fas(self, get_group_member, toddler, toddler_config): get_group_member.return_value = [] msg = fedora_messaging.api.Message() @@ -57,22 +68,19 @@ class TestCheckCommitRightsToddler: msg.topic = "org.fedoraproject.prod.toddlers.trigger.check_commit_rights" msg.body = {"foo": "bar"} - config = { - "exclude_users": "[]", - "notify_emails": "[]", - } - with pytest.raises( Exception, match=r"Something wrong occurred, I found no packagers. Exiting.", ): - toddler.process(config=config, message=msg, send_email=False) + toddler.process(config=toddler_config, message=msg, send_email=False) @patch("toddlers.utils.fedora_account.set_fasjson", new=Mock(return_value=True)) @patch("toddlers.plugins.check_commit_rights._log.info") @patch("toddlers.utils.notify.send_email") @patch("toddlers.utils.fedora_account.get_group_member") - def test_process_all_right(self, get_group_member, send_email, info, toddler): + def test_process_all_right( + self, get_group_member, send_email, info, toddler, toddler_config + ): req_json = { "pagination": { "page": 1, @@ -104,14 +112,7 @@ class TestCheckCommitRightsToddler: msg.topic = "org.fedoraproject.prod.toddlers.trigger.check_commit_rights" msg.body = {"foo": "bar"} - config = { - "exclude_users": "[]", - "notify_emails": "[]", - "admin_email": "foo@bar", - "mail_server": "127.0.0.1", - } - - assert toddler.process(config=config, message=msg) is None + assert toddler.process(config=toddler_config, message=msg) is None info.assert_any_call( "### Found 4 users with commit privileges but not in packager group ###" ) @@ -128,7 +129,7 @@ class TestCheckCommitRightsToddler: @patch("toddlers.utils.notify.send_email") @patch("toddlers.utils.fedora_account.get_group_member") def test_process_all_right_multiple_pages( - self, get_group_member, send_email, info, toddler + self, get_group_member, send_email, info, toddler, toddler_config ): req_json = [ { @@ -181,14 +182,7 @@ class TestCheckCommitRightsToddler: msg.topic = "org.fedoraproject.prod.toddlers.trigger.check_commit_rights" msg.body = {"foo": "bar"} - config = { - "exclude_users": "[]", - "notify_emails": "[]", - "admin_email": "foo@bar", - "mail_server": "127.0.0.1", - } - - assert toddler.process(config=config, message=msg) is None + assert toddler.process(config=toddler_config, message=msg) is None info.assert_any_call( "### Found 2 users with commit privileges but not in packager group ###" ) @@ -202,7 +196,9 @@ class TestCheckCommitRightsToddler: @patch("toddlers.plugins.check_commit_rights._log.info") @patch("toddlers.utils.notify.send_email") @patch("toddlers.utils.fedora_account.get_group_member") - def test_process_exclude_user(self, get_group_member, send_email, info, toddler): + def test_process_exclude_user( + self, get_group_member, send_email, info, toddler, toddler_config + ): req_json = { "pagination": { "page": 1, @@ -234,14 +230,9 @@ class TestCheckCommitRightsToddler: msg.topic = "org.fedoraproject.prod.toddlers.trigger.check_commit_rights" msg.body = {"foo": "bar"} - config = { - "exclude_users": "['admin_user']", - "notify_emails": "[]", - "admin_email": "foo@bar", - "mail_server": "127.0.0.1", - } + toddler_config["exclude_users"] = ["admin_user"] - assert toddler.process(config=config, message=msg) is None + assert toddler.process(config=toddler_config, message=msg) is None info.assert_any_call( "### Found 3 users with commit privileges but not in packager group ###" ) @@ -256,7 +247,9 @@ class TestCheckCommitRightsToddler: @patch("toddlers.plugins.check_commit_rights._log.info") @patch("toddlers.utils.notify.send_email") @patch("toddlers.utils.fedora_account.get_group_member") - def test_process_no_result(self, get_group_member, send_email, info, toddler): + def test_process_no_result( + self, get_group_member, send_email, info, toddler, toddler_config + ): req_json = { "pagination": { "page": 1, @@ -288,12 +281,7 @@ class TestCheckCommitRightsToddler: msg.topic = "org.fedoraproject.prod.toddlers.trigger.check_commit_rights" msg.body = {"foo": "bar"} - config = { - "exclude_users": "[]", - "notify_emails": "[]", - } - - assert toddler.process(config=config, message=msg) is None + assert toddler.process(config=toddler_config, message=msg) is None info.assert_any_call( "### Found 0 users with commit privileges but not in packager group ###" ) diff --git a/tests/utils/test_pagure.py b/tests/utils/test_pagure.py index 17e3f33..ba95f78 100644 --- a/tests/utils/test_pagure.py +++ b/tests/utils/test_pagure.py @@ -1329,7 +1329,7 @@ class TestPagureIsProjectOrphaned: result = self.pagure.is_project_orphaned(namespace, repo) self.pagure._requests_session.get.assert_called_with( - "https://src.fedoraproject.org/_dg/bzoverrides/" + namespace + "/" + repo, + "https://pagure.io/_dg/bzoverrides/" + namespace + "/" + repo, headers=self.pagure.get_auth_header(), ) @@ -1354,7 +1354,7 @@ class TestPagureIsProjectOrphaned: result = self.pagure.is_project_orphaned(namespace, repo) self.pagure._requests_session.get.assert_called_with( - "https://src.fedoraproject.org/_dg/bzoverrides/" + namespace + "/" + repo, + "https://pagure.io/_dg/bzoverrides/" + namespace + "/" + repo, headers=self.pagure.get_auth_header(), ) @@ -1381,7 +1381,7 @@ class TestPagureIsProjectOrphaned: self.pagure.is_project_orphaned(namespace, repo) self.pagure._requests_session.get.assert_called_with( - "https://src.fedoraproject.org/_dg/bzoverrides/" + namespace + "/" + repo, + "https://pagure.io/_dg/bzoverrides/" + namespace + "/" + repo, headers=self.pagure.get_auth_header(), ) @@ -1422,7 +1422,7 @@ class TestPagureAssignMaintainerToProject: self.pagure.assign_maintainer_to_project(namespace, repo, maintainer_fas) self.pagure._requests_session.patch.assert_called_with( - "https://src.fedoraproject.org/_dg/bzoverrides/" + namespace + "/" + repo, + "https://pagure.io/_dg/bzoverrides/" + namespace + "/" + repo, data=json.dumps(payload), headers=self.pagure.get_auth_header(), ) @@ -1452,7 +1452,7 @@ class TestPagureAssignMaintainerToProject: self.pagure.assign_maintainer_to_project(namespace, repo, maintainer_fas) self.pagure._requests_session.patch.assert_called_with( - "https://src.fedoraproject.org/_dg/bzoverrides/" + namespace + "/" + repo, + "https://pagure.io/_dg/bzoverrides/" + namespace + "/" + repo, data=json.dumps(payload), headers=self.pagure.get_auth_header(), ) @@ -1737,9 +1737,7 @@ class TestPagureGetRetiredPackages: assert result == package_list self.pagure._requests_session.get.assert_called_with( - "https://src.fedoraproject.org/lookaside/retired_in_{0}.json".format( - branch - ), + "https://pagure.io/lookaside/retired_in_{0}.json".format(branch), headers=self.pagure.get_auth_header(), ) @@ -1760,9 +1758,7 @@ class TestPagureGetRetiredPackages: self.pagure.get_retired_packages(branch) self.pagure._requests_session.get.assert_called_with( - "https://src.fedoraproject.org/lookaside/retired_in_{0}.json".format( - branch - ), + "https://pagure.io/lookaside/retired_in_{0}.json".format(branch), headers=self.pagure.get_auth_header(), ) @@ -1782,9 +1778,7 @@ class TestPagureGetRetiredPackages: assert result == [] self.pagure._requests_session.get.assert_called_with( - "https://src.fedoraproject.org/lookaside/retired_in_{0}.json".format( - branch - ), + "https://pagure.io/lookaside/retired_in_{0}.json".format(branch), headers=self.pagure.get_auth_header(), ) @@ -1804,9 +1798,7 @@ class TestPagureGetRetiredPackages: self.pagure.get_retired_packages(branch) self.pagure._requests_session.get.assert_called_with( - "https://src.fedoraproject.org/lookaside/retired_in_{0}.json".format( - branch - ), + "https://pagure.io/lookaside/retired_in_{0}.json".format(branch), headers=self.pagure.get_auth_header(), ) @@ -1893,7 +1885,7 @@ class TestPagureHasDeadPackageOnBranch: response_mock = MagicMock() response_mock.ok = True response_mock.json.return_value = { - "content_url": "https://src.fedoraproject.org/api", + "content_url": "https://src.stg.fedoraproject.org/api", "name": "dead.package", "type": "file", } diff --git a/toddlers/plugins/check_commit_rights.py b/toddlers/plugins/check_commit_rights.py index c00489b..bea7bc5 100644 --- a/toddlers/plugins/check_commit_rights.py +++ b/toddlers/plugins/check_commit_rights.py @@ -71,7 +71,7 @@ class CheckCommitRights(ToddlerBase): not_packagers = [] while True: req = self.requests_session.get( - "https://src.fedoraproject.org/api/0/projects?fork=false&namespace=rpms" + f"{config['dist_git_url']}/api/0/projects?fork=false&namespace=rpms" f"&per_page=100&page={page}" ) data = req.json() diff --git a/toddlers/utils/pagure.py b/toddlers/utils/pagure.py index 31f4323..2be8efa 100644 --- a/toddlers/utils/pagure.py +++ b/toddlers/utils/pagure.py @@ -872,9 +872,7 @@ class Pagure: Raises: `toddlers.utils.exceptions.PagureError``: When getting project maintainers fails. """ - endpoint_url = ( - "https://src.fedoraproject.org/_dg/bzoverrides/" + namespace + "/" + repo - ) + endpoint_url = f"{self._pagure_url}/_dg/bzoverrides/{namespace}/{repo}" headers = self.get_auth_header() log.debug("Getting project '{0}/{1}' maintainers.") @@ -913,9 +911,7 @@ class Pagure: Raises: `toddlers.utils.exceptions.PagureError``: When setting project maintainer fails. """ - endpoint_url = ( - "https://src.fedoraproject.org/_dg/bzoverrides/" + namespace + "/" + repo - ) + endpoint_url = f"{self._pagure_url}/_dg/bzoverrides/{namespace}/{repo}" headers = self.get_auth_header() payload = { "EPEL Maintainer name": maintainer_fas, @@ -1124,9 +1120,7 @@ class Pagure: `toddlers.utils.exceptions.PagureError``: When retrieving the retired list fails. """ result = [] - endpoint_url = ( - "https://src.fedoraproject.org/lookaside/retired_in_{0}.json".format(branch) - ) + endpoint_url = f"{self._pagure_url}/lookaside/retired_in_{branch}.json" headers = self.get_auth_header() log.debug("Retrieving retired packages for '%s'", branch)