Merge "Add support for venv-based test run with tox."
This commit is contained in:
11 changed files with 98 additions and 5 deletions
@@ -1,4 +1,4 @@
#!/bin/bash
nosetests test/functional --exe $@
nosetests test/functionalnosetests --exe $@
nosetests test/functional $@
nosetests test/functionalnosetests $@
1
.gitignore
vendored
1
.gitignore
vendored
@@ -6,3 +6,4 @@ ChangeLog
.coverage
swift.egg-info
.DS_Store
.tox
@@ -1,3 +1,3 @@
#!/bin/bash
nosetests test/probe --exe
nosetests test/probe
@@ -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
@@ -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
------------------------
@@ -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
10
setup.cfg
10
setup.cfg
@@ -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
@@ -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
8
tools/pip-requires
Normal 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
5
tools/test-requires
Normal file
@@ -0,0 +1,5 @@
coverage
nose
nosexcover
openstack.nose_plugin
pep8==0.6.1
41
tox.ini
Normal file
41
tox.ini
Normal 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
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.