Refactoring MON Charm to use Operator Framework
[osm/devops.git] / installers / charm / mon / tox.ini
diff --git a/installers/charm/mon/tox.ini b/installers/charm/mon/tox.ini
new file mode 100644 (file)
index 0000000..7ab02dd
--- /dev/null
@@ -0,0 +1,82 @@
+# Copyright 2020 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]
+skipsdist = True
+envlist = unit, lint
+sitepackages = False
+skip_missing_interpreters = False
+
+[testenv]
+basepython = python3
+setenv =
+  PYTHONHASHSEED=0
+  PYTHONPATH = {toxinidir}/src
+  CHARM_NAME = mon
+
+[testenv:build]
+passenv=HTTP_PROXY HTTPS_PROXY NO_PROXY
+whitelist_externals =
+  charmcraft
+  rm
+  unzip
+commands =
+  rm -rf release mon.charm
+  charmcraft build
+  unzip mon.charm -d release
+
+[testenv:unit]
+commands =
+  coverage erase
+  stestr run --slowest --test-path=./tests --top-dir=./
+  coverage combine
+  coverage html -d cover
+  coverage xml -o cover/coverage.xml
+  coverage report
+deps =
+  coverage
+  stestr
+  mock
+  ops
+  pydantic
+setenv =
+  {[testenv]setenv}
+  PYTHON=coverage run
+
+[testenv:lint]
+deps =
+  black
+  yamllint
+  flake8
+commands =
+  black --check --diff . --exclude "build/|.tox/|mod/|lib/"
+  yamllint .
+  flake8 . --max-line-length=100 --ignore="E501,W503,W504,F722" --exclude "build/ .tox/ mod/ lib/"
+
+[coverage:run]
+branch = True
+concurrency = multiprocessing
+parallel = True
+source =
+  .
+omit =  
+  .tox/*
+  tests/*