mirror of
https://github.com/fedora-python/tox-current-env.git
synced 2025-01-26 22:56:15 +01:00
Drop support for tox < 3.13 (< 3.15 with Python 3.8+)
We have tox 3.13 in Fedora 31 running on Python 3.7 We have tox 3.15 in Fedora 32 running on Python 3.8
This commit is contained in:
parent
12b0f83762
commit
65cb96383b
8
.github/workflows/main.yaml
vendored
8
.github/workflows/main.yaml
vendored
@ -19,10 +19,10 @@ jobs:
|
|||||||
tox_env:
|
tox_env:
|
||||||
# This information is repeated in tox.ini
|
# This information is repeated in tox.ini
|
||||||
# (see https://github.com/fedora-python/tox-github-action/issues/8)
|
# (see https://github.com/fedora-python/tox-github-action/issues/8)
|
||||||
- py36-tox35
|
- py36-tox313
|
||||||
- py37-tox35
|
- py37-tox313
|
||||||
- py38-tox35
|
- py38-tox315
|
||||||
- py39-tox35
|
- py39-tox315
|
||||||
|
|
||||||
- py36-toxrelease
|
- py36-toxrelease
|
||||||
- py37-toxrelease
|
- py37-toxrelease
|
||||||
|
8
setup.py
8
setup.py
@ -18,7 +18,13 @@ setup(
|
|||||||
package_dir={"": "src"},
|
package_dir={"": "src"},
|
||||||
packages=find_packages("src"),
|
packages=find_packages("src"),
|
||||||
entry_points={"tox": ["current-env = tox_current_env.hooks"]},
|
entry_points={"tox": ["current-env = tox_current_env.hooks"]},
|
||||||
install_requires=["tox>=3.5"],
|
install_requires=[
|
||||||
|
# We support tox 3.13 only to support Fedora 31.
|
||||||
|
# Fedora's tox 3.13 is patched to support Python 3.8 and 3.9,
|
||||||
|
# but the one downloaded from PyPI isn't and it doesn't work properly.
|
||||||
|
"tox>=3.15; python_version >= '3.8'",
|
||||||
|
"tox>=3.13; python_version < '3.8'",
|
||||||
|
],
|
||||||
python_requires=">=3.6",
|
python_requires=">=3.6",
|
||||||
classifiers=[
|
classifiers=[
|
||||||
"Development Status :: 3 - Alpha",
|
"Development Status :: 3 - Alpha",
|
||||||
|
@ -177,10 +177,8 @@ def tox_runtest(venv, redirect):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
if hasattr(tox.hookspecs, "tox_cleanup"):
|
@tox.hookimpl
|
||||||
|
def tox_cleanup(session):
|
||||||
@tox.hookimpl
|
|
||||||
def tox_cleanup(session):
|
|
||||||
"""Remove the fake virtualenv not to collide with regular tox
|
"""Remove the fake virtualenv not to collide with regular tox
|
||||||
Collisions can happen anyway (when tox is killed forcefully before this happens)
|
Collisions can happen anyway (when tox is killed forcefully before this happens)
|
||||||
Note that we don't remove real venvs, as recreating them is expensive"""
|
Note that we don't remove real venvs, as recreating them is expensive"""
|
||||||
|
@ -49,8 +49,8 @@ def is_available(python):
|
|||||||
|
|
||||||
|
|
||||||
TOX_VERSION = version.parse(tox("--version").stdout.split(" ")[0])
|
TOX_VERSION = version.parse(tox("--version").stdout.split(" ")[0])
|
||||||
TOX38 = TOX_VERSION >= version.parse("3.8")
|
TOX313 = TOX_VERSION < version.parse("3.14")
|
||||||
needs_tox38 = pytest.mark.skipif(not TOX38, reason="This test needs at least tox 3.8")
|
|
||||||
|
|
||||||
needs_py36789 = pytest.mark.skipif(
|
needs_py36789 = pytest.mark.skipif(
|
||||||
not all((is_available(f"python3.{x}") for x in range(6, 10))),
|
not all((is_available(f"python3.{x}") for x in range(6, 10))),
|
||||||
@ -195,8 +195,10 @@ def test_regular_run():
|
|||||||
assert "/.tox/py39 is the exec_prefix" in lines[3]
|
assert "/.tox/py39 is the exec_prefix" in lines[3]
|
||||||
assert "congratulations" in result.stdout
|
assert "congratulations" in result.stdout
|
||||||
for y in 6, 7, 8, 9:
|
for y in 6, 7, 8, 9:
|
||||||
if y == 9 and not TOX38:
|
if TOX313 and y > 8:
|
||||||
# tox 3.5 cannot handle Python 3.9 venvs
|
# there is a bug in tox < 3.14,
|
||||||
|
# it creates venv with /usr/bin/python3 if the version is unknown
|
||||||
|
# See https://src.fedoraproject.org/rpms/python-tox/pull-request/15
|
||||||
continue
|
continue
|
||||||
for pkg in "py", "six", "test":
|
for pkg in "py", "six", "test":
|
||||||
sitelib = DOT_TOX / f"py3{y}/lib/python3.{y}/site-packages"
|
sitelib = DOT_TOX / f"py3{y}/lib/python3.{y}/site-packages"
|
||||||
@ -217,7 +219,6 @@ def test_regular_run_native_toxenv():
|
|||||||
assert len(list(sitelib.glob(f"{pkg}-*.dist-info"))) == 1
|
assert len(list(sitelib.glob(f"{pkg}-*.dist-info"))) == 1
|
||||||
|
|
||||||
|
|
||||||
@needs_tox38
|
|
||||||
def test_regular_after_current_is_supported():
|
def test_regular_after_current_is_supported():
|
||||||
result = tox("-e", NATIVE_TOXENV, "--current-env")
|
result = tox("-e", NATIVE_TOXENV, "--current-env")
|
||||||
assert result.stdout.splitlines()[0] == NATIVE_EXEC_PREFIX_MSG
|
assert result.stdout.splitlines()[0] == NATIVE_EXEC_PREFIX_MSG
|
||||||
@ -237,7 +238,6 @@ def test_regular_after_killed_current_is_not_supported():
|
|||||||
assert "--recreate" in result.stderr
|
assert "--recreate" in result.stderr
|
||||||
|
|
||||||
|
|
||||||
@needs_tox38
|
|
||||||
def test_regular_after_first_deps_only_is_supported():
|
def test_regular_after_first_deps_only_is_supported():
|
||||||
result = tox("-e", NATIVE_TOXENV, "--print-deps-only")
|
result = tox("-e", NATIVE_TOXENV, "--print-deps-only")
|
||||||
assert result.stdout.splitlines()[0] == "six"
|
assert result.stdout.splitlines()[0] == "six"
|
||||||
|
5
tox.ini
5
tox.ini
@ -2,14 +2,15 @@
|
|||||||
|
|
||||||
# This information is repeated in .github/workflows/main.yaml
|
# This information is repeated in .github/workflows/main.yaml
|
||||||
# (see https://github.com/fedora-python/tox-github-action/issues/8)
|
# (see https://github.com/fedora-python/tox-github-action/issues/8)
|
||||||
envlist = {py36,py37,py38,py39}-tox{35,release,master}
|
envlist = {py36,py37,py38,py39}-tox{release,master},{py36,py37}-tox313,{py38,py39}-tox315
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
deps=
|
deps=
|
||||||
pytest
|
pytest
|
||||||
pytest-xdist
|
pytest-xdist
|
||||||
packaging
|
packaging
|
||||||
tox35: tox >=3.5,<3.6
|
tox313: tox >=3.13,<3.14
|
||||||
|
tox315: tox >=3.15,<3.16
|
||||||
toxrelease: tox
|
toxrelease: tox
|
||||||
toxmaster: git+https://github.com/tox-dev/tox.git@master
|
toxmaster: git+https://github.com/tox-dev/tox.git@master
|
||||||
commands =
|
commands =
|
||||||
|
Loading…
Reference in New Issue
Block a user