Compare commits

...

15 Commits

Author SHA1 Message Date
Miro Hrončok 62ab817d28 Update to 4.26.0
- Requires virtualenv 20.29+
- Supports freethreading Python
- Fixes: rhbz#2365939

This drops support for Python 3.8.
I don't know if that means running 3.8 venvs, or just running on 3.8,
but I dropped all the 3.8 bits, as this update is targeted to Fedora 42+ only anyway.
2025-05-13 22:19:54 +02:00
Miro Hrončok fa857a3318 Without wheel, test_result_json_sequential fetches it from the internet
[skip changelog]
2025-05-13 19:41:39 +02:00
Miro Hrončok afb013056b Don't skip some tests twice
We already skip those regardless of %bcond ci_tests.

[skip changelog]
2025-05-13 17:28:17 +02:00
Miro Hrončok 2d52eab0d1 Run more tests with setuptools 70.1+
But keep test_result_json_sequential skipped with bundled wheel.

[skip changelog]
2025-05-13 17:28:17 +02:00
Miro Hrončok 6b3221eebd Fix tests with virtualenv 20.31+ 2025-05-13 17:28:17 +02:00
Karolina Surma 17cf20500b Support Python 3.14.0b1 2025-05-12 18:03:59 +02:00
Miro Hrončok 104f6b73e2 Setup rpmlint filters
[skip changelog]
2025-03-28 17:01:26 +01:00
Miro Hrončok 453dfdb9aa CI: Make the tests pass on EPEL 10, install or skip missing Pythons
[skip changelog]
2025-03-28 15:43:28 +01:00
Tomáš Hrnčiar eeb73bfe13 CI: Test with pypy3.11, make pypy3.9 optional, as it was retired on Fedora 42+ 2025-03-28 12:38:54 +01:00
Tomáš Hrnčiar 0464e297ad Update to 4.25.0
Fixes: rhbz#2350693
2025-03-28 10:10:38 +01:00
Miro Hrončok 07d47763fe Python 3.14.0a6+ test fix
- Fixes: rhbz#2353145
2025-03-18 13:02:59 +01:00
Miro Hrončok 0c1e618f44 Update to 4.24.1
- Fixes: rhbz#2339185
2025-01-29 16:21:46 +01:00
Miro Hrončok 374d223f0a Conditionalize the Recommended Python versions based on Fedora version
See https://fedoraproject.org/wiki/Changes/RetirePython3.8

Eventually, we will get rid of this section and only use Supplements.

Also update the CI config to make 3.8 optional.

[skip changelog]
2025-01-29 16:21:32 +01:00
Fedora Release Engineering f7758c7fda Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-18 20:12:58 +00:00
Miro Hrončok f85007ad88 CI: Test tox provision with end-of-life Python versions
https://tox.wiki/en/4.23.0/faq.html#testing-end-of-life-python-versions

[skip changelog]
2024-12-03 18:43:41 +01:00
5 changed files with 123 additions and 61 deletions
+79 -36
View File
@@ -1,19 +1,49 @@
From 1ade3df7eaefad792a2a519c0f3cc3a8f28a5829 Mon Sep 17 00:00:00 2001
From: Lumir Balhar <lbalhar@redhat.com>
Date: Tue, 10 Jan 2023 08:34:25 +0100
Subject: [PATCH] fix tests
From 924b03e0446561bbfca9679a44642a1a96dd8f10 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hrn=C4=8Diar?= <thrnciar@redhat.com>
Date: Fri, 28 Mar 2025 09:44:24 +0100
Subject: [PATCH] Fix tests
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-Authored-By: Lumir Balhar <lbalhar@redhat.com>
Co-Authored-By: Miro Hrončok <miro@hroncok.cz>
---
pyproject.toml | 8 --------
src/tox/pytest.py | 16 +++-------------
tests/test_provision.py | 18 ++----------------
3 files changed, 5 insertions(+), 37 deletions(-)
pyproject.toml | 11 +----------
src/tox/pytest.py | 16 +++-------------
tests/test_provision.py | 18 ++----------------
.../package/test_python_package_util.py | 10 ++++++++--
4 files changed, 14 insertions(+), 41 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml
index 74219b1..6cd2da8 100644
index 9b52c2f..335012b 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -167,9 +167,6 @@ report.omit = [
@@ -82,22 +82,16 @@ dev = [
]
test = [
"build[virtualenv]>=1.2.2.post1",
- "covdefaults>=2.3",
- "detect-test-pollution>=1.2",
- "devpi-process>=1.0.2",
- "diff-cover>=9.2",
"distlib>=0.3.9",
"flaky>=3.8.1",
"hatch-vcs>=0.4",
"hatchling>=1.27",
"psutil>=6.1.1",
"pytest>=8.3.4",
- "pytest-cov>=5",
"pytest-mock>=3.14",
"pytest-xdist>=3.6.1",
"re-assert>=1.1",
- "setuptools>=75.3; python_version<='3.8'",
- "setuptools>=75.8; python_version>'3.8'",
+ "setuptools>=75.1",
"time-machine>=2.15; implementation_name!='pypy'",
"wheel>=0.45.1",
]
@@ -223,9 +217,6 @@ report.omit = [
"tests/type_check/*",
]
run.parallel = true
@@ -23,26 +53,8 @@ index 74219b1..6cd2da8 100644
[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
index bca2ad8..973e714 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
@@ -53,20 +65,21 @@ index ca42a5b..183e2f4 100644
from virtualenv.info import fs_supports_symlink
import tox.run
@@ -280,9 +279,9 @@ class ToxProject:
@@ -280,10 +279,10 @@ 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")
if sys.version_info[:2] < (3, 9):
- m.setenv("VIRTUALENV_WHEEL", "embed")
- m.setenv("VIRTUALENV_SETUPTOOLS", "embed")
+ 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
@@ -476,15 +475,6 @@ def enable_pypi_server(monkeypatch: pytest.MonkeyPatch, url: str | None) -> None
monkeypatch.setenv("PIP_TIMEOUT", str(2))
@@ -83,7 +96,7 @@ index ca42a5b..183e2f4 100644
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
index 2030cb9..f706d6c 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]
@@ -119,6 +132,36 @@ index 5b2b652..7657c2e 100644
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})
diff --git a/tests/tox_env/python/virtual_env/package/test_python_package_util.py b/tests/tox_env/python/virtual_env/package/test_python_package_util.py
index efb5b12..8a57426 100644
--- a/tests/tox_env/python/virtual_env/package/test_python_package_util.py
+++ b/tests/tox_env/python/virtual_env/package/test_python_package_util.py
@@ -15,6 +15,12 @@ if TYPE_CHECKING:
from importlib.metadata import Distribution, PathDistribution
+from importlib.metadata import version
+from packaging.version import Version
+
+SETUPTOOLS_VERSION = Version(version("setuptools"))
+SETUPTOOLS_75_6 = SETUPTOOLS_VERSION >= Version("75.6")
+
@pytest.fixture(scope="session")
def pkg_with_extras(pkg_with_extras_project: Path) -> PathDistribution:
@@ -43,10 +49,10 @@ def test_load_dependency_many_extra(pkg_with_extras: PathDistribution) -> None:
exp = [
Requirement("platformdirs>=2.1"),
Requirement("colorama>=0.4.3"),
- *(sphinx if sys.version_info[0:2] <= (3, 8) else []),
+ *(sphinx if not SETUPTOOLS_75_6 else []),
Requirement(f'covdefaults>=1.2; python_version == "2.7" or python_version == "{py_ver}"'),
Requirement(f'pytest>=5.4.1; python_version == "{py_ver}"'),
- *(sphinx if sys.version_info[0:2] > (3, 8) else []),
+ *(sphinx if SETUPTOOLS_75_6 else []),
]
for left, right in zip_longest(result, exp):
assert isinstance(right, Requirement)
--
2.47.0
2.49.0
+18 -7
View File
@@ -20,7 +20,7 @@
%undefine _py3_shebang_s
Name: python-tox
Version: 4.23.2
Version: 4.26.0
Release: %autorelease
Summary: Virtualenv-based automation of test activities
@@ -32,6 +32,7 @@ Source: %{pypi_source tox}
# Remove dependency on detect-test-pollution.
# Remove coverage-related dependencies.
# Adjust virtualenv environment variables to make it work with our patched virtualenv.
# Adjust setuptools-version specific ifs to check for setuptools version rather than Python version.
Patch: fix-tests.patch
BuildArch: noarch
@@ -81,10 +82,11 @@ 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: python3.8
%if 0%{?fedora}
Recommends: python3.9
Recommends: python3.10
Recommends: pypy3-devel
%endif
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/
@@ -101,7 +103,7 @@ Recommends: python3-devel
# 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/"(virtualenv)>=.*/"\1>=20.29",/g' \
-e 's/"(hatchling)>=.*/"\1>=1.13",/g' \
pyproject.toml
@@ -122,6 +124,12 @@ export SETUPTOOLS_SCM_PRETEND_VERSION="%{version}"
%if %{with tests}
%check
# Upstream requires virtualenv >= 20.31 for tests, and no longer sets VIRTUALENV_WHEEL.
# To support environments with older virtualenv, we set it manually:
%if v"%(%{python3} -c 'import importlib.metadata as im; print(im.version("virtualenv"))' 2>/dev/null || echo 0)" < v"20.31"
export VIRTUALENV_WHEEL=bundle
%endif
# Skipped tests use internal virtualenv functionality to
# download wheels which does not work with "bundled" version of wheel in
# the Fedora's virtualenv patch.
@@ -135,23 +143,26 @@ 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
# The tests fail with setuptools < 70.1
%if v"%(%{python3} -c 'import importlib.metadata as im; print(im.version("setuptools"))' 2>/dev/null || echo 0)" < v"70.1"
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"
%else
# this test fails with virtualenv < 20.31 with bundled wheel
test -z $VIRTUALENV_WHEEL || k="${k-}${k+ and }not test_result_json_sequential"
%endif
# 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"
test -z $VIRTUALENV_WHEEL && k="${k-}${k+ and }not test_result_json_sequential"
%endif
%pytest -v -n auto -k "${k-}" --run-integration
+3
View File
@@ -0,0 +1,3 @@
Filters = [
'spelling-error .* en_US [Vv]irtualenv ',
]
+1 -1
View File
@@ -1 +1 @@
SHA512 (tox-4.23.2.tar.gz) = 5008964ebed3c94a6ad5f0985150c7bf73fd3996b91171b16323d195bf0288102aac0dc38848bd4c63e5c5678ab1a82c170579139eda97132a4555eb11d381a0
SHA512 (tox-4.26.0.tar.gz) = ad2e311cd63c45a079b8c230a2feb364270b7a8bcf44b626385f8e442c6683ae841b3f34417b504f927608685a254fef3767d832fb5cfcc324c9cbf6ff7ea997
+22 -17
View File
@@ -30,33 +30,45 @@
- all_supplementing_pythons:
dir: tests
run: ./all_supplementing_pythons.py
- smoke38:
- smoke27:
dir: python/smoke
run: VERSION=3.8 ./venv.sh
run: VERSION=2.7 INSTALL_OR_SKIP=true METHOD=virtualenv TOX_REQUIRES="virtualenv<20.22.0" ./venv.sh
- smoke36:
dir: python/smoke
run: VERSION=3.6 INSTALL_OR_SKIP=true TOX_REQUIRES="virtualenv<20.22.0" ./venv.sh
- smoke39:
dir: python/smoke
run: VERSION=3.9 ./venv.sh
run: VERSION=3.9 INSTALL_OR_SKIP=true ./venv.sh
- smoke310:
dir: python/smoke
run: VERSION=3.10 ./venv.sh
run: VERSION=3.10 INSTALL_OR_SKIP=true ./venv.sh
- smoke311:
dir: python/smoke
run: VERSION=3.11 ./venv.sh
run: VERSION=3.11 INSTALL_OR_SKIP=true ./venv.sh
- smoke312:
dir: python/smoke
run: VERSION=3.12 ./venv.sh
- smoke313:
dir: python/smoke
run: VERSION=3.13 ./venv.sh
run: VERSION=3.13 INSTALL_OR_SKIP=true ./venv.sh
- smoke313t:
dir: python/smoke
run: VERSION=3.13t INSTALL_OR_SKIP=true ./venv.sh
- smoke314:
dir: python/smoke
run: VERSION=3.14 ./venv.sh
run: VERSION=3.14 INSTALL_OR_SKIP=true ./venv.sh
- smoke314t:
dir: python/smoke
run: VERSION=3.14t INSTALL_OR_SKIP=true ./venv.sh
- smoke_pypy39:
dir: python/smoke
run: PYTHON=pypy3.9 VERSION=3.9 ./venv.sh
run: PYTHON=pypy3.9 VERSION=3.9 INSTALL_OR_SKIP=true ./venv.sh
- smoke_pypy310:
dir: python/smoke
run: PYTHON=pypy3.10 VERSION=3.10 ./venv.sh
run: PYTHON=pypy3.10 VERSION=3.10 INSTALL_OR_SKIP=true ./venv.sh
- smoke_pypy311:
dir: python/smoke
run: PYTHON=pypy3.11 VERSION=3.11 INSTALL_OR_SKIP=true ./venv.sh
- pyproject_pytest:
dir: pyproject-rpm-macros/tests
run: ./mocktest.sh python-pytest
@@ -69,15 +81,8 @@
required_packages:
- gcc
- virtualenv
- python3.8
- python3.9
- python3.10-devel
- python3.11-devel
- python3-devel
- python3.12-devel
- python3.13-devel
- python3.14-devel
- pypy3.9-devel
- pypy3.10-devel
- python3-tox
- python3-dnf
- mock