Thanks for this plugin, which did almost exactly what we needed, apart from one issue, which this PR is an attempt to address.
The issue we had was that our project is using slippers, which means we have component tags in our templates with start/end block tags that don't follow the usual django convention for the end tag ({% end<...> %}). Instead they look something like
{% #card %}
...
{% /card %}
This means that any component end tag on its own line gets marked as uncovered.
This PR adds a config option exclude_blocks which takes a list of regexes, similar to exclude_also in the main coverage config, and allow us to specify patterns to match and exclude the content of block tags. With the following pyproject.toml config, we can now exclude any block tags that start with "/" (ie slippers component end tags).
I didn't add a similar exclude option for text tags because there's additional complexity there since a text tag can span multiple lines (and I haven't seen issues that suggest it's a feature anyone needs yet)
Thanks for this plugin, which did almost exactly what we needed, apart from one issue, which this PR is an attempt to address.
The issue we had was that our project is using slippers, which means we have component tags in our templates with start/end block tags that don't follow the usual django convention for the end tag (
{% end<...> %}
). Instead they look something likeThis means that any component end tag on its own line gets marked as uncovered.
This PR adds a config option
exclude_blocks
which takes a list of regexes, similar toexclude_also
in the main coverage config, and allow us to specify patterns to match and exclude the content of block tags. With the following pyproject.toml config, we can now exclude any block tags that start with "/" (ie slippers component end tags).I didn't add a similar exclude option for text tags because there's additional complexity there since a text tag can span multiple lines (and I haven't seen issues that suggest it's a feature anyone needs yet)