blob: e55d322ef350444d4fc75083602c4dd07b544055 [file] [log] [blame]
[tox]
envlist = py{2.7,pypy,pypy3,3.4,3.5,3.6},checks,lint,pylint,integration,coverage
[testenv]
passenv = TRAVIS TRAVIS_JOB_ID TRAVIS_BRANCH
deps =
-r{toxinidir}/requirements-tests.txt
lockfile
libvirt-python
py2.7: paramiko
commands = cp libcloud/test/secrets.py-dist libcloud/test/secrets.py
python setup.py test
basepython =
{py2.7,checks,lint,pylint,coverage}: python2.7
docs: python3.5
pypypy: pypy
pypypy3: pypy3
py3.4: python3.4
py3.5: python3.5
py3.6: python3.6
whitelist_externals = cp
bash
scripts/*.sh
[testenv:pypypy3]
commands = cp libcloud/test/secrets.py-dist libcloud/test/secrets.py
python -m unittest discover libcloud/test
[testenv:docs]
deps = pysphere
backports.ssl_match_hostname
lockfile
rstcheck
changedir = docs
commands = pip install sphinx~=1.6.0
rstcheck --report warning ../CHANGES.rst
python ../contrib/generate_provider_feature_matrix_table.py
sphinx-apidoc -d 4 ../libcloud/ -o apidocs/
/bin/bash -c "ls apidocs/modules.rst && (grep orphan apidocs/modules.rst || sed -i '1i :orphan:\n' apidocs/modules.rst) || (exit 0)"
sphinx-build -W -b html -d {envtmpdir}/doctrees . _build/html
[testenv:docs-travis]
# Note: We don't build API docs on Travis since it causes build failures because
# those API docs files are not included anywhere.
deps = pysphere
backports.ssl_match_hostname
lockfile
rstcheck
changedir = docs
commands = pip install sphinx~=1.6.0
rstcheck --report warning ../CHANGES.rst
python ../contrib/generate_provider_feature_matrix_table.py
/bin/bash -c "ls apidocs/modules.rst && (grep orphan apidocs/modules.rst || sed -i '1i :orphan:\n' apidocs/modules.rst) || (exit 0)"
sphinx-build -W -b html -d {envtmpdir}/doctrees . _build/html
[testenv:scrape-ec2-prices]
deps = requests
demjson
commands = python contrib/scrape-ec2-prices.py
[testenv:pylint]
deps = -r{toxinidir}/requirements-tests.txt
backports.ssl_match_hostname
bottle
lockfile
commands = pylint -E --rcfile=./.pylintrc libcloud/common/
pylint -E --rcfile=./.pylintrc libcloud/container/
pylint -E --rcfile=./.pylintrc libcloud/backup/
pylint -E --rcfile=./.pylintrc libcloud/dns/
pylint -E --rcfile=./.pylintrc libcloud/storage/
pylint -E --rcfile=./.pylintrc libcloud/utils/
pylint -E --rcfile=./.pylintrc demos/
pylint -E --rcfile=./.pylintrc contrib/
[testenv:lint]
deps = -r{toxinidir}/requirements-tests.txt
backports.ssl_match_hostname
lockfile
commands = flake8 --ignore=E402 --exclude="test" libcloud/
flake8 --ignore=E402 --max-line-length=160 libcloud/test/
flake8 --ignore=E402 demos/
flake8 --ignore=E402 integration/
flake8 --ignore=E402,E902 docs/examples/
flake8 --ignore=E402,E902 --max-line-length=160 contrib/
python -mjson.tool libcloud/data/pricing.json /dev/null
[testenv:checks]
commands = bash ./scripts/check_file_names.sh
[testenv:integration]
deps = -r{toxinidir}/integration/requirements.txt
commands = python -m integration
[testenv:coverage]
deps =
-r{toxinidir}/requirements-tests.txt
libvirt-python
lockfile
set-env =
commands = cp libcloud/test/secrets.py-dist libcloud/test/secrets.py
coverage run --source=libcloud setup.py test
[testenv:coverage-travis]
passenv = TOXENV CI TRAVIS TRAVIS_*
deps =
-r{toxinidir}/requirements-tests.txt
libvirt-python
lockfile
set-env =
commands = cp libcloud/test/secrets.py-dist libcloud/test/secrets.py
coverage run --source=libcloud setup.py test
codecov