﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
36049	The `upper` template filter should set `is_safe=True`	Lily Foote		"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&lt;P&gt;H... world!</p>\n' == '\n<p>HELLO W... world!</p>\n'
E         
E           
E         - <p>HELLO WORLD!</p>
E         + &lt;P&gt;HELLO WORLD!&lt;/P&gt;
E           <p>hello world!</p>
}}}"	Uncategorized	new	Uncategorized	5.1	Normal				Unreviewed	0	0	0	0	0	0
