summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty Taylor <mordred@inaugust.com>2012-12-27 15:26:50 -0800
committerMonty Taylor <mordred@inaugust.com>2013-01-18 16:13:27 -0500
commitbfeffb63667b796999997acf43be395d31b6a184 (patch)
tree03a4d4ea649f4a0c8373830d06023ea5a3dfa660
parent1aa712eaf224efcb575dd76c546adce810b1b2f4 (diff)
downloadpython-swiftclient-bfeffb63667b796999997acf43be395d31b6a184.tar.gz
Use testr instead of nose.
nose is invasive and can sometimes alter the outcome of a test run. testr, on the other hand, keeps a distinction between running tests and displaying results of the test runs. Additionally, it supports the stock python unittest protocol. Even better, testr supports parallel test running, which makes things faster, and a command "testr run --failing" which will just re-run the latest failing tests (often something one wants to do in iterative dev) Part of blueprint grizzly-testtools Change-Id: I0b3f1bcb5d4ff59c65eb3219b30a9e64f54d70bd
-rw-r--r--.gitignore2
-rw-r--r--.testr.conf4
-rwxr-xr-x.unittests7
-rw-r--r--setup.cfg9
-rw-r--r--setup.py1
-rw-r--r--tools/test-requires8
-rw-r--r--tox.ini29
7 files changed, 19 insertions, 41 deletions
diff --git a/.gitignore b/.gitignore
index 667aaf9..63282cc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,8 @@ dist/
*.py[co]
.DS_Store
*.log
+.testrepository
+subunit.log
build
swiftclient/versioninfo
.autogenerated
diff --git a/.testr.conf b/.testr.conf
new file mode 100644
index 0000000..081907d
--- /dev/null
+++ b/.testr.conf
@@ -0,0 +1,4 @@
+[DEFAULT]
+test_command=${PYTHON:-python} -m subunit.run discover -t ./ ./tests $LISTOPT $IDOPTION
+test_id_option=--load-list $IDFILE
+test_list_option=--list
diff --git a/.unittests b/.unittests
index b977da4..4758296 100755
--- a/.unittests
+++ b/.unittests
@@ -1,7 +1,8 @@
#!/bin/bash
set -e
-nosetests --exe --with-coverage --cover-package swiftclient --cover-erase $@
-rvalue=$?
+python setup.py testr --coverage
+RET=$?
+coverage report
rm -f .coverage
-exit $rvalue
+exit $RET
diff --git a/setup.cfg b/setup.cfg
index ca5fb62..11c7201 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,12 +1,3 @@
-[nosetests]
-cover-package = swiftclient
-cover-html = true
-cover-erase = true
-cover-inclusive = true
-verbosity=2
-detailed-errors=1
-where = tests
-
[build_sphinx]
source-dir = doc/source
build-dir = doc/build
diff --git a/setup.py b/setup.py
index 9de50ab..beb6c23 100644
--- a/setup.py
+++ b/setup.py
@@ -54,7 +54,6 @@ setuptools.setup(
'Programming Language :: Python :: 2.6',
'Environment :: No Input/Output (Daemon)',
],
- test_suite='nose.collector',
scripts=[
'bin/swift',
],
diff --git a/tools/test-requires b/tools/test-requires
index eaaf9eb..ea2ca29 100644
--- a/tools/test-requires
+++ b/tools/test-requires
@@ -1,12 +1,10 @@
distribute>=0.6.24
+coverage
+discover
eventlet
-nose
-nose-exclude
-nosehtmloutput
-nosexcover
-openstack.nose_plugin
pep8==1.3
python-keystoneclient
sphinx>=1.1.2
+testrepository>=0.0.13
testtools>=0.9.22
diff --git a/tox.ini b/tox.ini
index 4641141..d1eb896 100644
--- a/tox.ini
+++ b/tox.ini
@@ -3,14 +3,13 @@ envlist = py26,py27,pep8
[testenv]
setenv = VIRTUAL_ENV={envdir}
- NOSE_WITH_OPENSTACK=1
- NOSE_OPENSTACK_COLOR=1
- NOSE_OPENSTACK_RED=0.05
- NOSE_OPENSTACK_YELLOW=0.025
- NOSE_OPENSTACK_SHOW_ELAPSED=1
+ LANG=en_US.UTF-8
+ LANGUAGE=en_US:en
+ LC_ALL=C
+
deps = -r{toxinidir}/tools/pip-requires
-r{toxinidir}/tools/test-requires
-commands = nosetests
+commands = python setup.py testr --testr-args="{posargs}"
[testenv:pep8]
deps = pep8
@@ -20,23 +19,7 @@ commands = pep8 --repeat --show-source --exclude=openstack swiftclient setup.py
commands = {posargs}
[testenv:cover]
-commands = nosetests --cover-erase --cover-package=swiftclient --with-xcoverage
+commands = python setup.py testr --coverage
[tox:jenkins]
downloadcache = ~/cache/pip
-
-[testenv:jenkins26]
-basepython = python2.6
-setenv = NOSE_WITH_XUNIT=1
-
-[testenv:jenkins27]
-basepython = python2.7
-setenv = NOSE_WITH_XUNIT=1
-
-[testenv:jenkinscover]
-setenv = NOSE_WITH_XUNIT=1
-commands = nosetests --cover-erase --cover-package=swiftclient --with-xcoverage
-
-[testenv:jenkinsvenv]
-setenv = NOSE_WITH_XUNIT=1
-commands = {posargs}