# 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 build 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