diff --git a/docs/build/unreleased/592.rst b/docs/build/unreleased/592.rst new file mode 100644 index 00000000..f25d33a3 --- /dev/null +++ b/docs/build/unreleased/592.rst @@ -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 diff --git a/setup.py b/setup.py index ae875764..9574ac69 100644 --- a/setup.py +++ b/setup.py @@ -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( @@ -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"]}, diff --git a/tox.ini b/tox.ini index bb19bb1f..98b05143 100644 --- a/tox.ini +++ b/tox.ini @@ -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} @@ -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