django_coverage_plugin
django_coverage_plugin copied to clipboard
Widget templates not covered (when they are clearly used).
I have Widget such as:
class PlanChoiceWidget(RadioSelect):
option_template_name = "plans/plan_choice_widget.html"
and tests such as:
class PlanChoiceWidgetTests1(TestCase):
def setUp(self):
self.factory = RequestFactory()
self.plan_pricing = baker.make(
"PlanPricing", plan__name="Foo", price=Decimal("10.00"),
has_automatic_renewal=True
)
self.request = self.factory.get("")
self.request.user = baker.make("accounts.UserProfile")
def render_widget(self, plan):
widget = PlanChoiceWidget()
choice_data = {
"name": "plan_choice",
"value": plan.pk,
"attrs": {"id": "id_plan_choice"},
}
widget.choices = [(plan.pk, plan)]
widget.request = self.request
return widget.render(**choice_data)
def test_plan_choice_widget_render(self):
rendered_html = self.render_widget(self.plan_pricing)
self.assertInHTML(
'<div class="pricing-plans-price__price jsPricingPlansCardPriceWhole">10</div>',
rendered_html,
)
self.assertIn('data-amount="10.00"', rendered_html)
self.assertIn('data-renewal="True"', rendered_html)
def test_non_recurring_plan(self):
self.plan_pricing.has_automatic_renewal = False
self.plan_pricing.save()
rendered_html = self.render_widget(self.plan_pricing)
self.assertIn('<input type="radio" name="plan_choice"', rendered_html)
When I look at the coverage it shows 0% for this template although lines from plans/plan_choice_widget.html
template are matched by the tests.
My .coveragerc:
[run]
omit =
*/virtualenvs/*
*/migrations/*
*/site-packages/*
*.txt
*/settings/dev.py
plugins =
django_coverage_plugin
branch = True
source = blenderhub
relative_files = True
I am using django-coverage-plugin
version 3.1.0
, coverage version 7.4.1
.
More widget templates from my project are not matched. Is this a known problem or should I gather more information?