From 084bafe18ca40b9dffe52e9e9b0c0bfcef194b78 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Fri, 9 Jul 2021 22:49:47 -0700 Subject: 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`. --- pyproject.toml | 90 ++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 63 insertions(+), 27 deletions(-) (limited to 'pyproject.toml') 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" -- cgit v1.2.3-70-g09d2