781f74ee34cad376635c2324c260fca7460e1cf6
[osm/devops.git] / installers / charm / keystone / tox.ini
1 # Copyright 2020 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.8
30 setenv =
31 PYTHONHASHSEED=0
32 PYTHONPATH = {toxinidir}/src
33 CHARM_NAME = keystone
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 keystone.charm
43 charmcraft build
44 unzip keystone.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 -rrequirements.txt
60 setenv =
61 {[testenv]setenv}
62 PYTHON=coverage run
63
64 [testenv:lint]
65 deps =
66 black
67 yamllint
68 flake8
69 commands =
70 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/"
73
74 [coverage:run]
75 branch = True
76 concurrency = multiprocessing
77 parallel = True
78 source =
79 .
80 omit =
81 .tox/*
82 tests/*