| # Copyright 2021 Canonical Ltd. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may |
| # not use this file except in compliance with the License. You may obtain |
| # a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations |
| # under the License. |
| # |
| # For those usages not covered by the Apache License, Version 2.0 please |
| # contact: legal@canonical.com |
| # |
| # To get in touch with the maintainers, please contact: |
| # osm-charmers@lists.launchpad.net |
| ## |
| ####################################################################################### |
| |
| [tox] |
| envlist = black, cover, flake8, pylint, yamllint, safety |
| skipsdist = true |
| |
| [tox:jenkins] |
| toxworkdir = /tmp/.tox |
| |
| [testenv] |
| basepython = python3.8 |
| setenv = VIRTUAL_ENV={envdir} |
| PYTHONDONTWRITEBYTECODE = 1 |
| deps = -r{toxinidir}/requirements.txt |
| |
| |
| ####################################################################################### |
| [testenv:black] |
| deps = black |
| commands = |
| black --check --diff src/ tests/ |
| |
| |
| ####################################################################################### |
| [testenv:cover] |
| deps = {[testenv]deps} |
| -r{toxinidir}/requirements-test.txt |
| coverage |
| nose2 |
| commands = |
| sh -c 'rm -f nosetests.xml' |
| coverage erase |
| nose2 -C --coverage src |
| coverage report --omit='*tests*' |
| coverage html -d ./cover --omit='*tests*' |
| coverage xml -o coverage.xml --omit=*tests* |
| whitelist_externals = sh |
| |
| |
| ####################################################################################### |
| [testenv:flake8] |
| deps = flake8 |
| flake8-import-order |
| commands = |
| flake8 src/ tests/ |
| |
| |
| ####################################################################################### |
| [testenv:pylint] |
| deps = {[testenv]deps} |
| -r{toxinidir}/requirements-test.txt |
| pylint==2.10.2 |
| commands = |
| pylint -E src/ tests/ |
| |
| |
| ####################################################################################### |
| [testenv:safety] |
| setenv = |
| LC_ALL=C.UTF-8 |
| LANG=C.UTF-8 |
| deps = {[testenv]deps} |
| safety |
| commands = |
| - safety check --full-report |
| |
| |
| ####################################################################################### |
| [testenv:yamllint] |
| deps = {[testenv]deps} |
| -r{toxinidir}/requirements-test.txt |
| yamllint |
| commands = yamllint . |
| |
| ####################################################################################### |
| [testenv:build] |
| passenv=HTTP_PROXY HTTPS_PROXY NO_PROXY |
| whitelist_externals = |
| charmcraft |
| sh |
| commands = |
| charmcraft pack |
| sh -c 'ubuntu_version=20.04; \ |
| architectures="amd64-aarch64-arm64"; \ |
| charm_name=`cat metadata.yaml | grep -E "^name: " | cut -f 2 -d " "`; \ |
| mv $charm_name"_ubuntu-"$ubuntu_version-$architectures.charm $charm_name.charm' |
| |
| ####################################################################################### |
| [flake8] |
| ignore = |
| W291, |
| W293, |
| W503, |
| E123, |
| E125, |
| E226, |
| E241, |
| exclude = |
| .git, |
| __pycache__, |
| .tox, |
| max-line-length = 120 |
| show-source = True |
| builtins = _ |
| max-complexity = 10 |
| import-order-style = google |