Skip to content

Commit

Permalink
remove python setup.py test
Browse files Browse the repository at this point in the history
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::

pypa/setuptools#1684

pytest-dev/pytest#5534

Fixes: #303
Change-Id: I345fd46f8911a71c039adf2d51937175142db793
  • Loading branch information
zzzeek committed Aug 1, 2019
1 parent 9a7d70a commit 800227c
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 22 deletions.
15 changes: 15 additions & 0 deletions 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
31 changes: 12 additions & 19 deletions setup.py
Expand Up @@ -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(
Expand Down Expand Up @@ -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
Expand Down
5 changes: 2 additions & 3 deletions 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
Expand All @@ -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
Expand Down

0 comments on commit 800227c

Please sign in to comment.