summaryrefslogtreecommitdiff
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
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`.
-rw-r--r--.coveragerc38
-rw-r--r--.github/workflows/unit_tests.yaml8
-rw-r--r--pyproject.toml90
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"