| |
@@ -9,13 +9,11 @@
|
| |
|
| |
|
| |
class TestPDCRetiredPackagesToddler:
|
| |
- def test_accepts_topic_invalid(self):
|
| |
- assert (
|
| |
- toddlers.plugins.pdc_retired_packages.PDCRetiredPackages.accepts_topic(
|
| |
- "foo.bar"
|
| |
- )
|
| |
- is False
|
| |
- )
|
| |
+
|
| |
+ toddler_cls = toddlers.plugins.pdc_retired_packages.PDCRetiredPackages
|
| |
+
|
| |
+ def test_accepts_topic_invalid(self, toddler):
|
| |
+ assert toddler.accepts_topic("foo.bar") is False
|
| |
|
| |
@pytest.mark.parametrize(
|
| |
"topic",
|
| |
@@ -28,14 +26,12 @@
|
| |
"org.fedoraproject.stg.git.receive",
|
| |
],
|
| |
)
|
| |
- def test_accepts_topic_valid(self, topic):
|
| |
- assert toddlers.plugins.pdc_retired_packages.PDCRetiredPackages.accepts_topic(
|
| |
- topic
|
| |
- )
|
| |
+ def test_accepts_topic_valid(self, toddler, topic):
|
| |
+ assert toddler.accepts_topic(topic)
|
| |
|
| |
@patch("toddlers.plugins.pdc_retired_packages.PDCRetiredPackages._process_dist_git")
|
| |
- @patch("pdc_client.PDCClient")
|
| |
- def test_process_full_dist_git(self, pdc, process_dg):
|
| |
+ @patch("toddlers.plugins.pdc_retired_packages.pdc_client_for_config")
|
| |
+ def test_process_full_dist_git(self, pdc, process_dg, toddler):
|
| |
client = Mock()
|
| |
pdc.return_value = client
|
| |
|
| |
@@ -44,17 +40,15 @@
|
| |
msg.topic = "org.fedoraproject.prod.toddlers.trigger.pdc_retired_packages"
|
| |
msg.body = {}
|
| |
|
| |
- toddlers.plugins.pdc_retired_packages.PDCRetiredPackages.process(
|
| |
- {"config": "foobar"}, msg
|
| |
- )
|
| |
+ toddler.process({"config": "foobar"}, msg)
|
| |
|
| |
process_dg.assert_called_once_with({"config": "foobar"}, client)
|
| |
|
| |
@patch(
|
| |
"toddlers.plugins.pdc_retired_packages.PDCRetiredPackages._process_single_package"
|
| |
)
|
| |
- @patch("pdc_client.PDCClient")
|
| |
- def test_process_single_package(self, pdc, process_dg):
|
| |
+ @patch("toddlers.plugins.pdc_retired_packages.pdc_client_for_config")
|
| |
+ def test_process_single_package(self, pdc, process_dg, toddler):
|
| |
client = Mock()
|
| |
pdc.return_value = client
|
| |
|
| |
@@ -63,14 +57,12 @@
|
| |
msg.topic = "org.fedoraproject.prod.git.receive"
|
| |
msg.body = {}
|
| |
|
| |
- toddlers.plugins.pdc_retired_packages.PDCRetiredPackages.process(
|
| |
- {"config": "foobar"}, msg
|
| |
- )
|
| |
+ toddler.process({"config": "foobar"}, msg)
|
| |
|
| |
process_dg.assert_called_once_with({"config": "foobar"}, client, msg)
|
| |
|
| |
- @patch("toddlers.plugins.pdc_retired_packages._is_retired_in_dist_git")
|
| |
- def test_process_dist_git(self, retired_in_dg):
|
| |
+ def test_process_dist_git(self, toddler):
|
| |
+ retired_in_dg = toddler._is_retired_in_dist_git = MagicMock()
|
| |
page_component_branches = [
|
| |
{
|
| |
"id": 44,
|
| |
@@ -116,9 +108,7 @@
|
| |
msg.topic = "org.fedoraproject.prod.toddlers.trigger.pdc_retired_packages"
|
| |
msg.body = {}
|
| |
|
| |
- toddlers.plugins.pdc_retired_packages.PDCRetiredPackages._process_dist_git(
|
| |
- {}, client
|
| |
- )
|
| |
+ toddler._process_dist_git({}, client)
|
| |
|
| |
client.get_paged.assert_has_calls(calls=[call(page_component_branches)])
|
| |
retired_in_dg.assert_has_calls(
|
| |
@@ -132,8 +122,8 @@
|
| |
]
|
| |
)
|
| |
|
| |
- @patch("toddlers.plugins.pdc_retired_packages._is_retired_in_dist_git")
|
| |
- def test_process_dist_git_invalid_pdc_namespace(self, retired_in_dg, caplog):
|
| |
+ def test_process_dist_git_invalid_pdc_namespace(self, caplog, toddler):
|
| |
+ retired_in_dg = toddler._is_retired_in_dist_git = MagicMock()
|
| |
caplog.set_level(logging.DEBUG)
|
| |
page_component_branches = [
|
| |
{
|
| |
@@ -180,9 +170,7 @@
|
| |
msg.topic = "org.fedoraproject.prod.toddlers.trigger.pdc_retired_packages"
|
| |
msg.body = {}
|
| |
|
| |
- toddlers.plugins.pdc_retired_packages.PDCRetiredPackages._process_dist_git(
|
| |
- {}, client
|
| |
- )
|
| |
+ toddler._process_dist_git({}, client)
|
| |
|
| |
client.get_paged.assert_has_calls(calls=[call(page_component_branches)])
|
| |
retired_in_dg.assert_has_calls(
|
| |
@@ -199,9 +187,9 @@
|
| |
in caplog.text
|
| |
)
|
| |
|
| |
- @patch("toddlers.plugins.pdc_retired_packages._retire_branch")
|
| |
- @patch("toddlers.plugins.pdc_retired_packages._is_retired_in_dist_git")
|
| |
- def test_process_dist_git_full_distgit(self, retired_in_dg, retire_branch):
|
| |
+ def test_process_dist_git_full_distgit(self, toddler):
|
| |
+ retired_in_dg = toddler._is_retired_in_dist_git = MagicMock()
|
| |
+ retire_branch = toddler._retire_branch = MagicMock()
|
| |
page_component_branches = [
|
| |
{
|
| |
"id": 44,
|
| |
@@ -247,9 +235,7 @@
|
| |
msg.topic = "org.fedoraproject.prod.toddlers.trigger.pdc_retired_packages"
|
| |
msg.body = {}
|
| |
|
| |
- toddlers.plugins.pdc_retired_packages.PDCRetiredPackages._process_dist_git(
|
| |
- {}, client
|
| |
- )
|
| |
+ toddler._process_dist_git({}, client)
|
| |
|
| |
client.get_paged.assert_has_calls(calls=[call(page_component_branches)])
|
| |
retired_in_dg.assert_has_calls(
|
| |
@@ -310,7 +296,7 @@
|
| |
]
|
| |
)
|
| |
|
| |
- def test__process_single_package_regular_commit(self, caplog):
|
| |
+ def test__process_single_package_regular_commit(self, toddler, caplog):
|
| |
caplog.set_level(logging.INFO)
|
| |
client = MagicMock()
|
| |
|
| |
@@ -328,13 +314,11 @@
|
| |
}
|
| |
}
|
| |
|
| |
- toddlers.plugins.pdc_retired_packages.PDCRetiredPackages._process_single_package(
|
| |
- {}, client, msg
|
| |
- )
|
| |
+ toddler._process_single_package({}, client, msg)
|
| |
|
| |
assert caplog.records[-1].message == "No dead.package in the commit, bailing"
|
| |
|
| |
- def test__process_single_package_un_retirement(self, caplog):
|
| |
+ def test__process_single_package_un_retirement(self, toddler, caplog):
|
| |
caplog.set_level(logging.INFO)
|
| |
client = MagicMock()
|
| |
|
| |
@@ -353,13 +337,11 @@
|
| |
}
|
| |
}
|
| |
|
| |
- toddlers.plugins.pdc_retired_packages.PDCRetiredPackages._process_single_package(
|
| |
- {}, client, msg
|
| |
- )
|
| |
+ toddler._process_single_package({}, client, msg)
|
| |
|
| |
assert caplog.records[-1].message == "dead.package file was not added, bailing"
|
| |
|
| |
- def test__process_single_package_incomplete_config(self, caplog):
|
| |
+ def test__process_single_package_incomplete_config(self, toddler, caplog):
|
| |
caplog.set_level(logging.INFO)
|
| |
client = MagicMock()
|
| |
|
| |
@@ -381,13 +363,11 @@
|
| |
}
|
| |
}
|
| |
|
| |
- toddlers.plugins.pdc_retired_packages.PDCRetiredPackages._process_single_package(
|
| |
- {}, client, msg
|
| |
- )
|
| |
+ toddler._process_single_package({}, client, msg)
|
| |
|
| |
assert caplog.records[-1].message == "No check URL configured, ignoring"
|
| |
|
| |
- def test__process_single_package_package_not_in_pdc(self, caplog):
|
| |
+ def test__process_single_package_package_not_in_pdc(self, toddler, caplog):
|
| |
caplog.set_level(logging.INFO)
|
| |
|
| |
page_component_branches = {
|
| |
@@ -414,7 +394,7 @@
|
| |
}
|
| |
}
|
| |
|
| |
- toddlers.plugins.pdc_retired_packages.PDCRetiredPackages._process_single_package(
|
| |
+ toddler._process_single_package(
|
| |
{
|
| |
"file_check_url": "https://src.fedoraproject.org/"
|
| |
"%(namespace)s/%(repo)s/blob/%(branch)s/f/%(file)s",
|
| |
@@ -425,7 +405,7 @@
|
| |
|
| |
assert caplog.records[-1].message == '"rpms/0ad" was not found in PDC'
|
| |
|
| |
- def test__process_single_package_namespace_not_in_pdc(self, caplog):
|
| |
+ def test__process_single_package_namespace_not_in_pdc(self, toddler, caplog):
|
| |
caplog.set_level(logging.INFO)
|
| |
|
| |
page_component_branches = {
|
| |
@@ -452,7 +432,7 @@
|
| |
}
|
| |
}
|
| |
|
| |
- toddlers.plugins.pdc_retired_packages.PDCRetiredPackages._process_single_package(
|
| |
+ toddler._process_single_package(
|
| |
{
|
| |
"file_check_url": "https://src.fedoraproject.org/"
|
| |
"%(namespace)s/%(repo)s/blob/%(branch)s/f/%(file)s",
|
| |
@@ -466,7 +446,7 @@
|
| |
== "Ignoring namespace 'flatpack', error: The namespace \"flatpack\" is not supported"
|
| |
)
|
| |
|
| |
- def test__process_single_package_package_inactive(self, caplog):
|
| |
+ def test__process_single_package_package_inactive(self, toddler, caplog):
|
| |
caplog.set_level(logging.INFO)
|
| |
|
| |
page_component_branches = {
|
| |
@@ -504,7 +484,7 @@
|
| |
}
|
| |
}
|
| |
|
| |
- toddlers.plugins.pdc_retired_packages.PDCRetiredPackages._process_single_package(
|
| |
+ toddler._process_single_package(
|
| |
{
|
| |
"file_check_url": "https://src.fedoraproject.org/"
|
| |
"%(namespace)s/%(repo)s/blob/%(branch)s/f/%(file)s",
|
| |
@@ -515,12 +495,11 @@
|
| |
|
| |
assert caplog.records[-1].message == '"rpms/0ad" not active in PDC in master'
|
| |
|
| |
- @patch("requests.head")
|
| |
- def test__process_single_package_package_not_retired(self, req, caplog):
|
| |
+ def test__process_single_package_package_not_retired(self, toddler, caplog):
|
| |
caplog.set_level(logging.INFO)
|
| |
resp = Mock()
|
| |
resp.status_code = 404
|
| |
- req.return_value = resp
|
| |
+ toddler.requests_session.head.return_value = resp
|
| |
|
| |
page_component_branches = {
|
| |
"count": 1,
|
| |
@@ -557,7 +536,7 @@
|
| |
}
|
| |
}
|
| |
|
| |
- toddlers.plugins.pdc_retired_packages.PDCRetiredPackages._process_single_package(
|
| |
+ toddler._process_single_package(
|
| |
{
|
| |
"file_check_url": "https://src.fedoraproject.org/"
|
| |
"%(namespace)s/%(repo)s/blob/%(branch)s/f/%(file)s",
|
| |
@@ -571,13 +550,12 @@
|
| |
== "Seems not to actually be retired, possibly a merge commit?"
|
| |
)
|
| |
|
| |
- @patch("toddlers.plugins.pdc_retired_packages._retire_branch")
|
| |
- @patch("requests.head")
|
| |
- def test__process_single_package(self, req, retire, caplog):
|
| |
+ def test__process_single_package(self, toddler, caplog):
|
| |
+ toddler._retire_branch = MagicMock()
|
| |
caplog.set_level(logging.INFO)
|
| |
resp = Mock()
|
| |
resp.status_code = 200
|
| |
- req.return_value = resp
|
| |
+ toddler.requests_session.head.return_value = resp
|
| |
|
| |
page_component_branches = {
|
| |
"count": 1,
|
| |
@@ -614,7 +592,7 @@
|
| |
}
|
| |
}
|
| |
|
| |
- toddlers.plugins.pdc_retired_packages.PDCRetiredPackages._process_single_package(
|
| |
+ toddler._process_single_package(
|
| |
{
|
| |
"file_check_url": "https://src.fedoraproject.org/"
|
| |
"%(namespace)s/%(repo)s/blob/%(branch)s/f/%(file)s",
|
| |
@@ -623,40 +601,36 @@
|
| |
msg,
|
| |
)
|
| |
|
| |
- retire.assert_called_once_with(client, page_component_branches["results"][0])
|
| |
+ toddler._retire_branch.assert_called_once_with(
|
| |
+ client, page_component_branches["results"][0]
|
| |
+ )
|
| |
|
| |
- @patch("toddlers.plugins.pdc_retired_packages.requests_session.head")
|
| |
- def test__is_retired_in_dist_git(self, req):
|
| |
+ def test__is_retired_in_dist_git(self, toddler):
|
| |
resp = Mock()
|
| |
resp.status_code = 200
|
| |
- req.return_value = resp
|
| |
+ toddler.requests_session.head.return_value = resp
|
| |
|
| |
- assert toddlers.plugins.pdc_retired_packages._is_retired_in_dist_git(
|
| |
- "rpms", "guake", "f33"
|
| |
- )
|
| |
- req.assert_called_once_with(
|
| |
+ assert toddler._is_retired_in_dist_git("rpms", "guake", "f33")
|
| |
+ toddler.requests_session.head.assert_called_once_with(
|
| |
"https://src.fedoraproject.org//rpms/guake/raw/f33/f/dead.package"
|
| |
)
|
| |
|
| |
- @patch("toddlers.plugins.pdc_retired_packages.requests_session.head")
|
| |
- def test__is_retired_in_dist_git_internal_error(self, req):
|
| |
+ def test__is_retired_in_dist_git_internal_error(self, toddler):
|
| |
resp = Mock()
|
| |
resp.status_code = 500
|
| |
- req.return_value = resp
|
| |
+ toddler.requests_session.head.return_value = resp
|
| |
|
| |
with pytest.raises(
|
| |
ValueError,
|
| |
match=r"The connection to dist_git failed. Retirement status could "
|
| |
"not be determined. The status code was: 500. The content was: .*",
|
| |
):
|
| |
- toddlers.plugins.pdc_retired_packages._is_retired_in_dist_git(
|
| |
- "rpms", "guake", "f33"
|
| |
- )
|
| |
- req.assert_called_once_with(
|
| |
+ toddler._is_retired_in_dist_git("rpms", "guake", "f33")
|
| |
+ toddler.requests_session.head.assert_called_once_with(
|
| |
"https://src.fedoraproject.org//rpms/guake/raw/f33/f/dead.package"
|
| |
)
|
| |
|
| |
- def test_retire_branch(self, caplog):
|
| |
+ def test_retire_branch(self, toddler, caplog):
|
| |
caplog.set_level(logging.INFO)
|
| |
today = datetime.datetime.utcnow().date()
|
| |
eol = (datetime.datetime.utcnow() + datetime.timedelta(days=60)).date()
|
| |
@@ -671,7 +645,7 @@
|
| |
"critical_path": False,
|
| |
}
|
| |
|
| |
- toddlers.plugins.pdc_retired_packages._retire_branch(pdc, branch)
|
| |
+ toddler._retire_branch(pdc, branch)
|
| |
|
| |
assert (
|
| |
caplog.records[-1].message
|
| |
This contains some fixes for
the runnersome tests and introduces default configuration which can be shared between and overridden in toddlers.