#36589: assertTemplateUsed asserts against template partial name regardless of
origin
-----------------------------+-------------------------------------------
     Reporter:  Jacob Walls  |                     Type:  Bug
       Status:  new          |                Component:  Template system
      Version:  dev          |                 Severity:  Release blocker
     Keywords:               |             Triage Stage:  Unreviewed
    Has patch:  0            |      Needs documentation:  0
  Needs tests:  0            |  Patch needs improvement:  0
Easy pickings:  0            |                    UI/UX:  0
-----------------------------+-------------------------------------------
 Currently, you can provide a named template partial like `"hello"` to
 `assertTemplateUsed`, which scrupulously complies with its doc'd intention
 to assert against names, but I can imagine wanting to provide the
 "qualified" path like `my_page.html#hello`:

 {{{#!diff
 diff --git a/tests/test_utils/templates/template_used/partials.html
 b/tests/test_utils/templates/template_used/partials.html
 new file mode 100644
 index 0000000000..5c8db3d657
 --- /dev/null
 +++ b/tests/test_utils/templates/template_used/partials.html
 @@ -0,0 +1,5 @@
 +{% partialdef hello %}
 +<p>Hello</p>
 +{% endpartialdef %}

 diff --git a/tests/test_utils/tests.py b/tests/test_utils/tests.py
 index 9c22b61b4f..f7500ddc22 100644
 --- a/tests/test_utils/tests.py
 +++ b/tests/test_utils/tests.py
 @@ -510,6 +510,14 @@ class
 AssertTemplateUsedContextManagerTests(SimpleTestCase):
              render_to_string("template_used/base.html")
              render_to_string("template_used/base.html")

 +        # passes
 +        with self.assertTemplateUsed("hello"):
 +            render_to_string("template_used/partials.html#hello")
 +
 +        # fails
 +        with
 self.assertTemplateUsed("template_used/partials.html#hello"):
 +            render_to_string("template_used/partials.html#hello")
 +
      def test_nested_usage(self):
          with self.assertTemplateUsed("template_used/base.html"):
              with self.assertTemplateUsed("template_used/include.html"):
 }}}

 Notice the hint "Actual template(s) used: hello" does not point to the
 origin, really.

 {{{#!py
 AssertionError: False is not true : Template
 'template_used/partials.html#hello' was not a template used to render the
 response. Actual template(s) used: hello
 }}}

 And if we regard the ''unqualified'' way as dubious, I'm suggesting we
 should yank it before 6.0.

 The fix doesn't look to be invasive. Curious to hear from others.
-- 
Ticket URL: <https://code.djangoproject.com/ticket/36589>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/django-updates/010701990b463973-0df82dc8-cefb-41b9-88f1-27f74c1c11a0-000000%40eu-central-1.amazonses.com.

Reply via email to