From a28e0735a1e7128197a09d1ee2cfd8c04d6a7667 Mon Sep 17 00:00:00 2001 From: Maxwell G Date: Thu, 10 Mar 2022 18:24:37 -0600 Subject: [PATCH] Add patch to fix failing tests and FTBFS with Pytest 7. Resolves: rhbz#2059937 --- ansible-core.spec | 9 ++- fix-tests-failing-on-pytest-7.patch | 108 ++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 2 deletions(-) create mode 100644 fix-tests-failing-on-pytest-7.patch diff --git a/ansible-core.spec b/ansible-core.spec index 825b518..2be56cb 100644 --- a/ansible-core.spec +++ b/ansible-core.spec @@ -15,12 +15,13 @@ Name: ansible-core Summary: A radically simple IT automation system Version: 2.12.3 -Release: 1%{?betaver}%{?dist} +Release: 2%{?betaver}%{?dist} License: GPLv3+ Source0: %pypi_source ansible-core %{version}%{?betaver} +Patch0: https://github.com/ansible/ansible/pull/76670.patch#/fix-tests-failing-on-pytest-7.patch -Url: http://ansible.com +Url: https://ansible.com BuildArch: noarch # Require packaging macros if rpm-build exists @@ -236,6 +237,10 @@ make PYTHON=/usr/bin/python3 tests-py3 %endif %changelog +* Thu Mar 10 2022 Maxwell G - 2.12.3-2 +- Add patch to fix failing tests and FTBFS with Pytest 7. +- Resolves: rhbz#2059937 + * Tue Mar 01 2022 Kevin Fenzi - 2.12.3-1 - Update to 2.12.3. Fixes rhbz#2059284 diff --git a/fix-tests-failing-on-pytest-7.patch b/fix-tests-failing-on-pytest-7.patch new file mode 100644 index 0000000..aed355d --- /dev/null +++ b/fix-tests-failing-on-pytest-7.patch @@ -0,0 +1,108 @@ +From 52a56f3c0594cf76b3061260711536c23385ee75 Mon Sep 17 00:00:00 2001 +From: Jordan Borean +Date: Fri, 7 Jan 2022 09:53:18 +1000 +Subject: [PATCH 1/2] Fix pytest 7 failures with leaky fixture + +--- + changelogs/fragments/ansible-test-pytest7.yml | 2 ++ + test/units/galaxy/test_role_install.py | 17 +++++++++-------- + 2 files changed, 11 insertions(+), 8 deletions(-) + create mode 100644 changelogs/fragments/ansible-test-pytest7.yml + +diff --git a/changelogs/fragments/ansible-test-pytest7.yml b/changelogs/fragments/ansible-test-pytest7.yml +new file mode 100644 +index 0000000000000..305dddb181b4e +--- /dev/null ++++ b/changelogs/fragments/ansible-test-pytest7.yml +@@ -0,0 +1,2 @@ ++bugfixes: ++- ansible-test - Fix tests that were broken with ``pytest 7`` - https://github.com/ansible/ansible/issues/76577 +diff --git a/test/units/galaxy/test_role_install.py b/test/units/galaxy/test_role_install.py +index cf990b55a6d90..687fcac1e53fb 100644 +--- a/test/units/galaxy/test_role_install.py ++++ b/test/units/galaxy/test_role_install.py +@@ -8,6 +8,7 @@ + + + import os ++import functools + import pytest + import tempfile + +@@ -59,9 +60,9 @@ def mock_NamedTemporaryFile(mocker, **args): + return mock_ntf + + +-@pytest.fixture(autouse=True) +-def init_test(monkeypatch): +- monkeypatch.setattr(tempfile, 'NamedTemporaryFile', mock_NamedTemporaryFile) ++@pytest.fixture ++def init_mock_temp_file(mocker, monkeypatch): ++ monkeypatch.setattr(tempfile, 'NamedTemporaryFile', functools.partial(mock_NamedTemporaryFile, mocker)) + + + @pytest.fixture(autouse=True) +@@ -74,7 +75,7 @@ def mock_role_download_api(mocker, monkeypatch): + return mock_role_api + + +-def test_role_download_github(mocker, galaxy_server, mock_role_download_api, monkeypatch): ++def test_role_download_github(init_mock_temp_file, mocker, galaxy_server, mock_role_download_api, monkeypatch): + mock_api = mocker.MagicMock() + mock_api.side_effect = [ + StringIO(u'{"available_versions":{"v1":"v1/"}}'), +@@ -89,7 +90,7 @@ def test_role_download_github(mocker, galaxy_server, mock_role_download_api, mon + assert mock_role_download_api.mock_calls[0][1][0] == 'https://github.com/test_owner/test_role/archive/0.0.1.tar.gz' + + +-def test_role_download_github_default_version(mocker, galaxy_server, mock_role_download_api, monkeypatch): ++def test_role_download_github_default_version(init_mock_temp_file, mocker, galaxy_server, mock_role_download_api, monkeypatch): + mock_api = mocker.MagicMock() + mock_api.side_effect = [ + StringIO(u'{"available_versions":{"v1":"v1/"}}'), +@@ -104,7 +105,7 @@ def test_role_download_github_default_version(mocker, galaxy_server, mock_role_d + assert mock_role_download_api.mock_calls[0][1][0] == 'https://github.com/test_owner/test_role/archive/0.0.2.tar.gz' + + +-def test_role_download_github_no_download_url_for_version(mocker, galaxy_server, mock_role_download_api, monkeypatch): ++def test_role_download_github_no_download_url_for_version(init_mock_temp_file, mocker, galaxy_server, mock_role_download_api, monkeypatch): + mock_api = mocker.MagicMock() + mock_api.side_effect = [ + StringIO(u'{"available_versions":{"v1":"v1/"}}'), +@@ -119,7 +120,7 @@ def test_role_download_github_no_download_url_for_version(mocker, galaxy_server, + assert mock_role_download_api.mock_calls[0][1][0] == 'https://github.com/test_owner/test_role/archive/0.0.1.tar.gz' + + +-def test_role_download_url(mocker, galaxy_server, mock_role_download_api, monkeypatch): ++def test_role_download_url(init_mock_temp_file, mocker, galaxy_server, mock_role_download_api, monkeypatch): + mock_api = mocker.MagicMock() + mock_api.side_effect = [ + StringIO(u'{"available_versions":{"v1":"v1/"}}'), +@@ -135,7 +136,7 @@ def test_role_download_url(mocker, galaxy_server, mock_role_download_api, monkey + assert mock_role_download_api.mock_calls[0][1][0] == 'http://localhost:8080/test_owner/test_role/0.0.1.tar.gz' + + +-def test_role_download_url_default_version(mocker, galaxy_server, mock_role_download_api, monkeypatch): ++def test_role_download_url_default_version(init_mock_temp_file, mocker, galaxy_server, mock_role_download_api, monkeypatch): + mock_api = mocker.MagicMock() + mock_api.side_effect = [ + StringIO(u'{"available_versions":{"v1":"v1/"}}'), + +From 47c1f8f5bf3e27103a9320d42b8b1c602b5c27f0 Mon Sep 17 00:00:00 2001 +From: Matt Davis +Date: Fri, 7 Jan 2022 15:35:54 -0800 +Subject: [PATCH 2/2] zap changelog + +--- + changelogs/fragments/ansible-test-pytest7.yml | 2 -- + 1 file changed, 2 deletions(-) + delete mode 100644 changelogs/fragments/ansible-test-pytest7.yml + +diff --git a/changelogs/fragments/ansible-test-pytest7.yml b/changelogs/fragments/ansible-test-pytest7.yml +deleted file mode 100644 +index 305dddb181b4e..0000000000000 +--- a/changelogs/fragments/ansible-test-pytest7.yml ++++ /dev/null +@@ -1,2 +0,0 @@ +-bugfixes: +-- ansible-test - Fix tests that were broken with ``pytest 7`` - https://github.com/ansible/ansible/issues/76577