44import codecs
55import os
66import re
7+ from setuptools .command .test import test as TestCommand
78from setuptools import find_packages
89from setuptools import setup
10+ import sys
911
1012ROOT_DIR = os .path .abspath (os .path .dirname (__file__ ))
1113os .chdir (os .path .normpath (os .path .join (os .path .abspath (__file__ ), os .pardir )))
@@ -28,7 +30,24 @@ def find_version(*file_paths):
2830 if version_match :
2931 return version_match .group (1 )
3032
31- raise RuntimeError ("Unable to find version string." )
33+ raise RuntimeError ('Unable to find version string.' )
34+
35+
36+ class Tox (TestCommand ):
37+ """Tox class."""
38+
39+ def finalize_options (self ):
40+ """Finalize options."""
41+ TestCommand .finalize_options (self )
42+ self .test_args = []
43+ self .test_suite = True
44+
45+ def run_tests (self ):
46+ """Run tests."""
47+ # import here, cause outside the eggs aren't loaded
48+ import tox
49+ errcode = tox .cmdline (self .test_args )
50+ sys .exit (errcode )
3251
3352
3453INSTALL_REQUIREMENTS = [
@@ -37,6 +56,7 @@ def find_version(*file_paths):
3756]
3857
3958TESTS_REQUIREMENTS = [
59+ 'tox'
4060]
4161
4262CLASSIFIERS = [
@@ -62,7 +82,7 @@ def find_version(*file_paths):
6282 author = 'Stefan Kasberger' ,
6383 author_email = 'stefan.kasberger@univie.ac.at' ,
6484 name = 'pyDataverse' ,
65- version = find_version (" src" , " pyDataverse" , " __init__.py" ),
85+ version = find_version (' src' , ' pyDataverse' , ' __init__.py' ),
6686 description = 'A Dataverse API wrapper' ,
6787 long_description = read_file ('README.md' ),
6888 long_description_content_type = "text/markdown" ,
@@ -76,6 +96,7 @@ def find_version(*file_paths):
7696 package_dir = {'' : 'src' },
7797 setup_requires = ['pytest-runner' ],
7898 tests_require = TESTS_REQUIREMENTS ,
99+ cmdclass = {'test' : Tox },
79100 include_package_data = True ,
80101 keywords = ['pydataverse' , 'dataverse' , 'api' ],
81102 zip_safe = False ,
0 commit comments