| |
@@ -1,4 +1,5 @@
|
| |
from __future__ import print_function
|
| |
+ import os
|
| |
|
| |
import dist_git_auth
|
| |
|
| |
@@ -405,6 +406,7 @@
|
| |
"RCM_BRANCHES": ["refs/heads/f[0-9]+"],
|
| |
"ACL_PROTECTED_NAMESPACES": ["rpms", "modules", "container"],
|
| |
"PDC_URL": "invalid://",
|
| |
+ "BODHI_URL": "invalid://",
|
| |
}
|
| |
|
| |
def test_protected_blacklisted_ref(self):
|
| |
@@ -451,7 +453,28 @@
|
| |
def test_protected_unsupported_branch(self, mock_requests):
|
| |
res = Mock()
|
| |
res.ok = True
|
| |
- res.json.return_value = {"results": [{"active": False}]}
|
| |
+ res.json.return_value = {
|
| |
+ "name": "F34",
|
| |
+ "long_name": "Fedora 34",
|
| |
+ "version": "34",
|
| |
+ "id_prefix": "FEDORA",
|
| |
+ "branch": "f34",
|
| |
+ "dist_tag": "f34",
|
| |
+ "stable_tag": "f34-updates",
|
| |
+ "testing_tag": "f34-updates-testing",
|
| |
+ "candidate_tag": "f34-updates-candidate",
|
| |
+ "pending_signing_tag": "f34-signing-pending",
|
| |
+ "pending_testing_tag": "f34-updates-testing-pending",
|
| |
+ "pending_stable_tag": "f34-updates-pending",
|
| |
+ "override_tag": "f34-override",
|
| |
+ "mail_template": "fedora_errata_template",
|
| |
+ "state": "archived",
|
| |
+ "composed_by_bodhi": True,
|
| |
+ "create_automatic_updates": False,
|
| |
+ "package_manager": "dnf",
|
| |
+ "testing_repository": "updates-testing",
|
| |
+ "eol": None,
|
| |
+ }
|
| |
mock_requests.get.return_value = res
|
| |
project = self.create_namespaced_project("rpms", "test")
|
| |
|
| |
@@ -470,14 +493,37 @@
|
| |
)
|
| |
)
|
| |
|
| |
- self.expect_info_msg("Branch refs/heads/f26 is unsupported. Cannot push to a disabled branch (maybe eol?).")
|
| |
+ self.expect_info_msg(
|
| |
+ "Branch refs/heads/f26 is unsupported. Cannot push to a disabled branch (maybe eol?)."
|
| |
+ )
|
| |
|
| |
@patch("dist_git_auth.requests")
|
| |
def test_protected_supported_branch_committer(self, mock_requests):
|
| |
project = self.create_namespaced_project("rpms", "test")
|
| |
res = Mock()
|
| |
res.ok = True
|
| |
- res.json.return_value = {"results": [{"active": True}]}
|
| |
+ res.json.return_value = {
|
| |
+ "name": "F39",
|
| |
+ "long_name": "Fedora 39",
|
| |
+ "version": "39",
|
| |
+ "id_prefix": "FEDORA",
|
| |
+ "branch": "f39",
|
| |
+ "dist_tag": "f39",
|
| |
+ "stable_tag": "f39-updates",
|
| |
+ "testing_tag": "f39-updates-testing",
|
| |
+ "candidate_tag": "f39-updates-candidate",
|
| |
+ "pending_signing_tag": "f39-signing-pending",
|
| |
+ "pending_testing_tag": "f39-updates-testing-pending",
|
| |
+ "pending_stable_tag": "f39-updates-pending",
|
| |
+ "override_tag": "f39-override",
|
| |
+ "mail_template": "fedora_errata_template",
|
| |
+ "state": "current",
|
| |
+ "composed_by_bodhi": True,
|
| |
+ "create_automatic_updates": False,
|
| |
+ "package_manager": "dnf",
|
| |
+ "testing_repository": "updates-testing",
|
| |
+ "eol": "2024-11-12",
|
| |
+ }
|
| |
mock_requests.get.return_value = res
|
| |
|
| |
self.assertTrue(
|
| |
@@ -502,7 +548,28 @@
|
| |
project = self.create_namespaced_project("rpms", "test")
|
| |
res = Mock()
|
| |
res.ok = True
|
| |
- res.json.return_value = {"results": [{"active": True}]}
|
| |
+ res.json.return_value = {
|
| |
+ "name": "F39",
|
| |
+ "long_name": "Fedora 39",
|
| |
+ "version": "39",
|
| |
+ "id_prefix": "FEDORA",
|
| |
+ "branch": "f39",
|
| |
+ "dist_tag": "f39",
|
| |
+ "stable_tag": "f39-updates",
|
| |
+ "testing_tag": "f39-updates-testing",
|
| |
+ "candidate_tag": "f39-updates-candidate",
|
| |
+ "pending_signing_tag": "f39-signing-pending",
|
| |
+ "pending_testing_tag": "f39-updates-testing-pending",
|
| |
+ "pending_stable_tag": "f39-updates-pending",
|
| |
+ "override_tag": "f39-override",
|
| |
+ "mail_template": "fedora_errata_template",
|
| |
+ "state": "current",
|
| |
+ "composed_by_bodhi": True,
|
| |
+ "create_automatic_updates": False,
|
| |
+ "package_manager": "dnf",
|
| |
+ "testing_repository": "updates-testing",
|
| |
+ "eol": "2024-11-12",
|
| |
+ }
|
| |
mock_requests.get.return_value = res
|
| |
|
| |
self.assertFalse(
|
| |
@@ -527,7 +594,7 @@
|
| |
project = self.create_namespaced_project("rpms", "test")
|
| |
res = Mock()
|
| |
res.ok = True
|
| |
- res.json.return_value = {"results": []}
|
| |
+ res.json.return_value = {}
|
| |
mock_requests.get.return_value = res
|
| |
|
| |
self.assertFalse(
|
| |
@@ -547,12 +614,23 @@
|
| |
|
| |
self.expect_info_msg("Unspecified ref refs/heads/f28 is blocked")
|
| |
|
| |
+ def test_is_not_retired_package(self):
|
| |
+ projects = tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
|
| |
+ tests.add_content_git_repo(projects[0])
|
| |
+ self.assertTrue(self.dga.is_not_retired_package("master", projects[0]))
|
| |
+
|
| |
+ def test_is_not_retired_package_false(self):
|
| |
+ projects = tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
|
| |
+ tests.add_content_git_repo(projects[0])
|
| |
+ tests.add_readme_git_repo(projects[0], readme_name="dead.package")
|
| |
+ self.assertFalse(self.dga.is_not_retired_package("master", projects[0]))
|
| |
+
|
| |
@patch("dist_git_auth.requests")
|
| |
def test_protected_unspecified_branch_normal_committer(self, mock_requests):
|
| |
project = self.create_namespaced_project("rpms", "test")
|
| |
res = Mock()
|
| |
res.ok = True
|
| |
- res.json.return_value = {"results": []}
|
| |
+ res.json.return_value = {}
|
| |
mock_requests.get.return_value = res
|
| |
|
| |
self.assertTrue(
|
| |
@@ -577,7 +655,7 @@
|
| |
project = self.create_namespaced_project("rpms", "test")
|
| |
res = Mock()
|
| |
res.ok = True
|
| |
- res.json.return_value = {"results": []}
|
| |
+ res.json.return_value = {}
|
| |
mock_requests.get.return_value = res
|
| |
|
| |
self.assertFalse(
|
| |
@@ -608,6 +686,7 @@
|
| |
"RCM_BRANCHES": ["refs/heads/f[0-9]+"],
|
| |
"ACL_PROTECTED_NAMESPACES": ["rpms", "modules", "container"],
|
| |
"PDC_URL": "invalid://",
|
| |
+ "BODHI_URL": "invalid://",
|
| |
}
|
| |
|
| |
def setUp(self):
|
| |
@@ -633,7 +712,7 @@
|
| |
project = get_project(self.session, name="test", namespace="rpms")
|
| |
res = Mock()
|
| |
res.ok = True
|
| |
- res.json.return_value = {"results": []}
|
| |
+ res.json.return_value = {}
|
| |
mock_requests.get.return_value = res
|
| |
|
| |
self.assertFalse(
|
| |
@@ -659,7 +738,7 @@
|
| |
project = get_project(self.session, name="test", namespace="rpms")
|
| |
res = Mock()
|
| |
res.ok = True
|
| |
- res.json.return_value = {"results": []}
|
| |
+ res.json.return_value = {}
|
| |
mock_requests.get.return_value = res
|
| |
|
| |
self.assertTrue(
|
| |
@@ -801,7 +880,7 @@
|
| |
project = self.create_namespaced_project("rpms", "test")
|
| |
res = Mock()
|
| |
res.ok = True
|
| |
- res.json.return_value = {"results": []}
|
| |
+ res.json.return_value = {}
|
| |
mock_requests.get.return_value = res
|
| |
|
| |
self.assertFalse(
|
| |
@@ -826,7 +905,7 @@
|
| |
project = self.create_namespaced_project("rpms", "test")
|
| |
res = Mock()
|
| |
res.ok = True
|
| |
- res.json.return_value = {"results": []}
|
| |
+ res.json.return_value = {}
|
| |
mock_requests.get.return_value = res
|
| |
|
| |
self.assertFalse(
|
| |
@@ -857,6 +936,7 @@
|
| |
"RCM_BRANCHES": ["refs/heads/f[0-9]+"],
|
| |
"ACL_PROTECTED_NAMESPACES": ["rpms", "modules", "container"],
|
| |
"PDC_URL": "invalid://",
|
| |
+ "BODHI_URL": "invalid://",
|
| |
"PDC_BRANCH_OVERRIDES": {"rpms": {"refs/heads/main": "refs/heads/rawhide"}},
|
| |
}
|
| |
|
| |
@@ -880,11 +960,11 @@
|
| |
self.assertEqual(msg, "User added")
|
| |
|
| |
@patch("dist_git_auth.requests")
|
| |
- def test_pushing_to_rpms_main_calls_pdc_correctly(self, mock_requests):
|
| |
+ def test_pushing_to_rpms_main_calls_bodhi_correctly(self, mock_requests):
|
| |
project = get_project(self.session, name="test", namespace="rpms")
|
| |
res = Mock()
|
| |
res.ok = True
|
| |
- res.json.return_value = {"results": []}
|
| |
+ res.json.return_value = {}
|
| |
mock_requests.get.return_value = res
|
| |
|
| |
self.assertFalse(
|
| |
@@ -905,17 +985,14 @@
|
| |
self.expect_info_msg("Committer: False")
|
| |
self.expect_info_msg("Fall-through deny")
|
| |
|
| |
- mock_requests.get.assert_called_with(
|
| |
- "invalid://component-branches/?global_component=test"
|
| |
- "&name=rawhide&type=rpm&fields=active"
|
| |
- )
|
| |
+ mock_requests.get.assert_not_called()
|
| |
|
| |
@patch("dist_git_auth.requests")
|
| |
def test_pushing_to_rpms_rawhide_calls_pdc_correctly(self, mock_requests):
|
| |
project = get_project(self.session, name="test", namespace="rpms")
|
| |
res = Mock()
|
| |
res.ok = True
|
| |
- res.json.return_value = {"results": []}
|
| |
+ res.json.return_value = {}
|
| |
mock_requests.get.return_value = res
|
| |
|
| |
self.assertFalse(
|
| |
@@ -936,17 +1013,14 @@
|
| |
self.expect_info_msg("Committer: False")
|
| |
self.expect_info_msg("Fall-through deny")
|
| |
|
| |
- mock_requests.get.assert_called_with(
|
| |
- "invalid://component-branches/?global_component=test"
|
| |
- "&name=rawhide&type=rpm&fields=active"
|
| |
- )
|
| |
+ mock_requests.get.assert_not_called()
|
| |
|
| |
@patch("dist_git_auth.requests")
|
| |
- def test_pushing_to_containers_calls_pdc_correctly(self, mock_requests):
|
| |
+ def test_pushing_to_containers_calls_bodhi_correctly(self, mock_requests):
|
| |
project = get_project(self.session, name="cockpit", namespace="container")
|
| |
res = Mock()
|
| |
res.ok = True
|
| |
- res.json.return_value = {"results": []}
|
| |
+ res.json.return_value = {}
|
| |
mock_requests.get.return_value = res
|
| |
|
| |
self.assertTrue(
|
| |
@@ -967,7 +1041,4 @@
|
| |
self.expect_info_msg("Committer: True")
|
| |
self.expect_info_msg("Committer push")
|
| |
|
| |
- mock_requests.get.assert_called_with(
|
| |
- "invalid://component-branches/?global_component=cockpit"
|
| |
- "&name=epel8&type=container&fields=active"
|
| |
- )
|
| |
+ mock_requests.get.assert_called_with("invalid://releases/epel8")
|
| |
Removed pdc query, which was checking if the branch is active and if the package is not retired on that branch.
Now
- active branches are checked on bodhi
- info about package (active/retired) is taken from a git ls-tree command ran from pagure, PR here: https://pagure.io/pagure/pull-request/5425 and BODHI_URL has to be added to ansible, PR here: https://pagure.io/fedora-infra/ansible/pull-request/1706#
Signed-off-by: Lenka Segura lsegura@redhat.com