diff --git a/py39.patch b/py39.patch new file mode 100644 index 0000000..4e3c0d5 --- /dev/null +++ b/py39.patch @@ -0,0 +1,13 @@ +diff --git a/src/tox/constants.py b/src/tox/constants.py +index bd21562..e1b7c3f 100644 +--- a/src/tox/constants.py ++++ b/src/tox/constants.py +@@ -28,7 +28,7 @@ def _construct_default_factors(cpython_versions, pypy_versions, other_interprete + class PYTHON: + PY_FACTORS_RE = re.compile("^(?!py$)(py|pypy|jython)([2-9][0-9]?)?$") + PY_FACTORS_MAP = {"py": "python", "pypy": "pypy", "jython": "jython"} +- CPYTHON_VERSION_TUPLES = [(2, 7), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8)] ++ CPYTHON_VERSION_TUPLES = [(2, 7), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9)] + PYPY_VERSION_TUPLES = [(2, 7), (3, 5)] + OTHER_PYTHON_INTERPRETERS = ["jython"] + DEFAULT_FACTORS = _construct_default_factors( diff --git a/python-tox.spec b/python-tox.spec index 162ca55..572991b 100644 --- a/python-tox.spec +++ b/python-tox.spec @@ -7,13 +7,18 @@ %global pypiname tox Name: python-%{pypiname} Version: 3.5.3 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Virtualenv-based automation of test activities # file toxbootstrap.py is licensed under MIT License License: GPLv2+ and MIT URL: http://tox.testrun.org/ Source0: https://files.pythonhosted.org/packages/source/t/%{pypiname}/%{pypiname}-%{version}.tar.gz + +# Run py39 env with Python 3.9 +# https://bugzilla.redhat.com/show_bug.cgi?id=1798929 +Patch1: py39.patch + BuildArch: noarch %description @@ -50,6 +55,7 @@ Recommends: python35 Recommends: python36 Recommends: python37 Recommends: python38 +Recommends: python39 Recommends: pypy-devel Recommends: pypy3-devel Recommends: python2-devel @@ -62,6 +68,8 @@ Obsoletes: python2-tox < 2.9.1-4 # for tests BuildRequires: python3-py BuildRequires: python3-pytest +BuildRequires: python3-pytest-mock +BuildRequires: python3-pytest-xdist BuildRequires: python3-virtualenv %endif @@ -79,7 +87,7 @@ can use for: boilerplate and merging CI and shell-based testing. %prep -%setup -q -n %{pypiname}-%{version} +%autosetup -p1 -n %{pypiname}-%{version} # remove bundled egg-info rm -rf %{pypiname}.egg-info @@ -94,7 +102,26 @@ rm -rf %{pypiname}.egg-info # if internet connection available, run tests %if %{with internet} %check -TOXENV=py%{python3_version_nodots} %{__python3} setup.py test +# there will be failures like +# ModuleNotFoundError: tox +# or InterpreterNotFound: python +# We juggle the environment variables as much as we can, but it's not perfect. +# To workaround this: +# 1. build --without internet +# 2. install the new python3-tox +# 3. build --with internet +mkdir .path +ln -s %{__python3} .path/python +ln -s /usr/bin/easy_install-%{python3_version} .path/easy_install +ln -s /usr/bin/pytest-%{python3_version} .path/pytest +ln -s /usr/bin/pip3 .path/pip +export PATH=$(pwd)/.path:%{buildroot}%{_bindir}:$PATH +export PYTHONPATH=%{buildroot}%{python3_sitelib} +export TOXENV=py%{python3_version_nodots} +export TOX_TESTENV_PASSENV="PATH TOX_TESTENV_PASSENV" +# TODO figure out why PEP517/518 tests and test_provision_cli_args_ignore won't pass +pytest-3 -n auto -k "not test_verbose_isolated_build and not test_dist_exists_version_change and not test_alwayscopy" +rm -rf .path %endif %files -n python3-%{pypiname} @@ -104,6 +131,10 @@ TOXENV=py%{python3_version_nodots} %{__python3} setup.py test %{python3_sitelib}/%{pypiname}-%{version}-py%{python3_version}.egg-info %changelog +* Thu Feb 06 2020 Miro Hrončok - 3.5.3-4 +- Fix invocation with Python 3.9 (#1798929) +- Recommend Python 3.9 + * Fri Feb 15 2019 Lumír Balhar - 3.5.3-3 - Recommend Python 3.8 diff --git a/tests/tests.yml b/tests/tests.yml index 2f55b4f..6f66a50 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -26,14 +26,19 @@ - smoke38: dir: python/smoke run: VERSION=3.8 ./venv.sh + - smoke39: + dir: python/smoke + run: VERSION=3.9 ./venv.sh required_packages: - gcc - - /usr/bin/virtualenv + - virtualenv - python27 - python34 - python35 - python36 - python37 + - python38 + - python39 - python2-devel - python3-devel - python3-tox