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`.
This commit is contained in:
		
							
								
								
									
										38
									
								
								.coveragerc
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								.coveragerc
									
									
									
									
									
								
							| @@ -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 |  | ||||||
							
								
								
									
										8
									
								
								.github/workflows/unit_tests.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/unit_tests.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -137,7 +137,7 @@ jobs: | |||||||
|           sudo apt-get -y install zlib1g-dev libdw-dev libiberty-dev |           sudo apt-get -y install zlib1g-dev libdw-dev libiberty-dev | ||||||
|     - name: Install Python packages |     - name: Install Python packages | ||||||
|       run: | |       run: | | ||||||
|           pip install --upgrade pip six setuptools codecov coverage |           pip install --upgrade pip six setuptools codecov coverage[toml] | ||||||
|     - name: Setup git configuration |     - name: Setup git configuration | ||||||
|       run: | |       run: | | ||||||
|           # Need this for the git tests to succeed. |           # Need this for the git tests to succeed. | ||||||
| @@ -205,7 +205,7 @@ jobs: | |||||||
|           sudo apt-get -y install zlib1g-dev libdw-dev libiberty-dev |           sudo apt-get -y install zlib1g-dev libdw-dev libiberty-dev | ||||||
|     - name: Install Python packages |     - name: Install Python packages | ||||||
|       run: | |       run: | | ||||||
|           pip install --upgrade pip six setuptools codecov coverage |           pip install --upgrade pip six setuptools codecov coverage[toml] | ||||||
|     - name: Setup git configuration |     - name: Setup git configuration | ||||||
|       run: | |       run: | | ||||||
|           # Need this for the git tests to succeed. |           # 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 |           make -C ${KCOV_ROOT}/build && sudo  make -C ${KCOV_ROOT}/build install | ||||||
|     - name: Install Python packages |     - name: Install Python packages | ||||||
|       run: | |       run: | | ||||||
|           pip install --upgrade pip six setuptools codecov coverage clingo |           pip install --upgrade pip six setuptools codecov coverage[toml] clingo | ||||||
|     - name: Setup git configuration |     - name: Setup git configuration | ||||||
|       run: | |       run: | | ||||||
|           # Need this for the git tests to succeed. |           # Need this for the git tests to succeed. | ||||||
| @@ -369,7 +369,7 @@ jobs: | |||||||
|     - name: Install Python packages |     - name: Install Python packages | ||||||
|       run: | |       run: | | ||||||
|           pip install --upgrade pip six setuptools |           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 |           pip install --upgrade flake8 isort>=4.3.5 mypy>=0.900 | ||||||
|     - name: Setup Homebrew packages |     - name: Setup Homebrew packages | ||||||
|       run: | |       run: | | ||||||
|   | |||||||
| @@ -26,33 +26,69 @@ namespace_packages = true | |||||||
| ignore_errors = true | ignore_errors = true | ||||||
| ignore_missing_imports = true | ignore_missing_imports = true | ||||||
|  |  | ||||||
| [[tool.mypy.overrides]] |   [[tool.mypy.overrides]] | ||||||
| module = 'spack.*' |   module = 'spack.*' | ||||||
| ignore_errors = false |   ignore_errors = false | ||||||
| ignore_missing_imports = false |   ignore_missing_imports = false | ||||||
|  |  | ||||||
| [[tool.mypy.overrides]] |   [[tool.mypy.overrides]] | ||||||
| module = 'packages.*' |   module = 'packages.*' | ||||||
| ignore_errors = false |   ignore_errors = false | ||||||
| ignore_missing_imports = false |   ignore_missing_imports = false | ||||||
|  |  | ||||||
| [[tool.mypy.overrides]] |   [[tool.mypy.overrides]] | ||||||
| module = 'llnl.*' |   module = 'llnl.*' | ||||||
| ignore_errors = false |   ignore_errors = false | ||||||
| ignore_missing_imports = false |   ignore_missing_imports = false | ||||||
|  |  | ||||||
| [[tool.mypy.overrides]] |   [[tool.mypy.overrides]] | ||||||
| module = 'spack.test.packages' |   module = 'spack.test.packages' | ||||||
|  |   ignore_errors = true | ||||||
|  |  | ||||||
|  |   # 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_errors = true | ||||||
|  |  | ||||||
| # ignore errors in fake import path for packages | [tool.coverage.html] | ||||||
| [[tool.mypy.overrides]] | directory = "htmlcov" | ||||||
| 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' |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Todd Gamblin
					Todd Gamblin