Opened 11 months ago
Last modified 10 months ago
#36049 assigned Bug
The `upper` template filter should set `is_safe=True` — at Version 2
| Reported by: | Lily Foote | Owned by: | |
|---|---|---|---|
| Component: | Template system | Version: | 5.1 |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Accepted | |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | yes | Patch needs improvement: | yes |
| Easy pickings: | no | UI/UX: | no |
Description (last modified by )
I noticed this inconsistency between upper and lower where upper has is_safe=False but lower has is_safe=True. I think lower is correct and upper is incorrect.
This has been the case ever since is_safe was introduced in https://github.com/django/django/commit/356662cf74c99fac90afb0f5e6aac8d2d573e62a.
from django.template import engines
from django.utils.safestring import mark_safe
def test_is_safe():
template = """
{{ html|upper }}
{{ html|lower }}
"""
template = engines["django"].from_string(template)
html = mark_safe("<p>Hello World!</p>")
assert template.render({"html": html}) == """
<P>HELLO WORLD!</P>
<p>hello world!</p>
"""
E AssertionError: assert '\n<P>H... world!</p>\n' == '\n<P>HELLO W... world!</P>\n'
E
E
E - <P>HELLO WORLD!</P>
E + <P>HELLO WORLD!</P>
E <p>hello world!</p>
Change History (2)
comment:1 by , 11 months ago
| Description: | modified (diff) |
|---|
comment:2 by , 11 months ago
| Description: | modified (diff) |
|---|
Note:
See TracTickets
for help on using tickets.