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"
|
- python: "2.7"
|
||||||
include:
|
include:
|
||||||
- python: "2.6"
|
- 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"
|
- 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"
|
- 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"
|
- 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"
|
- 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"
|
- 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"
|
- 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"
|
- 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"
|
- 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"
|
- python: "3.3"
|
||||||
env: ZOOKEEPER_VERSION=3.3.6
|
env: ZOOKEEPER_VERSION=3.3.6 TOX_VENV=py33
|
||||||
- python: "3.3"
|
- python: "3.3"
|
||||||
env: ZOOKEEPER_VERSION=3.4.6
|
env: ZOOKEEPER_VERSION=3.4.6 TOX_VENV=py33
|
||||||
- python: "3.4"
|
- python: "3.4"
|
||||||
env: ZOOKEEPER_VERSION=3.3.6
|
env: ZOOKEEPER_VERSION=3.3.6 TOX_VENV=py34
|
||||||
- python: "3.4"
|
- python: "3.4"
|
||||||
env: ZOOKEEPER_VERSION=3.4.6
|
env: ZOOKEEPER_VERSION=3.4.6 TOX_VENV=py34
|
||||||
- python: "pypy"
|
- python: "pypy"
|
||||||
env: ZOOKEEPER_VERSION=3.3.6
|
env: ZOOKEEPER_VERSION=3.3.6 TOX_VENV=pypy
|
||||||
- python: "pypy"
|
- python: "pypy"
|
||||||
env: ZOOKEEPER_VERSION=3.4.6
|
env: ZOOKEEPER_VERSION=3.4.6 TOX_VENV=pypy
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
email: false
|
email: false
|
||||||
@@ -43,8 +43,7 @@ before_install:
|
|||||||
- sudo apt-get install libevent-dev
|
- sudo apt-get install libevent-dev
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- make
|
- pip install tox
|
||||||
- make zookeeper
|
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- make test
|
- make test
|
||||||
|
35
Makefile
35
Makefile
@@ -1,11 +1,10 @@
|
|||||||
HERE = $(shell pwd)
|
HERE = $(shell pwd)
|
||||||
BIN = $(HERE)/bin
|
BIN = $(HERE)/bin
|
||||||
PYTHON = $(BIN)/python
|
PYTHON = $(BIN)/python
|
||||||
|
|
||||||
PIP_DOWNLOAD_CACHE ?= $(HERE)/.pip_cache
|
PIP_DOWNLOAD_CACHE ?= $(HERE)/.pip_cache
|
||||||
INSTALL = $(BIN)/pip install
|
INSTALL = $(BIN)/pip install
|
||||||
INSTALL += --download-cache $(PIP_DOWNLOAD_CACHE)
|
INSTALL += --download-cache $(PIP_DOWNLOAD_CACHE)
|
||||||
|
TOX_VENV ?= py27
|
||||||
BUILD_DIRS = bin build include lib lib64 man share
|
BUILD_DIRS = bin build include lib lib64 man share
|
||||||
|
|
||||||
GEVENT_VERSION ?= 1.0.1
|
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 ?= false
|
||||||
TRAVIS_PYTHON_VERSION ?= $(shell $(PYTHON_EXE) -c "import sys; print('.'.join([str(s) for s in sys.version_info][:2]))")
|
TRAVIS_PYTHON_VERSION ?= $(shell $(PYTHON_EXE) -c "import sys; print('.'.join([str(s) for s in sys.version_info][:2]))")
|
||||||
|
|
||||||
ZOOKEEPER = $(BIN)/zookeeper
|
GREENLET_SUPPORTED = yes
|
||||||
ZOOKEEPER_VERSION ?= 3.4.6
|
|
||||||
ZOOKEEPER_PATH ?= $(ZOOKEEPER)
|
|
||||||
|
|
||||||
GEVENT_SUPPORTED = yes
|
|
||||||
ifeq ($(findstring 3.,$(TRAVIS_PYTHON_VERSION)), 3.)
|
ifeq ($(findstring 3.,$(TRAVIS_PYTHON_VERSION)), 3.)
|
||||||
GEVENT_SUPPORTED = no
|
GREENLET_SUPPORTED = no
|
||||||
endif
|
endif
|
||||||
ifeq ($(PYPY),yes)
|
ifeq ($(PYPY),yes)
|
||||||
GEVENT_SUPPORTED = no
|
GREENLET_SUPPORTED = no
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: all build clean test zookeeper clean-zookeeper
|
.PHONY: all build clean test
|
||||||
|
|
||||||
all: build
|
all: build
|
||||||
|
|
||||||
@@ -34,7 +29,8 @@ $(PYTHON):
|
|||||||
python sw/virtualenv.py .
|
python sw/virtualenv.py .
|
||||||
|
|
||||||
build: $(PYTHON)
|
build: $(PYTHON)
|
||||||
ifeq ($(GEVENT_SUPPORTED),yes)
|
ifeq ($(GREENLET_SUPPORTED),yes)
|
||||||
|
$(INSTALL) -U -r requirements_eventlet.txt
|
||||||
$(INSTALL) -U -r requirements_gevent.txt
|
$(INSTALL) -U -r requirements_gevent.txt
|
||||||
$(INSTALL) -f https://github.com/surfly/gevent/releases gevent==$(GEVENT_VERSION)
|
$(INSTALL) -f https://github.com/surfly/gevent/releases gevent==$(GEVENT_VERSION)
|
||||||
endif
|
endif
|
||||||
@@ -49,23 +45,8 @@ clean:
|
|||||||
rm -rf $(BUILD_DIRS)
|
rm -rf $(BUILD_DIRS)
|
||||||
|
|
||||||
test:
|
test:
|
||||||
ZOOKEEPER_PATH=$(ZOOKEEPER_PATH) NOSE_LOGFORMAT='%(thread)d:%(filename)s: %(levelname)s: %(message)s' \
|
tox -e$(TOX_VENV)
|
||||||
$(BIN)/nosetests -d -v --with-coverage kazoo.tests
|
|
||||||
|
|
||||||
html:
|
html:
|
||||||
cd docs && \
|
cd docs && \
|
||||||
make html
|
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
|
coverage==3.7.1
|
||||||
mock==1.0.1
|
mock==1.0.1
|
||||||
nose==1.3.3
|
nose==1.3.3
|
||||||
|
flake8==2.3.0
|
||||||
|
1
setup.py
1
setup.py
@@ -20,6 +20,7 @@ tests_require = install_requires + [
|
|||||||
'coverage',
|
'coverage',
|
||||||
'mock',
|
'mock',
|
||||||
'nose',
|
'nose',
|
||||||
|
'flake8',
|
||||||
]
|
]
|
||||||
|
|
||||||
if not (PYTHON3 or PYPY):
|
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