diff --git a/setup-test-env.sh b/setup-memcached-env.sh similarity index 68% rename from setup-test-env.sh rename to setup-memcached-env.sh index 5a0a1dfa..bbdd9fae 100755 --- a/setup-test-env.sh +++ b/setup-memcached-env.sh @@ -13,15 +13,6 @@ function clean_exit(){ trap "clean_exit" EXIT -if ! check_port 6379; then - redis_bin=$(which redis-server || true) - if [ -n "$redis_bin" ]; then - $redis_bin --port 6379 & - else - echo "Redis server not available, testing being skipped..." - fi -fi - if ! check_port 11211; then memcached_bin=$(which memcached || true) if [ -n "$memcached_bin" ]; then diff --git a/setup-redis-env.sh b/setup-redis-env.sh new file mode 100755 index 00000000..c075a14e --- /dev/null +++ b/setup-redis-env.sh @@ -0,0 +1,26 @@ +#!/bin/bash -x -e + +. functions.sh + +function clean_exit(){ + local error_code="$?" + local spawned=$(jobs -p) + if [ -n "$spawned" ]; then + kill $(jobs -p) + fi + return $error_code +} + +trap "clean_exit" EXIT + +if ! check_port 6379; then + redis_bin=$(which redis-server || true) + if [ -n "$redis_bin" ]; then + $redis_bin --port 6379 & + else + echo "Redis server not available, testing being skipped..." + fi +fi + +# Yield execution to venv command +$* diff --git a/tox.ini b/tox.ini index 3096ecf6..4a67b378 100644 --- a/tox.ini +++ b/tox.ini @@ -1,15 +1,14 @@ [tox] minversion = 1.6 skipsdist = True -envlist = py26,py27,py33,py34,py27-zookeeper,py33-zookeeper,py34-zookeeper,pep8 +envlist = py26,py27,py33,py34,py27-zookeeper,py33-zookeeper,py34-zookeeper,py27-redis,py33-redis,py34-redis,py27-memcached,py33-memcached,py34-memcached,pep8 [testenv] deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt install_command = pip install -U {opts} {packages} usedevelop = True -commands = - bash -x {toxinidir}/setup-test-env.sh python setup.py testr --slowest --testr-args="{posargs}" +commands = python setup.py testr --slowest --testr-args="{posargs}" [testenv:venv] deps = -r{toxinidir}/requirements.txt @@ -19,8 +18,8 @@ commands = {posargs} [testenv:py27] deps = {[testenv]deps} doc8 -commands = bash -x {toxinidir}/setup-test-env.sh python setup.py testr --slowest --testr-args="{posargs}" - bash -x {toxinidir}/setup-test-env.sh {toxinidir}/run-examples.sh +commands = python setup.py testr --slowest --testr-args="{posargs}" + {toxinidir}/run-examples.sh doc8 doc/source [testenv:py33] @@ -44,9 +43,34 @@ deps = {[testenv:py34]deps} basepython = python3.4 commands = {toxinidir}/setup-zookeeper-env.sh python setup.py testr --slowest --testr-args="{posargs}" +[testenv:py27-redis] +commands = {toxinidir}/setup-redis-env.sh python setup.py testr --slowest --testr-args="{posargs}" + +[testenv:py33-redis] +deps = {[testenv:py33]deps} +basepython = python3.3 +commands = {toxinidir}/setup-redis-env.sh python setup.py testr --slowest --testr-args="{posargs}" + +[testenv:py34-redis] +deps = {[testenv:py34]deps} +basepython = python3.4 +commands = {toxinidir}/setup-redis-env.sh python setup.py testr --slowest --testr-args="{posargs}" + +[testenv:py27-memcached] +commands = {toxinidir}/setup-memcached-env.sh python setup.py testr --slowest --testr-args="{posargs}" + +[testenv:py33-memcached] +deps = {[testenv:py33]deps} +basepython = python3.3 +commands = {toxinidir}/setup-memcached-env.sh python setup.py testr --slowest --testr-args="{posargs}" + +[testenv:py34-memcached] +deps = {[testenv:py34]deps} +basepython = python3.4 +commands = {toxinidir}/setup-memcached-env.sh python setup.py testr --slowest --testr-args="{posargs}" + [testenv:cover] -commands = - bash -x {toxinidir}/setup-test-env.sh python setup.py testr --slowest --coverage --testr-args="{posargs}" +commands = python setup.py testr --slowest --coverage --testr-args="{posargs}" [testenv:docs] deps = {[testenv]deps}