blob: e60f0b8c024e78c0284aab556bc3288d1a121426 [file] [log] [blame]
David Garcia95ba7e12021-02-03 11:10:28 +01001# Copyright 2020 Canonical Ltd.
beierlma4a37f72020-06-26 12:55:01 -04002#
David Garcia95ba7e12021-02-03 11:10:28 +01003# Licensed under the Apache License, Version 2.0 (the "License"); you may
4# not use this file except in compliance with the License. You may obtain
5# a copy of the License at
beierlma4a37f72020-06-26 12:55:01 -04006#
David Garcia95ba7e12021-02-03 11:10:28 +01007# http://www.apache.org/licenses/LICENSE-2.0
beierlma4a37f72020-06-26 12:55:01 -04008#
David Garcia95ba7e12021-02-03 11:10:28 +01009# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations
13# under the License.
14#
15# For those usages not covered by the Apache License, Version 2.0 please
16# contact: legal@canonical.com
17#
18# To get in touch with the maintainers, please contact:
19# osm-charmers@lists.launchpad.net
20##
21
beierlma4a37f72020-06-26 12:55:01 -040022[tox]
beierlma4a37f72020-06-26 12:55:01 -040023skipsdist = True
David Garcia95ba7e12021-02-03 11:10:28 +010024envlist = unit, lint
25sitepackages = False
26skip_missing_interpreters = False
beierlma4a37f72020-06-26 12:55:01 -040027
28[testenv]
David Garcia95ba7e12021-02-03 11:10:28 +010029basepython = python3.8
30setenv =
31 PYTHONHASHSEED=0
32 PYTHONPATH = {toxinidir}/src
33 CHARM_NAME = ng-ui
beierlma4a37f72020-06-26 12:55:01 -040034
David Garcia68faf8d2020-09-01 10:12:16 +020035[testenv:build]
David Garcia68faf8d2020-09-01 10:12:16 +020036passenv=HTTP_PROXY HTTPS_PROXY NO_PROXY
David Garcia95ba7e12021-02-03 11:10:28 +010037whitelist_externals =
38 charmcraft
39 rm
40 unzip
David Garcia68faf8d2020-09-01 10:12:16 +020041commands =
David Garcia95ba7e12021-02-03 11:10:28 +010042 rm -rf release ng-ui.charm
43 charmcraft build
44 unzip ng-ui.charm -d release
David Garcia68faf8d2020-09-01 10:12:16 +020045
David Garcia95ba7e12021-02-03 11:10:28 +010046[testenv:unit]
47commands =
48 coverage erase
49 stestr run --slowest --test-path=./tests --top-dir=./
50 coverage combine
51 coverage html -d cover
52 coverage xml -o cover/coverage.xml
53 coverage report
beierlma4a37f72020-06-26 12:55:01 -040054deps =
David Garcia95ba7e12021-02-03 11:10:28 +010055 coverage
56 stestr
57 mock
58 ops
59 -rrequirements.txt
60setenv =
61 {[testenv]setenv}
62 PYTHON=coverage run
63
64[testenv:lint]
65deps =
66 black
67 yamllint
68 flake8
beierlma4a37f72020-06-26 12:55:01 -040069commands =
David Garcia95ba7e12021-02-03 11:10:28 +010070 black --check --diff . --exclude "build/|.tox/|mod/|lib/|release/"
71 yamllint .
72 flake8 . --max-line-length=100 --ignore="E501,W503,W504,F722" --exclude "build/ .tox/ mod/ lib/ release/"
beierlma4a37f72020-06-26 12:55:01 -040073
David Garcia95ba7e12021-02-03 11:10:28 +010074[coverage:run]
75branch = True
76concurrency = multiprocessing
77parallel = True
78source =
79 .
80omit =
81 .tox/*
82 tests/*