# content of: tox.ini , put in same dir as setup.py
[tox]
envlist = py27,py27-nolxml,pypy,tg11,tg15,cornice,cornice-py3,coverage,py35,py35-nolxml,pecan-dev27,pecan-dev35,pep8

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

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

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

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:py27]
basepython=python2.7

[axis:python:py35]
basepython=python3.5

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

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

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

[axis:json:simplejson]
deps=
    simplejson

[axis:lxml:lxml]
deps=
    lxml

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

[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:cornice-py3]
basepython = python3.5
usedevelop = {[testenv:cornice]usedevelop}
deps = {[testenv:cornice]deps}
# disable hash randomization
setenv =
        PYTHONHASHSEED=0
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}
    transaction
    suds-jurko
    https://github.com/stackforge/pecan/zipball/master

[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-dev35]
basepython=python3.5
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
    oslo.config
    oslotest