mirror of
https://gitee.com/openharmony/third_party_jinja2
synced 2024-11-23 15:19:46 +00:00
use soft_str in do_wordcount, to trigger undefined
This commit is contained in:
parent
2a70ef218b
commit
ba080f51e0
@ -8,7 +8,8 @@ Unreleased
|
||||
- Fix a bug that caused callable objects with ``__getattr__``, like
|
||||
:class:`~unittest.mock.Mock` to be treated as a
|
||||
:func:`contextfunction`. :issue:`1145`
|
||||
|
||||
- Update ``wordcount`` filter to trigger :class:`Undefined` methods
|
||||
by wrapping the input in :func:`soft_unicode`. :pr:`1160`
|
||||
|
||||
|
||||
Version 2.11.1
|
||||
|
@ -761,7 +761,7 @@ def do_wordwrap(
|
||||
|
||||
def do_wordcount(s):
|
||||
"""Count the words in that string."""
|
||||
return len(_word_re.findall(s))
|
||||
return len(_word_re.findall(soft_unicode(s)))
|
||||
|
||||
|
||||
def do_int(value, default=0, base=10):
|
||||
|
@ -6,6 +6,8 @@ import pytest
|
||||
|
||||
from jinja2 import Environment
|
||||
from jinja2 import Markup
|
||||
from jinja2 import StrictUndefined
|
||||
from jinja2 import UndefinedError
|
||||
from jinja2._compat import implements_to_string
|
||||
from jinja2._compat import text_type
|
||||
|
||||
@ -369,6 +371,11 @@ class TestFilter(object):
|
||||
tmpl = env.from_string('{{ "foo bar baz"|wordcount }}')
|
||||
assert tmpl.render() == "3"
|
||||
|
||||
strict_env = Environment(undefined=StrictUndefined)
|
||||
t = strict_env.from_string("{{ s|wordcount }}")
|
||||
with pytest.raises(UndefinedError):
|
||||
t.render()
|
||||
|
||||
def test_block(self, env):
|
||||
tmpl = env.from_string("{% filter lower|escape %}<HEHE>{% endfilter %}")
|
||||
assert tmpl.render() == "<hehe>"
|
||||
|
Loading…
Reference in New Issue
Block a user