Merge pull request #296 from harlowja/add-tox-ini
Add tox.ini for using tox for testing
This commit is contained in:
33
.travis.yml
33
.travis.yml
@@ -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
|
||||
|
35
Makefile
35
Makefile
@@ -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
32
ensure-zookeeper-env.sh
Executable 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
|
||||
|
||||
$*
|
||||
|
@@ -1,3 +1,4 @@
|
||||
coverage==3.7.1
|
||||
mock==1.0.1
|
||||
nose==1.3.3
|
||||
flake8==2.3.0
|
||||
|
1
setup.py
1
setup.py
@@ -20,6 +20,7 @@ tests_require = install_requires + [
|
||||
'coverage',
|
||||
'mock',
|
||||
'nose',
|
||||
'flake8',
|
||||
]
|
||||
|
||||
if not (PYTHON3 or PYPY):
|
||||
|
34
tox.ini
Normal file
34
tox.ini
Normal 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
|
Reference in New Issue
Block a user