diff options
-rw-r--r-- | doc/build/changelog.rst | 7 | ||||
-rw-r--r-- | setup.py | 29 | ||||
-rw-r--r-- | tox.ini | 22 |
3 files changed, 50 insertions, 8 deletions
diff --git a/doc/build/changelog.rst b/doc/build/changelog.rst index a371f7e..29914a8 100644 --- a/doc/build/changelog.rst +++ b/doc/build/changelog.rst @@ -10,6 +10,13 @@ Changelog :released: .. change:: + :tags: feature, test + + The default test runner is now py.test. Running "python setup.py test" + will make use of py.test instead of nose. nose still works as a test + runner as well, however. + + .. change:: :tags: bug, lexer :pullreq: github:19 @@ -1,4 +1,5 @@ from setuptools import setup, find_packages +from setuptools.command.test import test as TestCommand import os import re import sys @@ -13,8 +14,8 @@ if sys.version_info < (2, 6): raise Exception("Mako requires Python 2.6 or higher.") markupsafe_installs = ( - sys.version_info >= (2, 6) and sys.version_info < (3, 0) - ) or sys.version_info >= (3, 3) + sys.version_info >= (2, 6) and sys.version_info < (3, 0) +) or sys.version_info >= (3, 3) install_requires = [] @@ -26,6 +27,26 @@ try: except ImportError: install_requires.append('argparse') + +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 + + def run_tests(self): + # import here, cause outside the eggs aren't loaded + import pytest + errno = pytest.main(self.pytest_args) + sys.exit(errno) + + setup(name='Mako', version=VERSION, description="A super-fast templating language that borrows the \ @@ -47,8 +68,8 @@ setup(name='Mako', url='http://www.makotemplates.org/', license='MIT', packages=find_packages('.', exclude=['examples*', 'test*']), - tests_require=['nose >= 0.11', 'mock'], - test_suite="nose.collector", + tests_require=['pytest', 'mock'], + cmdclass={'test': PyTest}, zip_safe=False, install_requires=install_requires, extras_require={}, @@ -1,16 +1,30 @@ # content of: tox.ini , put in same dir as setup.py [tox] -envlist = py{26,27,33,34} +minversion=1.8.dev1 +envlist = py{26,27,34,35} [testenv] +cov_args=--cov=mako --cov-report term --cov-report xml + deps=pytest - py{26,27}: mock + mock beaker markupsafe pygments babel dogpile.cache lingua<4 - -commands=py.test + cov: pytest-cov + +setenv= + cov: COVERAGE={[testenv]cov_args} + +commands=py.test {env:COVERAGE:} {posargs} + + +[flake8] +show-source = True +ignore = E711,E712,E721,D,N +# F841,F811,F401 +exclude=.venv,.git,.tox,dist,doc,*egg,build |