diff --git a/contrib/.testr.conf b/contrib/.testr.conf new file mode 100644 index 0000000000..8396da3953 --- /dev/null +++ b/contrib/.testr.conf @@ -0,0 +1,4 @@ +[DEFAULT] +test_command=python -m subunit.run discover -s contrib $LISTOPT $IDOPTION +test_id_option=--load-list $IDFILE +test_list_option=--list diff --git a/contrib/bin/run_tests.py b/contrib/bin/run_tests.py new file mode 100644 index 0000000000..4b5290e5f3 --- /dev/null +++ b/contrib/bin/run_tests.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import os +import sys + +from testrepository import commands + +CONTRIB_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), + os.pardir)) +TESTR_PATH = os.path.join(CONTRIB_PATH, ".testrepository") + + +def _run_testr(*args): + return commands.run_argv([sys.argv[0]] + list(args), + sys.stdin, sys.stdout, sys.stderr) + +# initialize the contrib test repository if needed +if not os.path.isdir(TESTR_PATH): + _run_testr('init', '-d', CONTRIB_PATH) +if not _run_testr('run', '-d', CONTRIB_PATH, '--parallel'): + cur_dir = os.getcwd() + os.chdir(CONTRIB_PATH) + print("Slowest Contrib Tests") + _run_testr("slowest") + os.chdir(cur_dir) +else: + sys.exit(1) diff --git a/tox.ini b/tox.ini index 894f2a3952..80ab3224f1 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py26,py27,pep8,contrib +envlist = py26,py27,pep8 minversion = 1.6 skipsdist = True @@ -11,13 +11,7 @@ deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands = python setup.py testr --slowest --testr-args='{posargs}' - -[testenv:contrib] -deps = -r{toxinidir}/requirements.txt - -r{toxinidir}/test-requirements.txt -commands = - discover -s contrib/ {posargs} - flake8 contrib + python contrib/bin/run_tests.py [testenv:pep8] commands =