blob: 69911728fcd0e555eb891ad90c6f4e7a6daf3dfd [file] [log] [blame]
sousaedu903379c2021-02-08 13:34:21 +01001# 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]
23skipsdist = True
24envlist = unit, lint
25sitepackages = False
26skip_missing_interpreters = False
27
28[testenv]
29basepython = python3
30setenv =
31 PYTHONHASHSEED=0
32 PYTHONPATH = {toxinidir}/src
sousaedu3884e232021-02-25 21:32:25 +010033 CHARM_NAME = mongodb-exporter
sousaedu903379c2021-02-08 13:34:21 +010034
35[testenv:build]
36passenv=HTTP_PROXY HTTPS_PROXY NO_PROXY
37whitelist_externals =
38 charmcraft
39 rm
40 unzip
41commands =
sousaedu3884e232021-02-25 21:32:25 +010042 rm -rf release mongodb-exporter.charm
sousaedu903379c2021-02-08 13:34:21 +010043 charmcraft build
sousaedu3884e232021-02-25 21:32:25 +010044 unzip mongodb-exporter.charm -d release
sousaedu903379c2021-02-08 13:34:21 +010045
46[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
54deps =
55 coverage
56 stestr
57 mock
58 ops
59setenv =
60 {[testenv]setenv}
61 PYTHON=coverage run
62
63[testenv:lint]
64deps =
65 black
66 yamllint
67 flake8
68commands =
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]
74branch = True
75concurrency = multiprocessing
76parallel = True
77source =
78 .
79omit =
80 .tox/*
81 tests/*