[tox]
-envlist = docs,pep8,pylint,py35,py27
+envlist = docs,pep8,pylint,yamllint,ansiblelint,bashate,bandit,py38,cover,perm
[testenv]
usedevelop = True
deps =
+ -c{toxinidir}/upper-constraints.txt
+ -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
- git+https://gerrit.opnfv.org/gerrit/releng#egg=opnfv&subdirectory=modules
- git+https://gerrit.opnfv.org/gerrit/snaps#egg=snaps
+install_command = pip install {opts} {packages}
commands = nosetests --with-xunit \
--with-coverage \
--cover-tests \
functest/tests/unit
[testenv:docs]
-basepython = python2.7
-commands = sphinx-build -W -b html api/ api/_build
+basepython = python3.8
+commands =
+ doc8 \
+ --ignore-path api/build \
+ --ignore-path docs/build \
+ --ignore-path docs/_build \
+ api \
+ docs
+ sphinx-build -W -b html api/ api/build
+ sphinx-build -W -n -b html docs docs/build/html
+ sphinx-build -W -n -b linkcheck docs docs/build/linkcheck
+ sphinx-build -W -b spelling -Dextensions=sphinxcontrib.spelling docs docs/build/spellcheck
[testenv:pep8]
-basepython = python2.7
+basepython = python3.8
commands = flake8
[testenv:pylint]
-basepython = python2.7
-whitelist_externals = bash
-modules =
- functest.core
- functest.opnfv_tests.sdn.odl
- functest.tests.unit.core
- functest.tests.unit.odl
- functest.tests.unit.utils.test_decorators
- functest.utils.decorators
+basepython = python3.8
commands =
- bash -c "\
- pylint -f parseable --disable=locally-disabled functest | \
- tee pylint.out | sed -ne '/Raw metrics/,//p'"
- pylint --disable=locally-disabled --reports=n {[testenv:pylint]modules}
+ pylint \
+ --ignore-imports=y --min-similarity-lines=10 \
+ --disable=locally-disabled functest
+
+[testenv:yamllint]
+basepython = python3.8
+files =
+ .travis.yml
+ docker
+ functest/ci
+ functest/opnfv_tests/openstack/rally/blacklist.yaml
+ functest/opnfv_tests/openstack/rally/rally_jobs.yaml
+ functest/opnfv_tests/openstack/tempest/custom_tests/blacklist.yaml
+ functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml
+ functest/opnfv_tests/vnf
+commands =
+ yamllint -s {[testenv:yamllint]files}
+
+[testenv:ansiblelint]
+basepython = python3.8
+commands =
+ ansible-lint -x303 ansible/site.yml
+
+[testenv:py37]
+commands = nosetests functest/tests/unit
-[testenv:py35]
+[testenv:bashate]
+basepython = python3.8
+files =
+ functest/opnfv_tests/openstack/cinder/write_data.sh
+ functest/opnfv_tests/openstack/cinder/read_data.sh
+ functest/ci/add_proxy.sh
+ functest/ci/convert_images.sh
+ functest/ci/download_images.sh
+ build.sh
+commands = bashate -e E005,E006,E042,E043 {[testenv:bashate]files}
+
+
+[testenv:bandit]
+basepython = python3.8
+commands = bandit -r functest -x tests -n 5 -ll -s B601,B602
+
+[testenv:cover]
+basepython = python3.8
dirs =
- functest/tests/unit/core
functest/tests/unit/odl
- functest/tests/unit/utils/test_decorators.py
-commands = nosetests {[testenv:py35]dirs}
+ functest/tests/unit/openstack/vping
+ functest/tests/unit/openstack/cinder
+commands = nosetests --with-coverage --cover-tests \
+ --cover-package functest.opnfv_tests.sdn.odl \
+ --cover-package functest.opnfv_tests.openstack.vping.vping_ssh \
+ --cover-package functest.opnfv_tests.openstack.cinder.cinder_test \
+ --cover-package functest.tests.unit \
+ --cover-min-percentage 100 {[testenv:cover]dirs}
+
+[testenv:perm]
+basepython = python3.8
+whitelist_externals = bash
+path=. -not -path './.tox/*' -not -path './.git/*' -not -path './docs/com/pres/reveal.js/*'
+commands =
+ bash -c "\
+ find {[testenv:perm]path} \( -type f -not -perm 644 -o -type d -not -perm 755 \) \
+ -exec ls -l \{\} + | grep '.' && exit 1 || exit 0"
+ bash -c "\
+ find {[testenv:perm]path} -exec file \{\} + | grep CRLF && exit 1 || exit 0"