summaryrefslogtreecommitdiff
path: root/pyproject.toml
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2021-07-09 22:49:47 -0700
committerTodd Gamblin <tgamblin@llnl.gov>2021-07-09 22:49:47 -0700
commit084bafe18ca40b9dffe52e9e9b0c0bfcef194b78 (patch)
tree35102d4b546577779099fad7a3bd8eac9f24ab7f /pyproject.toml
parent775c8223c34f96f23c6ed314c085b0307b1ecd03 (diff)
downloadspack-084bafe18ca40b9dffe52e9e9b0c0bfcef194b78.tar.gz
spack-084bafe18ca40b9dffe52e9e9b0c0bfcef194b78.tar.bz2
spack-084bafe18ca40b9dffe52e9e9b0c0bfcef194b78.tar.xz
spack-084bafe18ca40b9dffe52e9e9b0c0bfcef194b78.zip
coverage: move config from `.coveragerc` to `pyproject.toml`
Getting rid of another top-level file. `coverage.py` has supported `pyproject.toml` since version 5.0, and all versions of coverage so far work with python 2.7. We just need to ensure that a version of coverage with the `toml` extra is installed in the test environment. I tested this with `coverage run`, `coverage report`, and `coverage html`.
Diffstat (limited to 'pyproject.toml')
-rw-r--r--pyproject.toml90
1 files changed, 63 insertions, 27 deletions
diff --git a/pyproject.toml b/pyproject.toml
index 74b7ec8e1e..d09e589bed 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -26,33 +26,69 @@ namespace_packages = true
ignore_errors = true
ignore_missing_imports = true
-[[tool.mypy.overrides]]
-module = 'spack.*'
-ignore_errors = false
-ignore_missing_imports = false
-
-[[tool.mypy.overrides]]
-module = 'packages.*'
-ignore_errors = false
-ignore_missing_imports = false
-
-[[tool.mypy.overrides]]
-module = 'llnl.*'
-ignore_errors = false
-ignore_missing_imports = false
-
-[[tool.mypy.overrides]]
-module = 'spack.test.packages'
-ignore_errors = true
+ [[tool.mypy.overrides]]
+ module = 'spack.*'
+ ignore_errors = false
+ ignore_missing_imports = false
+
+ [[tool.mypy.overrides]]
+ module = 'packages.*'
+ ignore_errors = false
+ ignore_missing_imports = false
+
+ [[tool.mypy.overrides]]
+ module = 'llnl.*'
+ ignore_errors = false
+ ignore_missing_imports = false
+
+ [[tool.mypy.overrides]]
+ module = 'spack.test.packages'
+ ignore_errors = true
-# ignore errors in fake import path for packages
-[[tool.mypy.overrides]]
-module = 'spack.pkg.*'
+ # ignore errors in fake import path for packages
+ [[tool.mypy.overrides]]
+ module = 'spack.pkg.*'
+ ignore_errors = true
+ ignore_missing_imports = true
+
+ # jinja has syntax in it that requires python3 and causes a parse error
+ # skip importing it
+ [[tool.mypy.overrides]]
+ module = 'jinja2'
+ follow_imports = 'skip'
+
+[tool.coverage.run]
+parallel = true
+concurrency = ["multiprocessing"]
+branch = true
+source = ["bin", "lib"]
+omit = [
+ 'lib/spack/spack/test/*',
+ 'lib/spack/docs/*',
+ 'lib/spack/external/*',
+ 'share/spack/qa/*',
+]
+
+[tool.coverage.report]
+# Regexes for lines to exclude from consideration
+exclude_lines = [
+ # Have to re-enable the standard pragma
+ 'pragma: no cover',
+
+ # Don't complain about missing debug-only code:
+ 'def __repr__',
+ 'if self\.debug',
+
+ # Don't complain if tests don't hit defensive assertion code:
+ 'raise AssertionError',
+ 'raise NotImplementedError',
+
+ # Don't complain if non-runnable code isn't run:
+ 'if 0:',
+ 'if False:',
+ 'if __name__ == .__main__.:',
+]
ignore_errors = true
-ignore_missing_imports = true
-# jinja has syntax in it that requires python3 and causes a parse error
-# skip importing it
-[[tool.mypy.overrides]]
-module = 'jinja2'
-follow_imports = 'skip'
+[tool.coverage.html]
+directory = "htmlcov"