From b95db29632fa20df9e2926b608d7a8d8ca53818b Mon Sep 17 00:00:00 2001 From: tigro Date: Tue, 17 Dec 2024 14:56:55 +0300 Subject: [PATCH] import python-tox-4.23.2-1.el10 --- .gitignore | 2 +- .python-tox.metadata | 2 +- SOURCES/fix-tests.patch | 124 +++++++++++++++++++++ SPECS/python-tox.spec | 235 +++++++++++++++++++++++++++++++++++----- 4 files changed, 334 insertions(+), 29 deletions(-) create mode 100644 SOURCES/fix-tests.patch diff --git a/.gitignore b/.gitignore index 3ab0da9..dcdba24 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/tox-3.28.0.tar.gz +SOURCES/tox-4.23.2.tar.gz diff --git a/.python-tox.metadata b/.python-tox.metadata index 38e6d2d..0f987be 100644 --- a/.python-tox.metadata +++ b/.python-tox.metadata @@ -1 +1 @@ -7271fed6eacdb0f4bff92a464f8680295841975e SOURCES/tox-3.28.0.tar.gz +c3be617a46da9d2102795960ceb02f67e599e33e SOURCES/tox-4.23.2.tar.gz diff --git a/SOURCES/fix-tests.patch b/SOURCES/fix-tests.patch new file mode 100644 index 0000000..332089a --- /dev/null +++ b/SOURCES/fix-tests.patch @@ -0,0 +1,124 @@ +From 1ade3df7eaefad792a2a519c0f3cc3a8f28a5829 Mon Sep 17 00:00:00 2001 +From: Lumir Balhar +Date: Tue, 10 Jan 2023 08:34:25 +0100 +Subject: [PATCH] fix tests + +--- + pyproject.toml | 8 -------- + src/tox/pytest.py | 16 +++------------- + tests/test_provision.py | 18 ++---------------- + 3 files changed, 5 insertions(+), 37 deletions(-) + +diff --git a/pyproject.toml b/pyproject.toml +index 74219b1..6cd2da8 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -167,9 +167,6 @@ report.omit = [ + "tests/type_check/*", + ] + run.parallel = true +-run.plugins = [ +- "covdefaults", +-] + + [tool.towncrier] + name = "tox" +@@ -229,17 +226,12 @@ release = [ + ] + test = [ + "build[virtualenv]>=1.2.2", +- "covdefaults>=2.3", +- "detect-test-pollution>=1.2", +- "devpi-process>=1.0.2", +- "diff-cover>=9.2", + "distlib>=0.3.8", + "flaky>=3.8.1", + "hatch-vcs>=0.4", + "hatchling>=1.25", + "psutil>=6", + "pytest>=8.3.3", +- "pytest-cov>=5", + "pytest-mock>=3.14", + "pytest-xdist>=3.6.1", + "re-assert>=1.1", +diff --git a/src/tox/pytest.py b/src/tox/pytest.py +index ca42a5b..183e2f4 100644 +--- a/src/tox/pytest.py ++++ b/src/tox/pytest.py +@@ -17,7 +17,6 @@ from typing import TYPE_CHECKING, Any, Callable, Iterator, Protocol, Sequence, c + + import pytest + from _pytest.fixtures import SubRequest # noqa: PLC2701 +-from devpi_process import IndexServer + from virtualenv.info import fs_supports_symlink + + import tox.run +@@ -280,9 +279,9 @@ class ToxProject: + m.setattr(sys, "argv", [sys.executable, "-m", "tox", *list(args)]) + m.setenv("VIRTUALENV_SYMLINK_APP_DATA", "1") + m.setenv("VIRTUALENV_SYMLINKS", "1") +- m.setenv("VIRTUALENV_PIP", "embed") +- m.setenv("VIRTUALENV_WHEEL", "embed") +- m.setenv("VIRTUALENV_SETUPTOOLS", "embed") ++ m.setenv("VIRTUALENV_PIP", "bundle") ++ m.setenv("VIRTUALENV_WHEEL", "bundle") ++ m.setenv("VIRTUALENV_SETUPTOOLS", "bundle") + try: + tox_run(args) + except SystemExit as exception: +@@ -475,15 +474,6 @@ def enable_pypi_server(monkeypatch: pytest.MonkeyPatch, url: str | None) -> None + monkeypatch.setenv("PIP_TIMEOUT", str(2)) + + +-@pytest.fixture(scope="session") +-def pypi_server(tmp_path_factory: pytest.TempPathFactory) -> Iterator[IndexServer]: +- # takes around 2.5s +- path = tmp_path_factory.mktemp("pypi") +- with IndexServer(path) as server: +- server.create_index("empty", "volatile=False") +- yield server +- +- + @pytest.fixture(scope="session") + def _invalid_index_fake_port() -> int: + with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as socket_handler: +diff --git a/tests/test_provision.py b/tests/test_provision.py +index 5b2b652..7657c2e 100644 +--- a/tests/test_provision.py ++++ b/tests/test_provision.py +@@ -98,22 +98,9 @@ def tox_wheels(tox_wheel: Path, tmp_path_factory: TempPathFactory) -> list[Path] + return result + + +-@pytest.fixture(scope="session") +-def pypi_index_self(pypi_server: IndexServer, tox_wheels: list[Path], demo_pkg_inline_wheel: Path) -> Index: +- with elapsed("start devpi and create index"): # takes around 1s +- self_index = pypi_server.create_index("self", "volatile=False") +- with elapsed("upload tox and its wheels to devpi"): # takes around 3.2s on build +- self_index.upload(*tox_wheels, demo_pkg_inline_wheel) +- return self_index +- +- + @pytest.fixture +-def _pypi_index_self(pypi_index_self: Index, monkeypatch: MonkeyPatch) -> None: +- pypi_index_self.use() +- monkeypatch.setenv("PIP_INDEX_URL", pypi_index_self.url) +- monkeypatch.setenv("PIP_RETRIES", str(2)) +- monkeypatch.setenv("PIP_TIMEOUT", str(5)) +- ++def _pypi_index_self(): ++ pytest.skip("needs devpi-process") + + def test_provision_requires_nok(tox_project: ToxProjectCreator) -> None: + ini = "[tox]\nrequires = pkg-does-not-exist\n setuptools==1\nskipsdist=true\n" +@@ -161,7 +148,6 @@ def test_provision_requires_ok(tox_project: ToxProjectCreator, tmp_path: Path) - + + + @pytest.mark.integration +-@pytest.mark.usefixtures("_pypi_index_self") + def test_provision_platform_check(tox_project: ToxProjectCreator) -> None: + ini = "[tox]\nrequires=demo-pkg-inline\n[testenv]\npackage=skip\n[testenv:.tox]\nplatform=wrong_platform" + proj = tox_project({"tox.ini": ini}) +-- +2.47.0 + diff --git a/SPECS/python-tox.spec b/SPECS/python-tox.spec index 8788e0b..d727eff 100644 --- a/SPECS/python-tox.spec +++ b/SPECS/python-tox.spec @@ -1,34 +1,54 @@ -# Tests are disbaled by default, they require: -# a) tested tox to be installed +## START: Set by rpmautospec +## (rpmautospec version 0.7.3) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 1; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} +## END: Set by rpmautospec + +%bcond bootstrap 0 +# Many tests are enabled by default, unless bootstrapping +%bcond tests %{without bootstrap} +# However, some tests are disabled by default, becasue they require: +# a) tested tox to be installed and/or # b) internet connection -# To test, do the following: -# 1) Build --without tests (the default) -# (e.g. fedpkg mockbuild) +# To run them, do the following: +# 1) Build --without ci_tests (the default) and optionally --without tests +# (e.g. fedpkg mockbuild --without tests) # 2) Install the built package # (e.g. mock install ./results_python-tox/.../tox-...rpm) -# 3) Build again --with tests (and internet connection) -# (e.g. fedpkg mockbuild --enable-network --no-clean-all --with tests) +# 3) Build again --with ci_tests (and internet connection) +# (e.g. fedpkg mockbuild --no-clean-all --enable-network --with ci_tests) # The Fedora CI tests do this. -%bcond_with tests +%bcond ci_tests 0 # Unset -s on python shebang - ensure that extensions installed with pip # to user locations are seen and properly loaded # Fixes https://bugzilla.redhat.com/2057015 -%global py3_shebang_flags %(echo %py3_shebang_flags | sed s/s//) +%undefine _py3_shebang_s Name: python-tox -Version: 3.28.0 -Release: 1%{?dist} +Version: 4.23.2 +Release: %autorelease Summary: Virtualenv-based automation of test activities License: MIT URL: https://tox.readthedocs.io/ -Source0: %{pypi_source tox} +Source: %{pypi_source tox} + +# Remove dependency on devpi-process. +# Remove dependency on detect-test-pollution. +# Remove coverage-related dependencies. +# Adjust virtualenv environment variables to make it work with our patched virtualenv. +Patch: fix-tests.patch BuildArch: noarch BuildRequires: python3-devel -BuildRequires: pyproject-rpm-macros +# for dependency-groups support: +BuildRequires: pyproject-rpm-macros >= 1.16 %if %{with tests} BuildRequires: /usr/bin/gcc @@ -39,8 +59,11 @@ BuildRequires: /usr/bin/python BuildRequires: libffi-devel # xdist is not used upstream, but we use it to speed up the %%check BuildRequires: python3-pytest-xdist -# The tests only work if the tested tox is installed :( -BuildRequires: tox = %{version}-%{release} +%if %{with ci_tests} +# The CI tests only work if the tested tox is installed :( +# This should technically be the same V-R, but the CI does not handle %%autorelease well +BuildRequires: tox = %{version} +%endif %endif %global _description %{expand: @@ -68,22 +91,15 @@ Summary: %{summary} # however it launches other Python versions as subprocesses. # It recommends all Python versions it supports. (This is an exception to # the rule that Fedora packages may not require the alternative interpreters.) -Recommends: python2.7 -Recommends: python3.6 -Recommends: python3.7 Recommends: python3.8 Recommends: python3.9 Recommends: python3.10 -Recommends: pypy2-devel Recommends: pypy3-devel -Recommends: python2-devel Recommends: python3-devel # Instead of adding new Pythons here, add `Supplements: tox` to them, see: # https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/thread/NVVUXSVSPFQOWIGBE2JNI67HEO7R63ZQ/ %py_provides python3-tox -# Remove this once Fedora 36 goes EOL: -Obsoletes: python3-tox < 3.24.4-2 %description -n tox %_description @@ -91,12 +107,21 @@ Obsoletes: python3-tox < 3.24.4-2 %prep %autosetup -p1 -n tox-%{version} +# Upstream updates dependencies too aggressively +# see https://github.com/tox-dev/tox/pull/2843#discussion_r1065028356 +sed -ri -e 's/"(packaging|filelock|platformdirs|psutil|pyproject-api|pytest|pytest-mock|pytest-xdist|wheel|pluggy|distlib|cachetools|build\[virtualenv\]|setuptools|flaky)>=.*/"\1",/g' \ + -e 's/"(time-machine)>=[^;"]+/"\1/' \ + -e 's/"(virtualenv)>=.*/"\1>=20",/g' \ + -e 's/"(hatchling)>=.*/"\1>=1.13",/g' \ + pyproject.toml %generate_buildrequires -%pyproject_buildrequires -r %{?with_tests:-x testing} +export SETUPTOOLS_SCM_PRETEND_VERSION="%{version}" +%pyproject_buildrequires -r %{?with_tests:-g test} %build +export SETUPTOOLS_SCM_PRETEND_VERSION="%{version}" %pyproject_wheel @@ -107,18 +132,166 @@ Obsoletes: python3-tox < 3.24.4-2 %if %{with tests} %check -%pytest -n auto +# Skipped tests use internal virtualenv functionality to +# download wheels which does not work with "bundled" version of wheel in +# the Fedora's virtualenv patch. +k="${k-}${k+ and }not test_virtualenv_flipped_settings" +k="${k-}${k+ and }not test_virtualenv_env_ignored_if_set" +k="${k-}${k+ and }not test_virtualenv_env_used_if_not_set" + +# https://github.com/tox-dev/tox/issues/3290 +%if v"0%{?python3_version}" >= v"3.13" +k="${k-}${k+ and }not test_str_convert_ok_py39" +%endif + +# https://github.com/tox-dev/tox/commit/698f1dd663 +# Until we have setuptools 70.1+ we skip those +k="${k-}${k+ and }not test_result_json_sequential" +k="${k-}${k+ and }not test_setuptools_package" +k="${k-}${k+ and }not test_skip_develop_mode" +k="${k-}${k+ and }not test_tox_install_pkg_sdist" + +# The following tests either need internet connection or installed tox +# so we only run them on the CI. +%if %{without ci_tests} +k="${k-}${k+ and }not test_virtualenv_flipped_settings" +k="${k-}${k+ and }not test_virtualenv_env_ignored_if_set" +k="${k-}${k+ and }not test_virtualenv_env_used_if_not_set" +k="${k-}${k+ and }not test_build_wheel_external" +k="${k-}${k+ and }not keyboard_interrupt" +k="${k-}${k+ and }not test_call_as_module" +k="${k-}${k+ and }not test_call_as_exe" +k="${k-}${k+ and }not test_run_installpkg_targz" +%endif + +%pytest -v -n auto -k "${k-}" --run-integration %endif %files -n tox -f %{pyproject_files} %{_bindir}/tox -%{_bindir}/tox-quickstart %changelog -* Wed Oct 23 2024 Sergey Cherevko - 3.28.0-1 -- Rebuilt for MSVSphere 9.4 +* Tue Dec 17 2024 Arkady L. Shane - 4.23.2-1 +- Rebuilt for MSVSphere 10 + +## START: Generated by rpmautospec +* Tue Nov 05 2024 Miro Hrončok - 4.23.2-1 +- Update to 4.23.2 +- Fixes: rhbz#2318843 + +* Tue Oct 29 2024 Miro Hrončok - 4.21.2-4 +- CI: Add Python 3.14 + +* Tue Oct 29 2024 Miro Hrončok - 4.21.2-3 +- Drop unneeded test dependency on diff-cover + +* Mon Oct 14 2024 Miro Hrončok - 4.21.2-2 +- Stop recommending Pythons not supported by the latest virtualenv + +* Sat Oct 05 2024 Miro Hrončok - 4.21.2-1 +- Update to 4.21.2 +- Fixes: rhbz#2316220 + +* Tue Oct 01 2024 Miro Hrončok - 4.21.0-1 +- Update to 4.21.0 +- Fixes: rhbz#2315830 + +* Tue Oct 01 2024 Charalampos Stratakis - 4.20.0-1 +- Update to 4.20.0 +- Fixes: rhbz#2302960 + +* Mon Aug 05 2024 Miro Hrončok - 4.16.0-2 +- Do not Recommend python2.7 on Fedora 41+ +- https://fedoraproject.org/wiki/Changes/RetirePython2.7 + +* Fri Jul 26 2024 Miro Hrončok - 4.16.0-1 +- Update to 4.16.0 +- https://tox.wiki/en/latest/changelog.html#v4-16-0-2024-07-02 +- Fixes: rhbz#2277427 + +* Fri Jul 19 2024 Fedora Release Engineering - 4.14.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu Jul 04 2024 Miro Hrončok - 4.14.2-6 +- Remove no longer needed BuildRequires for python3.10 + +* Thu Jul 04 2024 Miro Hrončok - 4.14.2-5 +- Fix CI confusion wrt tox %%{release} + +* Thu Jul 04 2024 Lumir Balhar - 4.14.2-4 +- Unskip working tests + +* Sat Jun 08 2024 Python Maint - 4.14.2-3 +- Rebuilt for Python 3.13 + +* Fri Jun 07 2024 Python Maint - 4.14.2-2 +- Bootstrap for Python 3.13 + +* Thu Apr 11 2024 Charalampos Stratakis - 4.14.2-1 +- Update to 4.14.2 +- Resolves: rhbz#2264626 + +* Fri Jan 26 2024 Miro Hrončok - 4.12.1-1 +- Update to 4.12.1 + +* Thu Jan 25 2024 Miro Hrončok - 4.11.1-6 +- Remove old unneeded Obsoletes for python3-tox + +* Mon Jan 22 2024 Fedora Release Engineering - 4.11.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Sep 06 2023 Miro Hrončok - 4.11.1-1 +- Update to 4.11.1 (rhbz#2236871) + +* Wed Aug 30 2023 Miro Hrončok - 4.11.0-1 +- Update to 4.11.0 (rhbz#2189321) + +* Fri Jul 21 2023 Fedora Release Engineering - 4.4.12-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jun 29 2023 Python Maint - 4.4.12-3 +- Rebuilt for Python 3.12 + +* Wed Jun 14 2023 Python Maint - 4.4.12-2 +- Bootstrap for Python 3.12 + +* Thu Apr 13 2023 Miro Hrončok - 4.4.12-1 +- Update to 4.4.12 (rhbz#2186618) + +* Wed Apr 12 2023 Miro Hrončok - 4.4.11-1 +- Update to 4.4.11 (rhbz#2184726) + +* Wed Mar 29 2023 Miro Hrončok - 4.4.8-1 +- Update to 4.4.8 (rhbz#2177519) + +* Tue Feb 28 2023 Miro Hrončok - 4.4.6-1 +- Update to 4.4.6 (rhbz#2164640) + +* Tue Jan 24 2023 Miro Hrončok - 4.3.5-1 +- Update to 4.3.5 (rhbz#2161692) + +* Fri Jan 20 2023 Fedora Release Engineering - 4.3.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Jan 16 2023 Miro Hrončok - 4.3.3-1 +- Update to 4.3.3 (rhbz#2161429) + +* Mon Jan 16 2023 Miro Hrončok - 4.3.2-1 +- Update to 4.3.2 (rhbz#2161388) + +* Mon Jan 16 2023 Lumír Balhar - 4.3.1-1 +- Update to 4.3.1 (rhbz#2161119) + +* Thu Jan 12 2023 Miro Hrončok - 4.2.8-1 +- Update to 4.2.8 (rhbz#2160315) + +* Wed Jan 11 2023 Miro Hrončok - 4.2.7-1 +- Update to 4.2.7 (rhbz#2160186) + +* Tue Jan 3 2023 Lumír Balhar - 4.2.6-1 +- Update to 4.2.6 (rhbz#1914413) * Sun Dec 18 2022 Miro Hrončok - 3.28.0-1 - Update to 3.28.0 @@ -129,9 +302,15 @@ Obsoletes: python3-tox < 3.24.4-2 * Wed Sep 14 2022 Miro Hrončok - 3.26.0-1 - Update to 3.26.0 +* Fri Jul 22 2022 Fedora Release Engineering - 3.25.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Wed Jul 13 2022 Lumír Balhar - 3.25.1-1 - Update to 3.25.1 +* Mon Jun 13 2022 Python Maint - 3.25.0-2 +- Rebuilt for Python 3.11 + * Mon May 09 2022 Miro Hrončok - 3.25.0-1 - Update to 3.25.0 @@ -404,3 +583,5 @@ Obsoletes: python3-tox < 3.24.4-2 * Tue Oct 09 2012 Matthias Runge - 1.4.2-1 - initial packaging + +## END: Generated by rpmautospec