summaryrefslogtreecommitdiffstats
path: root/src/cephadm/tox.ini
diff options
context:
space:
mode:
Diffstat (limited to 'src/cephadm/tox.ini')
-rw-r--r--src/cephadm/tox.ini77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/cephadm/tox.ini b/src/cephadm/tox.ini
new file mode 100644
index 000000000..2cbfca70f
--- /dev/null
+++ b/src/cephadm/tox.ini
@@ -0,0 +1,77 @@
+[tox]
+envlist =
+ py3
+ mypy
+ fix
+ flake8
+skipsdist = true
+
+[flake8]
+max-line-length = 100
+inline-quotes = '
+ignore =
+ E501, \
+ W503,
+exclude =
+ .tox, \
+ .vagrant, \
+ __pycache__, \
+ *.pyc, \
+ templates, \
+ .eggs
+statistics = True
+
+[autopep8]
+addopts =
+ --max-line-length {[flake8]max-line-length} \
+ --ignore "{[flake8]ignore}" \
+ --exclude "{[flake8]exclude}" \
+ --in-place \
+ --recursive \
+ --ignore-local-config
+
+[testenv]
+skip_install=true
+deps =
+ pyfakefs == 4.5.6 ; python_version < "3.7"
+ pyfakefs >= 5, < 6 ; python_version >= "3.7"
+ mock
+ pytest
+commands=pytest {posargs}
+
+[testenv:mypy]
+basepython = python3
+deps =
+ mypy
+ -c{toxinidir}/../mypy-constrains.txt
+commands = mypy --config-file ../mypy.ini {posargs:cephadm.py}
+
+[testenv:fix]
+basepython = python3
+deps =
+ autopep8
+commands =
+ python --version
+ autopep8 {[autopep8]addopts} {posargs: cephadm.py}
+
+[testenv:flake8]
+basepython = python3
+allowlist_externals = bash
+deps =
+ flake8 == 5.0.4
+ flake8-quotes
+commands =
+ flake8 --config=tox.ini {posargs:cephadm.py}
+ bash -c "test $(grep -c 'docker.io' cephadm.py) == 11"
+# Downstream distributions may choose to alter this "docker.io" number,
+# to make sure no new references to docker.io are creeping in unnoticed.
+
+# coverage env is intentionally left out of the envlist. It is here for developers
+# to run locally to generate and review test coverage of cephadm.
+[testenv:coverage]
+skip_install=true
+deps =
+ {[testenv]deps}
+ pytest-cov
+commands =
+ pytest -v --cov=cephadm --cov-report=term-missing --cov-report=html {posargs}