# content of: tox.ini , put in same dir as setup.py
[tox]
envlist = py26,py26-nolxml,py27,py27-nolxml,py32,py32-nolxml,pypy,tg11,tg15,cornice,coverage,py33,py33-nolxml,pecan-dev26,pecan-dev27,pecan-dev32,pecan-dev33,pep8

[common]
testtools=
    nose
    coverage < 3.99
    pbr
    webtest
basedeps=
    transaction
    pecan
    cloud_sptheme
    Sphinx < 1.2.99
    Flask
    flask-restful

[axes]
python=py26,py27,py32,py33,pypy
sqlalchemy=sa5,sa6,sa7*
lxml=lxml*,nolxml
json=json*,simplejson

[axis:python]
deps = 
    {[common]testtools}
    {[common]basedeps}
    suds

commands=
    {envbindir}/coverage run {envbindir}/nosetests --nologcapture --with-xunit --xunit-file nosetests-{envname}.xml wsme/tests wsmeext/tests tests/pecantest tests/test_sphinxext.py tests/test_flask.py --verbose {posargs}
    {envbindir}/coverage xml -o coverage-{envname}.xml wsme/*.py wsme/rest/*.py wsmeext/*.py
    {envbindir}/coverage report --show-missing wsme/*.py wsme/rest/*.py wsmeext/*.py

[axis:python:py26]
deps = 
    {[common]testtools}
    unittest2
    {[common]basedeps}
    suds
basepython=python2.6

[axis:python:py27]
basepython=python2.7

[axis:python:py32]
basepython=python3.2

deps = 
    {[common]testtools}
    {[common]basedeps}
    https://bitbucket.org/bernh/suds-python-3-patches/downloads/suds_patched.zip

commands=
    {envbindir}/coverage run {envbindir}/nosetests --with-xunit --xunit-file nosetests-{envname}.xml wsme/tests wsmeext/tests tests/pecantest tests/pecantest tests/test_sphinxext.py tests/test_flask.py --verbose {posargs}
    {envbindir}/coverage xml -o coverage-{envname}.xml wsme/*.py wsme/rest/*.py wsmeext/*.py
    {envbindir}/coverage report --show-missing wsme/*.py wsme/rest/*.py wsmeext/*.py

[axis:python:py33]
basepython=python3.3

deps =
    {[common]testtools}
    {[common]basedeps}
    https://bitbucket.org/bernh/suds-python-3-patches/downloads/suds_patched.zip

commands=
    {envbindir}/coverage run {envbindir}/nosetests --with-xunit --xunit-file nosetests-{envname}.xml wsme/tests wsmeext/tests tests/pecantest tests/test_sphinxext.py --verbose {posargs}
    {envbindir}/coverage xml -o coverage-{envname}.xml wsme/*.py wsme/rest/*.py wsmeext/*.py
    {envbindir}/coverage report --show-missing wsme/*.py wsme/rest/*.py wsmeext/*.py

[axis:sqlalchemy:sa5]
deps=
    SQLAlchemy<=0.5.99

constraints=
    !python:py32


[axis:sqlalchemy:sa6]
deps=
    SQLAlchemy<=0.6.99

[axis:sqlalchemy:sa7]
deps=
    SQLAlchemy<=0.7.99

[axis:json:simplejson]
deps=
    simplejson

constraints=
    !python:py32

[axis:lxml:lxml]
deps=
    lxml

[testenv]
setenv=
    COVERAGE_FILE=.coverage.{envname}

[testenv:tg11]
basepython=python2.6
deps=
    pbr
    nose
    webtest < 1.4.99
    coverage < 3.99
    simplejson
    suds
    lxml
commands=
    {envbindir}/easy_install -i http://www.turbogears.org/1.1/downloads/current/index/ 'TurboGears<1.1.99'
    {envbindir}/nosetests --nologcapture --with-xunit --xunit-file nosetests-{envname}.xml tests/test_tg1.py --verbose --with-coverage --cover-package wsme,wsmeext {posargs}
    {envbindir}/coverage xml -o coverage-{envname}.xml wsme/*.py wsme/rest/*.py wsmeext/*.py

[testenv:tg15]
basepython=python2.6
deps=
    pbr
    nose
    webtest < 1.4.99
    coverage < 3.99
    simplejson
    suds
    lxml
commands=
    {envbindir}/easy_install -i http://www.turbogears.org/1.5/downloads/current/index/ 'TurboGears<1.5.99'
    {envbindir}/nosetests --nologcapture --with-xunit --xunit-file nosetests-{envname}.xml tests/test_tg15.py --verbose --with-coverage --cover-package wsme,wsmeext {posargs}
    {envbindir}/coverage xml -o coverage-{envname}.xml wsme/*.py wsme/rest/*.py wsmeext/*.py

[testenv:tg21]
basepython=python2.6
deps=
    pbr
    nose
    coverage < 3.99
    simplejson
commands=
    {envbindir}/easy_install -i http://www.turbogears.org/2.1/downloads/current/index/ 'TurboGears2<2.1.99' webtest
    {envbindir}/coverage run {envbindir}/nosetests --with-xunit --xunit-file nosetests-{envname}.xml tests/test_tg20.py --verbose {posargs}
    {envbindir}/coverage xml -o coverage-{envname}.xml wsme/*.py wsme/rest/*.py wsmeext/*.py
    {envbindir}/coverage report --show-missing wsme/*.py wsme/rest/*.py wsmeext/*.py


[testenv:cornice]
basepython=python2.7
usedevelop=True
deps=
    pbr
    nose
    webtest
    coverage < 3.99
    cornice
commands=
    {envbindir}/nosetests tests/test_cornice.py --with-xunit --xunit-file nosetests-{envname}.xml --verbose --with-coverage --cover-package wsmeext {posargs}
    {envbindir}/coverage xml -o coverage-{envname}.xml wsme/*.py wsmeext/cornice.py

[testenv:pecan-dev-base]
deps=
    {[common]testtools}
    webtest
    transaction
    suds
    https://github.com/stackforge/pecan/zipball/master

[testenv:pecan-dev26]
basepython=python2.6
deps={[testenv:pecan-dev-base]deps}
commands=
    {envbindir}/nosetests tests/pecantest --with-xunit --xunit-file nosetests-{envname}.xml --verbose {posargs}

[testenv:pecan-dev27]
basepython=python2.7
deps={[testenv:pecan-dev-base]deps}
commands=
    {envbindir}/nosetests tests/pecantest --with-xunit --xunit-file nosetests-{envname}.xml --verbose {posargs}

[testenv:pecan-dev32]
basepython=python3.2
deps={[testenv:pecan-dev-base]deps}
commands=
    {envbindir}/nosetests tests/pecantest --with-xunit --xunit-file nosetests-{envname}.xml --verbose {posargs}

[testenv:pecan-dev33]
basepython=python3.3
deps={[testenv:pecan-dev-base]deps}
commands=
    {envbindir}/nosetests tests/pecantest --with-xunit --xunit-file nosetests-{envname}.xml --verbose {posargs}

[testenv:coverage]
basepython=python
deps=
    coverage < 3.99
setenv=
    COVERAGE_FILE=.coverage
commands=
    {envbindir}/coverage erase
    {envbindir}/coverage combine
    {envbindir}/coverage xml wsme/*.py wsme/rest/*.py wsmeext/*.py
    {envbindir}/coverage report --show-missing wsme/*.py wsme/protocols/*.py wsmeext/*.py

[testenv:doc]
deps=
    cloud_sptheme
    Sphinx < 1.2.99

changedir=
    doc

commands=
    make clean ziphtml

[testenv:pep8]
deps = flake8
commands = flake8 wsme wsmeext setup.py

# Generic environment for running commands like packaging
[testenv:venv]
commands = {posargs}
usedevelop=True
deps=
    pbr