diff --git a/setup.py b/setup.py index 6da71881..bbae97dd 100755 --- a/setup.py +++ b/setup.py @@ -2,7 +2,6 @@ # Learn more: https://github.com/kennethreitz/setup.py import os -import re import sys from codecs import open @@ -12,6 +11,7 @@ from setuptools.command.test import test as TestCommand here = os.path.abspath(os.path.dirname(__file__)) + class PyTest(TestCommand): user_options = [('pytest-args=', 'a', "Arguments to pass into py.test")] @@ -30,6 +30,26 @@ class PyTest(TestCommand): errno = pytest.main(self.pytest_args) sys.exit(errno) + +class MyPyTest(TestCommand): + user_options = [('pytest-args=', 'a', "Arguments to pass into py.test")] + + def initialize_options(self): + TestCommand.initialize_options(self) + self.pytest_args = ['-n', 'auto', '--mypy', 'tests'] + + def finalize_options(self): + TestCommand.finalize_options(self) + self.test_args = [] + self.test_suite = True + + def run_tests(self): + import pytest + + errno = pytest.main(self.pytest_args) + sys.exit(errno) + + # 'setup.py publish' shortcut. if sys.argv[-1] == 'publish': os.system('python setup.py sdist bdist_wheel') @@ -86,7 +106,10 @@ setup( 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy' ), - cmdclass={'test': PyTest}, + cmdclass={ + 'test': PyTest, + 'mypy': MyPyTest + }, tests_require=test_requirements, extras_require={ 'security': ['pyOpenSSL>=0.14', 'cryptography>=1.3.4', 'idna>=2.0.0'],