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

Change-Id: Ib92ef8d20ad0e6f1e1b9d25051b788788cc69b02
Fixes: #592
  • Loading branch information
zzzeek committed Aug 26, 2019
1 parent cf75124 commit 230404f
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 20 deletions.
15 changes: 15 additions & 0 deletions docs/build/unreleased/592.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
.. change::
:tags: bug, setup
:tickets: 592

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
29 changes: 12 additions & 17 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,24 +26,19 @@
]


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 @@ -77,7 +72,7 @@ def run_tests(self):
packages=find_packages(".", exclude=["examples*", "test*"]),
include_package_data=True,
tests_require=["pytest!=3.9.1,!=3.9.2", "mock", "Mako"],
cmdclass={"test": PyTest},
cmdclass={"test": UseTox},
zip_safe=False,
install_requires=requires,
entry_points={"console_scripts": ["alembic = alembic.config:main"]},
Expand Down
5 changes: 2 additions & 3 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tox]

envlist = py{27,34,35,36,37}-sqla{11,12,13,master}
envlist = py

SQLA_REPO = {env:SQLA_REPO:git+https://github.com/sqlalchemy/sqlalchemy.git}

Expand Down Expand Up @@ -51,9 +51,8 @@ commands=
{oracle,mssql}: python reap_dbs.py db_idents.txt


# 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 230404f

Please sign in to comment.