Merge pull request #296 from harlowja/add-tox-ini

Add tox.ini for using tox for testing
This commit is contained in:
Ben Bangert
2015-03-20 09:02:47 -07:00
6 changed files with 92 additions and 44 deletions

View File

@@ -6,35 +6,35 @@ matrix:
- python: "2.7"
include:
- python: "2.6"
env: GEVENT_VERSION=0.13.8 ZOOKEEPER_VERSION=3.3.6
env: GEVENT_VERSION=0.13.8 ZOOKEEPER_VERSION=3.3.6 TOX_VENV=py26
- python: "2.6"
env: GEVENT_VERSION=0.13.8 ZOOKEEPER_VERSION=3.4.6
env: GEVENT_VERSION=0.13.8 ZOOKEEPER_VERSION=3.4.6 TOX_VENV=py26
- python: "2.6"
env: GEVENT_VERSION=1.0.1 ZOOKEEPER_VERSION=3.3.6
env: GEVENT_VERSION=1.0.1 ZOOKEEPER_VERSION=3.3.6 TOX_VENV=py26
- python: "2.6"
env: GEVENT_VERSION=1.0.1 ZOOKEEPER_VERSION=3.4.6
env: GEVENT_VERSION=1.0.1 ZOOKEEPER_VERSION=3.4.6 TOX_VENV=py26
- python: "2.7"
env: GEVENT_VERSION=0.13.8 ZOOKEEPER_VERSION=3.3.6
env: GEVENT_VERSION=0.13.8 ZOOKEEPER_VERSION=3.3.6 TOX_VENV=py27
- python: "2.7"
env: GEVENT_VERSION=0.13.8 ZOOKEEPER_VERSION=3.4.6
env: GEVENT_VERSION=0.13.8 ZOOKEEPER_VERSION=3.4.6 TOX_VENV=py27
- python: "2.7"
env: GEVENT_VERSION=1.0.1 ZOOKEEPER_VERSION=3.3.6
env: GEVENT_VERSION=1.0.1 ZOOKEEPER_VERSION=3.3.6 TOX_VENV=py27
- python: "2.7"
env: GEVENT_VERSION=1.0.1 ZOOKEEPER_VERSION=3.4.6
env: GEVENT_VERSION=1.0.1 ZOOKEEPER_VERSION=3.4.6 TOX_VENV=py27
- python: "2.7"
env: GEVENT_VERSION=1.0.1 ZOOKEEPER_VERSION=3.5.0-alpha
env: GEVENT_VERSION=1.0.1 ZOOKEEPER_VERSION=3.5.0-alpha TOX_VENV=py27
- python: "3.3"
env: ZOOKEEPER_VERSION=3.3.6
env: ZOOKEEPER_VERSION=3.3.6 TOX_VENV=py33
- python: "3.3"
env: ZOOKEEPER_VERSION=3.4.6
env: ZOOKEEPER_VERSION=3.4.6 TOX_VENV=py33
- python: "3.4"
env: ZOOKEEPER_VERSION=3.3.6
env: ZOOKEEPER_VERSION=3.3.6 TOX_VENV=py34
- python: "3.4"
env: ZOOKEEPER_VERSION=3.4.6
env: ZOOKEEPER_VERSION=3.4.6 TOX_VENV=py34
- python: "pypy"
env: ZOOKEEPER_VERSION=3.3.6
env: ZOOKEEPER_VERSION=3.3.6 TOX_VENV=pypy
- python: "pypy"
env: ZOOKEEPER_VERSION=3.4.6
env: ZOOKEEPER_VERSION=3.4.6 TOX_VENV=pypy
notifications:
email: false
@@ -43,8 +43,7 @@ before_install:
- sudo apt-get install libevent-dev
install:
- make
- make zookeeper
- pip install tox
script:
- make test

View File

@@ -1,11 +1,10 @@
HERE = $(shell pwd)
BIN = $(HERE)/bin
PYTHON = $(BIN)/python
PIP_DOWNLOAD_CACHE ?= $(HERE)/.pip_cache
INSTALL = $(BIN)/pip install
INSTALL += --download-cache $(PIP_DOWNLOAD_CACHE)
TOX_VENV ?= py27
BUILD_DIRS = bin build include lib lib64 man share
GEVENT_VERSION ?= 1.0.1
@@ -14,19 +13,15 @@ PYPY = $(shell $(PYTHON_EXE) -c "import sys; print(getattr(sys, 'pypy_version_in
TRAVIS ?= false
TRAVIS_PYTHON_VERSION ?= $(shell $(PYTHON_EXE) -c "import sys; print('.'.join([str(s) for s in sys.version_info][:2]))")
ZOOKEEPER = $(BIN)/zookeeper
ZOOKEEPER_VERSION ?= 3.4.6
ZOOKEEPER_PATH ?= $(ZOOKEEPER)
GEVENT_SUPPORTED = yes
GREENLET_SUPPORTED = yes
ifeq ($(findstring 3.,$(TRAVIS_PYTHON_VERSION)), 3.)
GEVENT_SUPPORTED = no
GREENLET_SUPPORTED = no
endif
ifeq ($(PYPY),yes)
GEVENT_SUPPORTED = no
GREENLET_SUPPORTED = no
endif
.PHONY: all build clean test zookeeper clean-zookeeper
.PHONY: all build clean test
all: build
@@ -34,7 +29,8 @@ $(PYTHON):
python sw/virtualenv.py .
build: $(PYTHON)
ifeq ($(GEVENT_SUPPORTED),yes)
ifeq ($(GREENLET_SUPPORTED),yes)
$(INSTALL) -U -r requirements_eventlet.txt
$(INSTALL) -U -r requirements_gevent.txt
$(INSTALL) -f https://github.com/surfly/gevent/releases gevent==$(GEVENT_VERSION)
endif
@@ -49,23 +45,8 @@ clean:
rm -rf $(BUILD_DIRS)
test:
ZOOKEEPER_PATH=$(ZOOKEEPER_PATH) NOSE_LOGFORMAT='%(thread)d:%(filename)s: %(levelname)s: %(message)s' \
$(BIN)/nosetests -d -v --with-coverage kazoo.tests
tox -e$(TOX_VENV)
html:
cd docs && \
make html
$(ZOOKEEPER):
@echo "Installing Zookeeper"
mkdir -p $(BIN)
cd $(BIN) && \
curl -C - http://apache.osuosl.org/zookeeper/zookeeper-$(ZOOKEEPER_VERSION)/zookeeper-$(ZOOKEEPER_VERSION).tar.gz | tar -zx
mv $(BIN)/zookeeper-$(ZOOKEEPER_VERSION) $(ZOOKEEPER_PATH)
chmod a+x $(ZOOKEEPER_PATH)/bin/zkServer.sh
@echo "Finished installing Zookeeper"
zookeeper: $(ZOOKEEPER)
clean-zookeeper:
rm -rf zookeeper $(ZOOKEEPER_PATH)

32
ensure-zookeeper-env.sh Executable file
View File

@@ -0,0 +1,32 @@
#!/bin/bash
set -e
HERE=`pwd`
ZOO_BASE_DIR="$HERE/bin/"
ZOOKEEPER_VERSION=${ZOOKEEPER_VERSION:-3.4.6}
ZOOKEEPER_PATH="$ZOO_BASE_DIR/zookeeper-$ZOOKEEPER_VERSION"
ZOO_MIRROR_URL="http://apache.osuosl.org/"
function download_zookeeper(){
mkdir -p $ZOO_BASE_DIR
cd $ZOO_BASE_DIR
curl --silent -C - $ZOO_MIRROR_URL/zookeeper/zookeeper-$ZOOKEEPER_VERSION/zookeeper-$ZOOKEEPER_VERSION.tar.gz | tar -zx
chmod a+x $ZOOKEEPER_PATH/bin/zkServer.sh
}
if [ ! -d "$ZOOKEEPER_PATH" ]; then
download_zookeeper
echo "Downloaded zookeeper $ZOOKEEPER_VERSION to $ZOOKEEPER_PATH"
else
echo "Already downloaded zookeeper $ZOOKEEPER_VERSION to $ZOOKEEPER_PATH"
fi
export ZOOKEEPER_PATH
cd $HERE
# Yield execution to venv command
$*

View File

@@ -1,3 +1,4 @@
coverage==3.7.1
mock==1.0.1
nose==1.3.3
flake8==2.3.0

View File

@@ -20,6 +20,7 @@ tests_require = install_requires + [
'coverage',
'mock',
'nose',
'flake8',
]
if not (PYTHON3 or PYPY):

34
tox.ini Normal file
View File

@@ -0,0 +1,34 @@
[tox]
minversion = 1.6
skipsdist = True
envlist = pep8,
py26,
py27,
py33,
py34,
pypy
[testenv:pep8]
commands = flake8 {posargs}
[testenv]
usedevelop = True
install_command = pip install {opts} {packages}
setenv = VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/requirements_sphinx.txt
commands = {toxinidir}/ensure-zookeeper-env.sh nosetests {posargs: -d -v --with-coverage kazoo.tests}
[testenv:py27]
deps = {[testenv]deps}
-r{toxinidir}/requirements_gevent.txt
-r{toxinidir}/requirements_eventlet.txt
[testenv:py26]
deps = {[testenv]deps}
-r{toxinidir}/requirements_gevent.txt
-r{toxinidir}/requirements_eventlet.txt
[flake8]
builtins = _
exclude = .venv,.tox,dist,doc,*egg,.git,build,tools