Compare commits

...

71 Commits

Author SHA1 Message Date
Miro Hrončok 09b4a4596e Backport provision related changes needed for future pyproject-rpm-macros changes
Related to https://bugzilla.redhat.com/show_bug.cgi?id=1922495
2021-03-18 10:36:33 +01:00
Tomas Hrnciar 33aa00314b Don't use pathlib2 2021-03-18 10:36:33 +01:00
Miro Hrončok f18e06aaf4 Update to 3.15.2
Resolves https://bugzilla.redhat.com/1844689
2020-06-08 14:33:39 +02:00
Miro Hrončok e20f7b254b Fedora CI: Run rpmbuild --with internet 2020-06-03 11:34:04 +02:00
Miro Hrončok 9533571c2c Allow to run the tests with pip 19.3.1 2020-06-02 19:40:28 +02:00
Miro Hrončok 3fff713f26 Add missing test BRs 2020-06-02 14:41:40 +02:00
Charalampos Stratakis b5021c52af Update to 3.15.1 (#1838137) 2020-06-01 22:34:06 +02:00
Miro Hrončok ee641c06d9 Rebuilt for Python 3.9 2020-05-23 20:39:53 +02:00
Miro Hrončok b680470056 Stop recommending Python 3.4, use pythonX.Y names for recommends
See https://fedoraproject.org/wiki/Changes/RetirePython34
See https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/message/VIUS7WMQMDX6H2WEIH7TVTMBB6SUHY7E/
2020-05-14 17:36:55 +02:00
Tomas Hrnciar 74d980a69d Update to 3.15.0 2020-05-13 11:13:12 +02:00
Tomas Hrnciar c347739df6 Update to 3.14.6 2020-03-25 15:22:06 +00:00
Miro Hrončok 3f3d092b74 Fedora CI: Test pyproject-rpm-macros (for %tox) 2020-03-25 12:08:33 +01:00
Miro Hrončok 502656b77b Add Python 3.9 to the CI 2020-02-06 13:18:01 +01:00
Miro Hrončok bde7ce687a Update to 3.14.3 (#1725939)
- Fix invocation with Python 3.9 (#1798929)
- Recommend Python 3.9
2020-02-06 12:31:58 +01:00
Fedora Release Engineering 7dd27a8770 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-30 15:50:38 +00:00
Miro Hrončok 21f3945b3b Rebuilt for Python 3.8.0rc1 (#1748018) 2019-10-03 14:33:49 +02:00
Miro Hrončok 39e36355f8 Rebuilt for Python 3.8 2019-08-17 01:11:24 +02:00
Michel Alexandre Salim cbb1e4c150 python-tox: update URL
The old URL (tox.testrun.org) points to a page that does not mention tox at all and has an SSL cert only for hq5.merlinux.eu, merlinux.eu, www.merlinux.eu. Update the URL
2019-08-10 08:15:13 +00:00
Fedora Release Engineering 119eb1eba0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-26 16:45:22 +00:00
Miro Hrončok 745bdd1bfb Make sure directories in %files stay that way 2019-07-08 20:11:13 +02:00
Miro Hrončok 224c79a35f Fedora CI: Update the test image before running tests
See https://pagure.io/fedora-ci/general/issue/20
2019-07-08 20:09:44 +02:00
Miro Hrončok 80602e339d Use importlib.metadata from stdlib on Python 3.8 2019-07-08 20:04:26 +02:00
Miro Hrončok 4e85c05c34 Update to 3.13.2 (#1699032) 2019-07-08 19:40:53 +02:00
Miro Hrončok cb1dcfef37 Update to 3.9.0, obsolete detox, fix license, fix tests (almost) 2019-04-30 16:53:17 +02:00
Miro Hrončok 1380a99f6e Fedora CI: Workaround No group usr/bin/virtualenv available
See https://pagure.io/fedora-ci/general/issue/31
2019-04-30 13:59:20 +02:00
Miro Hrončok c1c8c91355 Install Python 3.8 on the CI 2019-04-30 13:31:51 +02:00
Lumir Balhar 130c199691 Recommend Python 3.8 2019-02-15 12:48:16 +01:00
Fedora Release Engineering 138cc6b75e - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-02 09:44:23 +00:00
Artem Goncharov 4f5a2fef3e Upgrade to 3.5.3
Merges https://src.fedoraproject.org/rpms/python-tox/pull-request/7
2018-11-23 10:04:23 +01:00
Artem Goncharov 5f6beb2377 Upgrade to 3.4.0 version (#1652657) 2018-11-22 16:58:55 +01:00
Petr Viktorin c286211cdb Elaborate why Tox recommends all the Pythons
https://bugzilla.redhat.com/show_bug.cgi?id=1645025
2018-11-02 17:45:23 +01:00
Matthias Runge 1581084f65 Revert the previous change and re-add
recommends: python27.
Bump release and rebuild
2018-11-01 12:02:46 +01:00
Matthias Runge ee3f83475f Revert "Remove remaining python2 bits"
This reverts commit 131621c865.
2018-11-01 12:00:21 +01:00
Matthias Runge 131621c865 Remove remaining python2 bits
Resolves: rhbz#1645025
2018-11-01 10:30:23 +01:00
Miro Hrončok 5d575fab31 Enable basic venv smoke test in the CI 2018-09-04 12:06:45 +02:00
Miro Hrončok 9325be7452 Don't recommend Python 2.6, it doesn't work with tox 3 2018-08-28 19:13:25 +02:00
Fedora Release Engineering 0a9a1e13fa - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-14 02:24:01 +00:00
Miro Hrončok 95f4a83ad1 Rebuilt for Python 3.7 2018-07-02 18:23:57 +02:00
Matthias Runge 2419c84d4c Upgrade to tox-3.0.0 2018-07-02 09:27:42 +02:00
Miro Hrončok cdbf10a574 Rebuilt for Python 3.7 2018-06-17 21:31:17 +02:00
Miro Hrončok 21a8dfc39d Stop recommending python33
https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/message/VTOQDUSGTMGOZOJHK4Y6GNVVLHA36QEC/
2018-05-15 13:31:11 +02:00
Miro Hrončok 3014377f18 Remove the python2 version once again
- everybody just uses the tox command, this is no library
- python2-detox was replaced by python3-detox, nothing requires python2-tox
- finally a proper fix for [1]
- several PRs to packages bogusly buildrequiring python2-tox were merged [2]

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1366193#c8
[2] https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/RELZ7RA5DXGZYXSAGJ7RRONUN2ECJQH4/
2018-05-15 13:27:23 +02:00
Miro Hrončok 03fb4aeaf5 Revert "Remove the python2 version", Python 2 is needed
See https://bugzilla.redhat.com/show_bug.cgi?id=1575667

This reverts commit 0f06d08a6c.
2018-05-07 18:39:08 +02:00
Miro Hrončok 0f06d08a6c Remove the python2 version
- everybody just uses the tox command, this is no library
- python2-detox was replaced by python3-detox, nothing requires python2-tox
- finally a proper fix for [1]

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1366193#c8
2018-04-30 12:13:38 +02:00
Miro Hrončok 7ab1656082 Switch to automatic dependency generator (also fixes #1556164)
- Recommend python37
2018-03-15 16:05:35 +01:00
Fedora Release Engineering ff2180b68e - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-09 11:19:17 +00:00
Matthias Runge c25a770438 Update to 2.9.1 2018-01-29 11:08:43 +01:00
Fedora Release Engineering efaaaa73ec - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-27 12:04:20 +00:00
Matthias Runge 32f19627ca update to 2.7.0 2017-04-25 14:25:41 +02:00
Miro Hrončok f0d7c36890 Recommend the devel subpackages of Pythons (so tox works with extension modules) 2017-04-09 18:42:40 +02:00
Miro Hrončok bfb11cae80 Recommend python36 2017-02-15 00:43:31 +01:00
Fedora Release Engineering 38dc612112 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild 2017-02-11 10:43:23 +00:00
Miro Hrončok 53edfdda47 Rebuild for Python 3.6 2016-12-19 18:20:38 +01:00
Miro Hrončok 454e6cdbf8 Recommend "all the Pythons" 2016-10-10 19:55:58 +02:00
Miro Hrončok 1fd92e9476 Modernize, move executable to Python 3 (#1366193) 2016-08-11 13:43:00 +02:00
Miro Hrončok 1c269861a6 Remove unused patch 2016-08-11 13:42:10 +02:00
Fedora Release Engineering 328c6708c1 - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages 2016-07-19 11:52:57 +00:00
Matthias Runge 99c28efbbf update to 2.3.1 2016-02-29 13:50:30 +01:00
Fedora Release Engineering e65973ae70 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 2016-02-04 21:10:20 +00:00
Kalev Lember 11429189f0 Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 2015-11-12 12:55:20 +01:00
Matthias Runge 79129af11e add python-pluggy as requirement 2015-08-25 15:15:58 +02:00
Matthias Runge b42ab61dd8 update to 2.1.1 2015-08-18 08:38:11 +02:00
Dennis Gilmore 6e5b2889d8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild 2015-06-18 21:04:34 +00:00
Matthias Runge 795f3ebf4c update to 1.8.1 2014-12-16 20:47:51 +01:00
Matthias Runge 6683010baa fix ConfigError: substitution key 'posargs' not found 2014-08-13 22:02:21 +02:00
Matthias Runge 06bc4807a8 require at least python-virtualenv >= 1.11.2 2014-07-30 08:42:24 +02:00
Matthias Runge 35b18681fd Merge branch 'master' of ssh://pkgs.fedoraproject.org/python-tox
Conflicts:
	python-tox.spec
2014-07-08 18:14:42 +02:00
Matthias Runge 39de63570b update to 1.7.1 (rhbz#111797) 2014-07-08 17:57:57 +02:00
Dennis Gilmore ab45d3c2ff - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild 2014-06-07 18:40:54 -05:00
Matthias Runge b16e8f3214 update to 1.6.1 2013-09-24 11:35:44 +02:00
Dennis Gilmore f3cb1e6174 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild 2013-08-04 05:14:26 -05:00
5 changed files with 625 additions and 48 deletions
+18
View File
@@ -1 +1,19 @@
/tox-1.4.2.zip /tox-1.4.2.zip
/tox-1.6.1.tar.gz
/tox-1.7.1.tar.gz
/tox-1.8.1.tar.gz
/tox-2.1.1.tar.gz
/tox-2.3.1.tar.gz
/tox-2.7.0.tar.gz
/tox-2.9.1.tar.gz
/tox-3.0.0.tar.gz
/tox-3.4.0.tar.gz
/tox-3.5.3.tar.gz
/tox-3.9.0.tar.gz
/tox-3.13.1.tar.gz
/tox-3.13.2.tar.gz
/tox-3.14.3.tar.gz
/tox-3.14.6.tar.gz
/tox-3.15.0.tar.gz
/tox-3.15.1.tar.gz
/tox-3.15.2.tar.gz
+235
View File
@@ -0,0 +1,235 @@
diff --git a/src/tox/config/__init__.py b/src/tox/config/__init__.py
index c21222c..93805ba 100644
--- a/src/tox/config/__init__.py
+++ b/src/tox/config/__init__.py
@@ -2,6 +2,7 @@ from __future__ import print_function
import argparse
import itertools
+import json
import os
import random
import re
@@ -538,6 +539,16 @@ def tox_addoption(parser):
action="store_true",
help="override alwayscopy setting to True in all envs",
)
+ parser.add_argument(
+ "--no-provision",
+ action="store",
+ nargs="?",
+ default=False,
+ const=True,
+ metavar="REQUIRES_JSON",
+ help="do not perform provision, but fail and if a path was provided "
+ "write provision metadata as JSON to it",
+ )
cli_skip_missing_interpreter(parser)
parser.add_argument("--workdir", metavar="PATH", help="tox working directory")
@@ -1234,11 +1245,11 @@ class ParseIni(object):
feedback("--devenv requires only a single -e", sysexit=True)
def handle_provision(self, config, reader):
- requires_list = reader.getlist("requires")
+ config.requires = reader.getlist("requires")
config.minversion = reader.getstring("minversion", None)
config.provision_tox_env = name = reader.getstring("provision_tox_env", ".tox")
min_version = "tox >= {}".format(config.minversion or tox.__version__)
- deps = self.ensure_requires_satisfied(config, requires_list, min_version)
+ deps = self.ensure_requires_satisfied(config, config.requires, min_version)
if config.run_provision:
section_name = "testenv:{}".format(name)
if section_name not in self._cfg.sections:
@@ -1254,8 +1265,8 @@ class ParseIni(object):
# raise on unknown args
self.config._parser.parse_cli(args=self.config.args, strict=True)
- @staticmethod
- def ensure_requires_satisfied(config, requires, min_version):
+ @classmethod
+ def ensure_requires_satisfied(cls, config, requires, min_version):
missing_requirements = []
failed_to_parse = False
deps = []
@@ -1282,12 +1293,33 @@ class ParseIni(object):
missing_requirements.append(str(requirements.Requirement(require)))
if failed_to_parse:
raise tox.exception.BadRequirement()
+ if config.option.no_provision and missing_requirements:
+ msg = "provisioning explicitly disabled within {}, but missing {}"
+ if config.option.no_provision is not True: # it's a path
+ msg += " and wrote to {}"
+ cls.write_requires_to_json_file(config)
+ raise tox.exception.Error(
+ msg.format(sys.executable, missing_requirements, config.option.no_provision)
+ )
if WITHIN_PROVISION and missing_requirements:
msg = "break infinite loop provisioning within {} missing {}"
raise tox.exception.Error(msg.format(sys.executable, missing_requirements))
config.run_provision = bool(len(missing_requirements))
return deps
+ @staticmethod
+ def write_requires_to_json_file(config):
+ requires_dict = {
+ "minversion": config.minversion,
+ "requires": config.requires,
+ }
+ try:
+ with open(config.option.no_provision, "w", encoding="utf-8") as outfile:
+ json.dump(requires_dict, outfile, indent=4)
+ except TypeError: # Python 2
+ with open(config.option.no_provision, "w") as outfile:
+ json.dump(requires_dict, outfile, indent=4, encoding="utf-8")
+
def parse_build_isolation(self, config, reader):
config.isolated_build = reader.getbool("isolated_build", False)
config.isolated_build_env = reader.getstring("isolated_build_env", ".package")
diff --git a/tests/unit/session/test_provision.py b/tests/unit/session/test_provision.py
index aa631c0..710df60 100644
--- a/tests/unit/session/test_provision.py
+++ b/tests/unit/session/test_provision.py
@@ -1,5 +1,6 @@
from __future__ import absolute_import, unicode_literals
+import json
import os
import shutil
import subprocess
@@ -42,6 +43,35 @@ def test_provision_min_version_is_requires(newconfig, next_tox_major):
assert config.ignore_basepython_conflict is False
+def test_provision_config_has_minversion_and_requires(newconfig, next_tox_major):
+ with pytest.raises(MissingRequirement) as context:
+ newconfig(
+ [],
+ """\
+ [tox]
+ minversion = {}
+ requires =
+ setuptools > 2
+ pip > 3
+ """.format(
+ next_tox_major,
+ ),
+ )
+ config = context.value.config
+
+ assert config.run_provision is True
+ assert config.minversion == next_tox_major
+ assert config.requires == ["setuptools > 2", "pip > 3"]
+
+
+def test_provision_config_empty_minversion_and_requires(newconfig, next_tox_major):
+ config = newconfig([], "")
+
+ assert config.run_provision is False
+ assert config.minversion is None
+ assert config.requires == []
+
+
def test_provision_tox_change_name(newconfig):
config = newconfig(
[],
@@ -149,6 +179,99 @@ def test_provision_cli_args_not_ignored_if_provision_false(cmd, initproj):
result.assert_fail(is_run_test_env=False)
+parametrize_json_path = pytest.mark.parametrize("json_path", [None, "missing.json"])
+
+
+@parametrize_json_path
+def test_provision_does_not_fail_with_no_provision_no_reason(cmd, initproj, json_path):
+ p = initproj("test-0.1", {"tox.ini": "[tox]"})
+ result = cmd("--no-provision", *([json_path] if json_path else []))
+ result.assert_success(is_run_test_env=True)
+ assert not (p / "missing.json").exists()
+
+
+@parametrize_json_path
+def test_provision_fails_with_no_provision_next_tox(cmd, initproj, next_tox_major, json_path):
+ p = initproj(
+ "test-0.1",
+ {
+ "tox.ini": """\
+ [tox]
+ minversion = {}
+ """.format(
+ next_tox_major,
+ )
+ },
+ )
+ result = cmd("--no-provision", *([json_path] if json_path else []))
+ result.assert_fail(is_run_test_env=False)
+ if json_path:
+ missing = json.loads((p / json_path).read_text("utf-8"))
+ assert missing["minversion"] == next_tox_major
+
+
+@parametrize_json_path
+def test_provision_fails_with_no_provision_missing_requires(cmd, initproj, json_path):
+ p = initproj(
+ "test-0.1",
+ {
+ "tox.ini": """\
+ [tox]
+ requires =
+ virtualenv > 99999999
+ """
+ },
+ )
+ result = cmd("--no-provision", *([json_path] if json_path else []))
+ result.assert_fail(is_run_test_env=False)
+ if json_path:
+ missing = json.loads((p / json_path).read_text("utf-8"))
+ assert missing["requires"] == ["virtualenv > 99999999"]
+
+
+@parametrize_json_path
+def test_provision_does_not_fail_with_satisfied_requires(cmd, initproj, next_tox_major, json_path):
+ p = initproj(
+ "test-0.1",
+ {
+ "tox.ini": """\
+ [tox]
+ minversion = 0
+ requires =
+ setuptools > 2
+ pip > 3
+ """
+ },
+ )
+ result = cmd("--no-provision", *([json_path] if json_path else []))
+ result.assert_success(is_run_test_env=True)
+ assert not (p / "missing.json").exists()
+
+
+@parametrize_json_path
+def test_provision_fails_with_no_provision_combined(cmd, initproj, next_tox_major, json_path):
+ p = initproj(
+ "test-0.1",
+ {
+ "tox.ini": """\
+ [tox]
+ minversion = {}
+ requires =
+ setuptools > 2
+ pip > 3
+ """.format(
+ next_tox_major,
+ )
+ },
+ )
+ result = cmd("--no-provision", *([json_path] if json_path else []))
+ result.assert_fail(is_run_test_env=False)
+ if json_path:
+ missing = json.loads((p / json_path).read_text("utf-8"))
+ assert missing["minversion"] == next_tox_major
+ assert missing["requires"] == ["setuptools > 2", "pip > 3"]
+
+
@pytest.fixture(scope="session")
def wheel(tmp_path_factory):
"""create a wheel for a project"""
+295 -47
View File
@@ -1,79 +1,327 @@
# Tests requiring Internet connections are disabled by default # Tests requiring Internet connections are disabled by default
# pass --with internet to run them (e.g. when doing a local rebuild # pass --with internet to run them (e.g. when doing a local rebuild
# for sanity checks before committing) # for sanity checks before committing). Example:
# $ mock --enable-network --with internet <SRPM>
%bcond_with internet %bcond_with internet
%global pypiname tox %global pypi_name tox
Name: python-tox Name: python-%{pypi_name}
Version: 1.4.2 Version: 3.15.2
Release: 8%{?dist} Release: 2%{?dist}
Summary: Virtualenv-based automation of test activities Summary: Virtualenv-based automation of test activities
# file toxbootstrap.py is licensed under MIT License License: MIT
License: GPLv2+ and MIT URL: https://tox.readthedocs.io/
URL: http://codespeak.net/tox Source0: %{pypi_source}
Source0: http://pypi.python.org/packages/source/t/%{pypiname}/%{pypiname}-%{version}.zip
#md5=dc52acf22eb57eaa33e704f8a54e7b34 # Expose tox requires via the config object
# https://github.com/tox-dev/tox/pull/1919
# Add --no-provision flag
# https://github.com/tox-dev/tox/pull/1922
Patch1: provision-backports.patch
BuildArch: noarch BuildArch: noarch
BuildRequires: python2-devel
BuildRequires: python-setuptools
Requires: python-py
Requires: python-virtualenv
# required for check
%if 0%{?fedora}
BuildRequires: python-py
BuildRequires: pytest
BuildRequires: python-virtualenv
%endif
%description %description
Tox as is a generic virtualenv management and test command line tool you Tox as is a generic virtualenv management and test command line tool you
can use for: can use for:
- checking your package installs correctly with different Python versions - checking your package installs correctly with different Python versions
and interpreters and interpreters
- running your tests in each of the environments, configuring your test tool - running your tests in each of the environments, configuring your test tool
of choice of choice
- acting as a frontend to Continuous Integration servers, greatly reducing - acting as a frontend to Continuous Integration servers, greatly reducing
boilerplate and merging CI and shell-based testing. boilerplate and merging CI and shell-based testing.
%prep
%setup -q -n %{pypiname}-%{version} %package -n python3-%{pypi_name}
Summary: %{summary}
%{?python_provide:%python_provide python3-%{pypi_name}}
Provides: %{pypi_name} = %{version}-%{release}
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-setuptools_scm
# Recommend "all the Pythons"
# Why? Tox exists to enable developers to test libraries against various Python
# versions, with just "dnf install tox" and a config file.
# See: https://developer.fedoraproject.org/tech/languages/python/python-installation.html#using-virtualenv
# Tox itself runs on the system python3 (i.e. %%{python3_version},
# 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.5
Recommends: python3.6
Recommends: python3.7
Recommends: python3.8
Recommends: python3.9
Recommends: pypy2-devel
Recommends: pypy3-devel
Recommends: python2-devel
Recommends: python3-devel
# Replace the python2 version
Obsoletes: python2-tox < 2.9.1-4
# Replace detox (no longer supported, functionality is now in tox)
Obsoletes: python3-detox < 0.19-5
%if %{with internet}
# for tests
BuildRequires: python3-filelock
BuildRequires: python3-flaky
BuildRequires: python3-freezegun
BuildRequires: python3-packaging
BuildRequires: python3-pip
BuildRequires: python3-pluggy >= 0.12
BuildRequires: python3-poetry
BuildRequires: python3-psutil
BuildRequires: python3-py
BuildRequires: python3-pytest
BuildRequires: python3-pytest-mock
#BuildRequires: python3-pytest-randomly -- not packaged
BuildRequires: python3-pytest-xdist
BuildRequires: python3-toml
BuildRequires: python3-virtualenv
BuildRequires: python3-wheel
BuildRequires: (python3-importlib-metadata if python3 < 3.8)
BuildRequires: /usr/bin/gcc
BuildRequires: /usr/bin/git
BuildRequires: /usr/bin/poetry
BuildRequires: libffi-devel
%endif
%?python_enable_dependency_generator
%description -n python3-%{pypi_name}
Tox as is a generic virtualenv management and test command line tool you
can use for:
- checking your package installs correctly with different Python versions
and interpreters
- running your tests in each of the environments, configuring your test tool
of choice
- acting as a frontend to Continuous Integration servers, greatly reducing
boilerplate and merging CI and shell-based testing.
%prep
%autosetup -p1 -n %{pypi_name}-%{version}
# Pathlib2 was retired in Fedora, instead of unretiring it,
# it's enough to use pathlib instead.
find . -type f -name "*.py" -print0 | xargs -0 sed -i "s/pathlib2/pathlib/g"
# remove bundled egg-info
rm -rf %{pypi_name}.egg-info
%build %build
%{__python} setup.py build %py3_build
%install %install
%{__python} setup.py install -O1 --skip-build --root %{buildroot} %py3_install
# if internet connection available, run tests # if internet connection available, run tests
%if %{with internet} %if %{with internet}
%check %check
# python 2.7: fedora 17, fedora 18 # there will be failures like
# python 3.2: fedora 17 # ModuleNotFoundError: tox
# python 3.3: fedora 18 # or InterpreterNotFound: python
# We juggle the environment variables as much as we can, but it's not perfect.
# el6: buildrequirements missing # To workaround this:
#%if 0%{?rhel}==6 # 1. build --without internet
#TOXENV=py26 %{__python} setup.py test # 2. install the new python3-tox
#%endif # 3. build --with internet
mkdir .path
%if 0%{?fedora}==17 || 0%{?fedora}==18 ln -s %{__python3} .path/python
TOXENV=py27 %{__python} setup.py test 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_provision_cli_args_ignore"
rm -rf .path
%endif %endif
%endif %files -n python3-%{pypi_name}
%{_bindir}/%{pypi_name}
%files %{_bindir}/%{pypi_name}-quickstart
%doc LICENSE README.txt ISSUES.txt doc %{python3_sitelib}/%{pypi_name}/
%{_bindir}/%{pypiname} %{python3_sitelib}/%{pypi_name}-%{version}-py%{python3_version}.egg-info/
%{python_sitelib}/%{pypiname}
%{python_sitelib}/%{pypiname}-%{version}-py2.?.egg-info
%changelog %changelog
* Thu Mar 18 2021 Miro Hrončok <mhroncok@redhat.com> - 3.15.2-2
- Expose tox requires via the config object
- Add --no-provision flag
* Mon Jun 08 2020 Miro Hrončok <mhroncok@redhat.com> - 3.15.2-1
- Update to 3.15.2 (#1844689)
* Mon Jun 01 2020 Charalampos Stratakis <cstratak@redhat.com> - 3.15.1-1
- Update to 3.15.1 (#1838137)
* Sat May 23 2020 Miro Hrončok <mhroncok@redhat.com> - 3.15.0-2
- Rebuilt for Python 3.9
* Wed May 13 2020 Tomas Hrnciar <thrnciar@redhat.com> - 3.15.0-1
- Update to 3.15.0
- Stop recommending Python 3.4
* Thu Mar 19 2020 Tomas Hrnciar <thrnciar@redhat.com> - 3.14.6-1
- Update to 3.14.6
* Thu Feb 06 2020 Miro Hrončok <mhroncok@redhat.com> - 3.14.3-1
- Update to 3.14.3 (#1725939)
- Fix invocation with Python 3.9 (#1798929)
- Recommend Python 3.9
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.13.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 3.13.2-4
- Rebuilt for Python 3.8.0rc1 (#1748018)
* Fri Aug 16 2019 Miro Hrončok <mhroncok@redhat.com> - 3.13.2-3
- Rebuilt for Python 3.8
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.13.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon Jul 08 2019 Miro Hrončok <mhroncok@redhat.com> - 3.13.2-1
- Update to 3.13.2 (#1699032)
* Tue Apr 30 2019 Miro Hrončok <mhroncok@redhat.com> - 3.9.0-1
- Update to 3.9.0
- Obsolete detox
- License is MIT
* Fri Feb 15 2019 Lumír Balhar <lbalhar@redhat.com> - 3.5.3-3
- Recommend Python 3.8
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.5.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Nov 22 2018 Artem Goncharov <artem.goncharov@gmail.com> - 3.5.3-1
- Upgrade to 3.5.3 version
* Mon Nov 19 2018 Artem Goncharov <artem.goncharov@gmail.com> - 3.4.0-1
- Upgrade to 3.4.0 version (#1652657)
* Thu Nov 01 2018 Matthias Runge <mrunge@redhat.com> - 3.0.0-6
- remove and revert the change to recommend python 2.7 (rhbz#1645025)
* Tue Aug 28 2018 Miro Hrončok <mhroncok@redhat.com> - 3.0.0-4
- Don't recommend Python 2.6, it doesn't work with tox 3
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Jul 02 2018 Miro Hrončok <mhroncok@redhat.com> - 3.0.0-2
- Rebuilt for Python 3.7
* Mon Jul 02 2018 Matthias Runge <mrunge@redhat.com> - 3.0.0-1
- upgrade to 3.0.0
* Sun Jun 17 2018 Miro Hrončok <mhroncok@redhat.com> - 2.9.1-7
- Rebuilt for Python 3.7
* Tue May 15 2018 Miro Hrončok <mhroncok@redhat.com> - 2.9.1-6
- Remove the python2 version once again
- Stop recommending python33 (it's retired)
* Mon May 07 2018 Miro Hrončok <mhroncok@redhat.com> - 2.9.1-5
- Add python2 back, see #1575667
* Mon Apr 30 2018 Miro Hrončok <mhroncok@redhat.com> - 2.9.1-4
- Remove the python2 version
* Thu Mar 15 2018 Miro Hrončok <mhroncok@redhat.com> - 2.9.1-3
- Switch to automatic dependency generator (also fixes #1556164)
- Recommend python37
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Mon Jan 29 2018 Matthias Runge <mrunge@redhat.com> - 2.9.1-1
- update to 2.9.1
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Tue Apr 25 2017 Matthias Runge <mrunge@redhat.com> - 2.7.0-1
- upgrade to 2.7.0
* Sun Apr 09 2017 Miro Hrončok <mhroncok@redhat.com> - 2.3.1-8
- Recommend the devel subpackages of Pythons (so tox works with extension modules)
* Tue Feb 14 2017 Miro Hrončok <mhroncok@redhat.com> - 2.3.1-7
- Recommend python36
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 2.3.1-5
- Rebuild for Python 3.6
* Mon Oct 10 2016 Miro Hrončok <mhroncok@redhat.com> - 2.3.1-4
- Recommend "all the Pythons"
* Thu Aug 11 2016 Miro Hrončok <mhroncok@redhat.com> - 2.3.1-3
- /usr/bin/tox is Python3
- Python 2 subpackage is python2-tox
- Run the tests also on Python 3
- Update Source URL and URL
- Use modern macros
- Get rid of Fedora 17 checks
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.1-2
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
* Mon Feb 29 2016 Matthias Runge <mrunge@redhat.com> - 2.3.1-1
- update to 2.3.1
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Thu Nov 12 2015 Kalev Lember <klember@redhat.com> - 2.1.1-3
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5
* Tue Aug 25 2015 Matthias Runge <mrunge@redhat.com> - 2.1.1-2
- add requirement: python-pluggy
* Tue Aug 18 2015 Matthias Runge <mrunge@redhat.com> - 2.1.1-1
- update to 2.1.1
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Tue Dec 16 2014 Matthias Runge <mrunge@redhat.com> - 1.8.1-1
- update to 1.8.1
* Wed Aug 13 2014 Matthias Runge <mrunge@redhat.com> - 1.7.1-3
- Fix ConfigError: ConfigError: substitution key 'posargs' not found
(rhbz#1127961, rhbz#1128562)
* Wed Jul 30 2014 Matthias Runge <mrunge@redhat.com> - 1.7.1-2
- require virtualenv >= 1.11.2 (rhbz#1122603)
* Tue Jul 08 2014 Matthias Runge <mrunge@redhat.com> - 1.7.1-1
- update to 1.7.1 (rhbz#111797)
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Tue Sep 24 2013 Matthias Runge <mrunge@redhat.com> - 1.6.1-1
- update to 1.6.1
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.2-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.2-8 * Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.2-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+1 -1
View File
@@ -1 +1 @@
dc52acf22eb57eaa33e704f8a54e7b34 tox-1.4.2.zip SHA512 (tox-3.15.2.tar.gz) = 2a93f8141986d967d090eaf9d327e418e42357028540cb140da6a6430749a4b41e7f82c9ae57378995b7f3be060b7480d770416a6a21583e06b83b7248ceacf8
+76
View File
@@ -0,0 +1,76 @@
---
- hosts: localhost
tags:
- classic
tasks:
- dnf:
name: "*"
state: latest
- hosts: localhost
tags:
- classic
pre_tasks:
- import_role:
name: standard-test-source
vars:
fetch_only: True
roles:
- role: standard-test-basic
repositories:
- repo: "https://src.fedoraproject.org/tests/python.git"
dest: "python"
- repo: "https://src.fedoraproject.org/rpms/pyproject-rpm-macros.git"
dest: "pyproject-rpm-macros"
tests:
- rpmbuild:
dir: .
run: "dnf -y build-dep --define '_with_internet 1' {{ tenv_workdir }}/python-tox.spec && rpmbuild --define '_sourcedir {{ tenv_workdir }}' --with internet -ba {{ tenv_workdir }}/python-tox.spec"
- smoke27:
dir: python/smoke
run: VERSION=2.7 METHOD=virtualenv ./venv.sh
- smoke34:
dir: python/smoke
run: VERSION=3.4 ./venv.sh
- smoke35:
dir: python/smoke
run: VERSION=3.5 ./venv.sh
- smoke36:
dir: python/smoke
run: VERSION=3.6 ./venv.sh
- smoke37:
dir: python/smoke
run: VERSION=3.7 ./venv.sh
- smoke38:
dir: python/smoke
run: VERSION=3.8 ./venv.sh
- smoke39:
dir: python/smoke
run: VERSION=3.9 ./venv.sh
- pyproject_pytest:
dir: pyproject-rpm-macros/tests
run: ./mocktest.sh python-pytest
- pyproject_pluggy:
dir: pyproject-rpm-macros/tests
run: ./mocktest.sh python-pluggy
- pyproject_openqa_client:
dir: pyproject-rpm-macros/tests
run: ./mocktest.sh python-openqa_client
required_packages:
- gcc
- virtualenv
- python27
- python34
- python35
- python36
- python37
- python38
- python39
- python2-devel
- python3-devel
- python3-tox
- dnf
- mock
- rpmdevtools
- rpm-build