Merge "Add support for venv-based test run with tox."

This commit is contained in:
Jenkins 2012-03-09 03:13:20 +00:00 committed by Gerrit Code Review
commit e90354dec3
11 changed files with 98 additions and 5 deletions

View File

@ -1,4 +1,4 @@
#!/bin/bash
nosetests test/functional --exe $@
nosetests test/functionalnosetests --exe $@
nosetests test/functional $@
nosetests test/functionalnosetests $@

1
.gitignore vendored
View File

@ -6,3 +6,4 @@ ChangeLog
.coverage
swift.egg-info
.DS_Store
.tox

View File

@ -1,3 +1,3 @@
#!/bin/bash
nosetests test/probe --exe
nosetests test/probe

View File

@ -1,4 +1,4 @@
#!/bin/bash
nosetests test/unit --exe --with-coverage --cover-package swift --cover-erase $@
nosetests test/unit --with-coverage --cover-package swift --cover-erase $@
rm -f .coverage

View File

@ -12,6 +12,32 @@ here: http://www.python.org/dev/peps/pep-0008/
There is a useful pep8 command line tool for checking files for pep8
compliance which can be installed with ``easy_install pep8``.
------------------
Testing Guidelines
------------------
Swift has a comprehensive suite of tests that are run on all submitted code,
and it is recommended that developers execute the tests themselves to
catch regressions early. Developers are also expected to keep the
test suite up-to-date with any submitted code changes.
Swift's suite of unit tests can be executed in an isolated environment
with Tox: http://tox.testrun.org/
To execute the unit tests:
* Install Tox:
- `pip install tox`
* Run Tox from the root of the swift repo:
- `tox`
* Optionally, run only specific tox builds:
- `tox -e pep8,py26`
------------------------
Documentation Guidelines
------------------------

View File

@ -32,6 +32,7 @@ Installing dependencies and the core code
python-coverage python-dev python-nose python-setuptools python-simplejson
python-xattr sqlite3 xfsprogs python-webob python-eventlet
python-greenlet python-pastedeploy python-netifaces`
#. `pip install openstack.nose_plugin`
#. Install anything else you want, like screen, ssh, vim, etc.
* On Fedora, log in as root and do:
@ -41,6 +42,7 @@ Installing dependencies and the core code
#. `yum install xinetd rsync`
#. `yum install memcached`
#. `yum install python-netifaces python-nose`
#. `pip install openstack.nose_plugin`
This installs all necessary dependencies, and also creates user `swift`
and group `swift`. So, `swift:swift` ought to be used in every place where

View File

@ -21,3 +21,13 @@ input_file = locale/swift.pot
keywords = _ l_ lazy_gettext
mapping_file = babel.cfg
output_file = locale/swift.pot
[nosetests]
exe=1
verbosity=2
detailed-errors=1
with-openstack=1
openstack-red=0.05
openstack-yellow=0.025
openstack-show-elapsed=1
openstack-color=1

View File

@ -258,7 +258,7 @@ class _CappedFileLikeObject(object):
EOFError.
"""
def __init__(self, fp, max_file_size):
def __init__(self, fp, max_file_size):
self.fp = fp
self.max_file_size = max_file_size
self.amount_read = 0

8
tools/pip-requires Normal file
View File

@ -0,0 +1,8 @@
WebOb==1.0.8
configobj==4.7.1
eventlet==0.9.15
greenlet==0.3.1
netifaces==0.6
pastedeploy==1.3.3
simplejson==2.0.9
xattr==0.4

5
tools/test-requires Normal file
View File

@ -0,0 +1,5 @@
coverage
nose
nosexcover
openstack.nose_plugin
pep8==0.6.1

41
tox.ini Normal file
View File

@ -0,0 +1,41 @@
[tox]
envlist = py26,py27,pep8
[testenv]
deps =
-r{toxinidir}/tools/pip-requires
-r{toxinidir}/tools/test-requires
commands = nosetests test/unit []
[testenv:pep8]
deps = pep8==0.6.1
commands =
pep8 --repeat --show-pep8 --show-source --ignore=W602 swift tools setup.py
[testenv:cover]
commands =
coverage erase
nosetests test/unit --with-coverage --cover-html --cover-erase \
--cover-package=swift
/bin/rm -f .coverage
[testenv:hudson]
downloadcache = ~/cache/pip
[testenv:jenkins26]
basepython = python2.6
deps = file://{toxinidir}/.cache.bundle
[testenv:jenkins27]
basepython = python2.7
deps = file://{toxinidir}/.cache.bundle
[testenv:jenkinspep8]
deps = file://{toxinidir}/.cache.bundle
commands =
pep8 --repeat --show-pep8 --show-source --ignore=W602 swift tools setup.py
[testenv:jenkinscover]
deps = file://{toxinidir}/.cache.bundle
commands =
nosetests test/unit --with-xcoverage --cover-erase --cover-package=swift