From 800227cd83e50f06093b5feaac6aa6a9f9daa114 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 31 Jul 2019 16:39:38 -0400 Subject: [PATCH] remove python setup.py test Removed the "python setup.py test" feature in favor of a straight run of "tox". Per Pypa / pytest developers, "setup.py" commands are in general headed towards deprecation in favor of tox. The tox.ini script has been updated such that running "tox" with no arguments will perform a single run of the test suite against the default installed Python interpreter. .. seealso:: https://github.com/pypa/setuptools/issues/1684 https://github.com/pytest-dev/pytest/issues/5534 Fixes: #303 Change-Id: I345fd46f8911a71c039adf2d51937175142db793 --- doc/build/unreleased/303.rst | 15 +++++++++++++++ setup.py | 31 ++++++++++++------------------- tox.ini | 5 ++--- 3 files changed, 29 insertions(+), 22 deletions(-) create mode 100644 doc/build/unreleased/303.rst diff --git a/doc/build/unreleased/303.rst b/doc/build/unreleased/303.rst new file mode 100644 index 0000000..de5a01a --- /dev/null +++ b/doc/build/unreleased/303.rst @@ -0,0 +1,15 @@ +.. change:: + :tags: bug, setup + :tickets: 303 + + Removed the "python setup.py test" feature in favor of a straight run of + "tox". Per Pypa / pytest developers, "setup.py" commands are in general + headed towards deprecation in favor of tox. The tox.ini script has been + updated such that running "tox" with no arguments will perform a single run + of the test suite against the default installed Python interpreter. + + .. seealso:: + + https://github.com/pypa/setuptools/issues/1684 + + https://github.com/pytest-dev/pytest/issues/5534 diff --git a/setup.py b/setup.py index 68b46ef..e9c12be 100644 --- a/setup.py +++ b/setup.py @@ -19,24 +19,19 @@ install_requires = ["MarkupSafe>=0.9.2"] -class PyTest(TestCommand): - user_options = [("pytest-args=", "a", "Arguments to pass to py.test")] - - def initialize_options(self): - TestCommand.initialize_options(self) - self.pytest_args = [] - - def finalize_options(self): - TestCommand.finalize_options(self) - self.test_args = [] - self.test_suite = True +class UseTox(TestCommand): + RED = 31 + RESET_SEQ = "\033[0m" + BOLD_SEQ = "\033[1m" + COLOR_SEQ = "\033[1;%dm" def run_tests(self): - # import here, cause outside the eggs aren't loaded - import pytest - - errno = pytest.main(self.pytest_args) - sys.exit(errno) + sys.stderr.write( + "%s%spython setup.py test is deprecated by pypa. Please invoke " + "'tox' with no arguments for a basic test run.\n%s" + % (self.COLOR_SEQ % self.RED, self.BOLD_SEQ, self.RESET_SEQ) + ) + sys.exit(1) setup( @@ -67,11 +62,9 @@ def run_tests(self): }, license="MIT", packages=find_packages(".", exclude=["examples*", "test*"]), - tests_require=["pytest", "mock"], - cmdclass={"test": PyTest}, + cmdclass={"test": UseTox}, zip_safe=False, install_requires=install_requires, - extras_require={}, entry_points=""" [python.templating.engines] mako = mako.ext.turbogears:TGPlugin diff --git a/tox.ini b/tox.ini index b1a1e81..d2f044f 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{27,34,35,36,37,38} +envlist = py [testenv] cov_args=--cov=mako --cov-report term --cov-report xml @@ -20,9 +20,8 @@ setenv= commands=py.test {env:COVERAGE:} {posargs} -# thanks to https://julien.danjou.info/the-best-flake8-extensions/ [testenv:pep8] -basepython = python3.7 +basepython = python3 deps= flake8 flake8-import-order