From 42d47f78c5f8f600063799524cce0db1cab3ee35 Mon Sep 17 00:00:00 2001 From: Phillip Shiu Date: Mon, 8 May 2023 13:20:38 -0400 Subject: [PATCH] fix: correct .coveragerc omitted files globs (#333) Coverage.py file patterns only matches entire directories if the file pattern ends with a slash and asterisk ("/*"). In addition to the rule above, Coverage.py file patterns that start with a wildcard character only matches entire directories if the file pattern starts with an asterisk and slash ("*/"). Example: % python Python 3.8.11 (default, Aug 23 2021, 18:14:59) >>> import coverage >>> coverage.version_info (7, 2, 3, 'final', 0) >>> from coverage.files import GlobMatcher >>> GlobMatcher(["*migrations*"], "omit").match("/dir/project/migrations/0001_initial.py") False >>> GlobMatcher(["*/migrations/*"], "omit").match("/dir/project/migrations/0001_initial.py") True >>> GlobMatcher(["/dir/project/settings*"], "omit").match("/dir/project/settings/base.py") False >>> GlobMatcher(["/dir/project/settings/*"], "omit").match("/dir/project/settings/base.py") True >>> GlobMatcher(["*admin.py"], "omit").match("/dir/project/app/app_name/admin.py") True See: * [InOrOut.check_include_omit_etc()](https://github.com/nedbat/coveragepy/blob/cf3602ffa7396d8f784c1a1e814ff24c6c31f793/coverage/inorout.py#L444) * [GlobMatcher in self.omit](https://github.com/nedbat/coveragepy/blob/cf3602ffa7396d8f784c1a1e814ff24c6c31f793/coverage/inorout.py#L253) * [Definition of self.omit](https://github.com/nedbat/coveragepy/blob/cf3602ffa7396d8f784c1a1e814ff24c6c31f793/coverage/inorout.py#L205) * [Coverage.py glob documentation](https://coverage.readthedocs.io/en/7.2.5/source.html#file-patterns) --- CHANGELOG.rst | 8 ++++++++ .../{{cookiecutter.repo_name}}/.coveragerc | 8 ++++---- .../{{cookiecutter.repo_name}}/.coveragerc | 10 +++++----- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a58a713e..c9532356 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,14 @@ Change Log This file loosely adheres to the structure of https://keepachangelog.com/, but in reStructuredText instead of Markdown. +2023-05-04 +********** + +Fixed +===== + +- Correct .coveragerc ``omit`` file paths to properly specify directories. + 2023-05-03 ********** diff --git a/cookiecutter-django-app/{{cookiecutter.repo_name}}/.coveragerc b/cookiecutter-django-app/{{cookiecutter.repo_name}}/.coveragerc index 99b7fe22..a614c76e 100644 --- a/cookiecutter-django-app/{{cookiecutter.repo_name}}/.coveragerc +++ b/cookiecutter-django-app/{{cookiecutter.repo_name}}/.coveragerc @@ -3,8 +3,8 @@ branch = True data_file = .coverage source={{cookiecutter.app_name}} omit = - test_settings - *migrations* + test_settings.py + */migrations/* *admin.py - *static* - *templates* + */static/* + */templates/* diff --git a/cookiecutter-django-ida/{{cookiecutter.repo_name}}/.coveragerc b/cookiecutter-django-ida/{{cookiecutter.repo_name}}/.coveragerc index c2d87788..e20fc83a 100644 --- a/cookiecutter-django-ida/{{cookiecutter.repo_name}}/.coveragerc +++ b/cookiecutter-django-ida/{{cookiecutter.repo_name}}/.coveragerc @@ -3,10 +3,10 @@ branch = True data_file = .coverage source={{cookiecutter.project_name}} omit = - {{cookiecutter.project_name}}/settings* - {{cookiecutter.project_name}}/conf* + {{cookiecutter.project_name}}/settings/* + {{cookiecutter.project_name}}/conf/* *wsgi.py - *migrations* + */migrations/* *admin.py - *static* - *templates* + */static/* + */templates/*