diff options
author | Todd Gamblin <tgamblin@llnl.gov> | 2021-07-09 22:49:47 -0700 |
---|---|---|
committer | Todd Gamblin <tgamblin@llnl.gov> | 2021-07-09 22:49:47 -0700 |
commit | 084bafe18ca40b9dffe52e9e9b0c0bfcef194b78 (patch) | |
tree | 35102d4b546577779099fad7a3bd8eac9f24ab7f | |
parent | 775c8223c34f96f23c6ed314c085b0307b1ecd03 (diff) | |
download | spack-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`.
-rw-r--r-- | .coveragerc | 38 | ||||
-rw-r--r-- | .github/workflows/unit_tests.yaml | 8 | ||||
-rw-r--r-- | pyproject.toml | 90 |
3 files changed, 67 insertions, 69 deletions
diff --git a/.coveragerc b/.coveragerc deleted file mode 100644 index 94d38d7a2e..0000000000 --- a/.coveragerc +++ /dev/null @@ -1,38 +0,0 @@ -# -*- conf -*- -# .coveragerc to control coverage.py -[run] -parallel = True -concurrency = multiprocessing -branch = True -source = - bin - lib -omit = - lib/spack/spack/test/* - lib/spack/docs/* - lib/spack/external/* - share/spack/qa/* - -[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 - -[html] -directory = htmlcov diff --git a/.github/workflows/unit_tests.yaml b/.github/workflows/unit_tests.yaml index b454c7d935..c386975778 100644 --- a/.github/workflows/unit_tests.yaml +++ b/.github/workflows/unit_tests.yaml @@ -137,7 +137,7 @@ jobs: sudo apt-get -y install zlib1g-dev libdw-dev libiberty-dev - name: Install Python packages run: | - pip install --upgrade pip six setuptools codecov coverage + pip install --upgrade pip six setuptools codecov coverage[toml] - name: Setup git configuration run: | # Need this for the git tests to succeed. @@ -205,7 +205,7 @@ jobs: sudo apt-get -y install zlib1g-dev libdw-dev libiberty-dev - name: Install Python packages run: | - pip install --upgrade pip six setuptools codecov coverage + pip install --upgrade pip six setuptools codecov coverage[toml] - name: Setup git configuration run: | # Need this for the git tests to succeed. @@ -326,7 +326,7 @@ jobs: make -C ${KCOV_ROOT}/build && sudo make -C ${KCOV_ROOT}/build install - name: Install Python packages run: | - pip install --upgrade pip six setuptools codecov coverage clingo + pip install --upgrade pip six setuptools codecov coverage[toml] clingo - name: Setup git configuration run: | # Need this for the git tests to succeed. @@ -369,7 +369,7 @@ jobs: - name: Install Python packages run: | pip install --upgrade pip six setuptools - pip install --upgrade codecov coverage + pip install --upgrade codecov coverage[toml] pip install --upgrade flake8 isort>=4.3.5 mypy>=0.900 - name: Setup Homebrew packages run: | 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" |