69911728fcd0e555eb891ad90c6f4e7a6daf3dfd
[osm/devops.git] / installers / charm / mongodb-exporter / tox.ini
1 # Copyright 2021 Canonical Ltd.
2 #
3 # 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
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # 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
22 [tox]
23 skipsdist = True
24 envlist = unit, lint
25 sitepackages = False
26 skip_missing_interpreters = False
27
28 [testenv]
29 basepython = python3
30 setenv =
31 PYTHONHASHSEED=0
32 PYTHONPATH = {toxinidir}/src
33 CHARM_NAME = mongodb-exporter
34
35 [testenv:build]
36 passenv=HTTP_PROXY HTTPS_PROXY NO_PROXY
37 whitelist_externals =
38 charmcraft
39 rm
40 unzip
41 commands =
42 rm -rf release mongodb-exporter.charm
43 charmcraft build
44 unzip mongodb-exporter.charm -d release
45
46 [testenv:unit]
47 commands =
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
54 deps =
55 coverage
56 stestr
57 mock
58 ops
59 setenv =
60 {[testenv]setenv}
61 PYTHON=coverage run
62
63 [testenv:lint]
64 deps =
65 black
66 yamllint
67 flake8
68 commands =
69 black --check --diff . --exclude "build/|.tox/|mod/|lib/"
70 yamllint .
71 flake8 . --max-line-length=100 --ignore="E501,W503,W504,F722" --exclude "build/ .tox/ mod/ lib/"
72
73 [coverage:run]
74 branch = True
75 concurrency = multiprocessing
76 parallel = True
77 source =
78 .
79 omit =
80 .tox/*
81 tests/*