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`. --- .coveragerc | 38 ----------------- .github/workflows/unit_tests.yaml | 8 ++-- pyproject.toml | 90 +++++++++++++++++++++++++++------------ 3 files changed, 67 insertions(+), 69 deletions(-) delete mode 100644 .coveragerc 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" -- cgit v1.2.3-70-g09d2