misc: add removeprefix and removesuffix filters (#43230)
This commit is contained in:
parent
d2526a9dad
commit
fad0092c65
|
@ -158,6 +158,36 @@ def test_strip_templatetag():
|
|||
assert tmpl.render({'foo': ' foo barXX'}) == ' foo bar'
|
||||
|
||||
|
||||
def test_removeprefix_templatetag():
|
||||
tmpl = Template('{{ foo|removeprefix }}')
|
||||
assert tmpl.render() == ''
|
||||
assert tmpl.render({'foo': None}) == ''
|
||||
assert tmpl.render({'foo': 'foo bar'}) == 'foo bar'
|
||||
tmpl = Template('{{ foo|removeprefix:"" }}')
|
||||
assert tmpl.render({'foo': 'foo bar'}) == 'foo bar'
|
||||
tmpl = Template('{{ foo|removeprefix:"XY" }}')
|
||||
assert tmpl.render({'foo': 'XYfoo barXY'}) == 'foo barXY'
|
||||
assert tmpl.render({'foo': 'foo bar'}) == 'foo bar'
|
||||
assert tmpl.render({'foo': 'xyfoo barXY'}) == 'xyfoo barXY'
|
||||
assert tmpl.render({'foo': ' XYfoo barXY'}) == ' XYfoo barXY'
|
||||
assert tmpl.render({'foo': 'XYXYfoo barXY'}) == 'XYfoo barXY'
|
||||
|
||||
|
||||
def test_removesuffix_templatetag():
|
||||
tmpl = Template('{{ foo|removesuffix }}')
|
||||
assert tmpl.render() == ''
|
||||
assert tmpl.render({'foo': None}) == ''
|
||||
assert tmpl.render({'foo': 'foo bar'}) == 'foo bar'
|
||||
tmpl = Template('{{ foo|removesuffix:"" }}')
|
||||
assert tmpl.render({'foo': 'foo bar'}) == 'foo bar'
|
||||
tmpl = Template('{{ foo|removesuffix:"XY" }}')
|
||||
assert tmpl.render({'foo': 'XYfoo barXY'}) == 'XYfoo bar'
|
||||
assert tmpl.render({'foo': 'foo bar'}) == 'foo bar'
|
||||
assert tmpl.render({'foo': 'XYfoo barxy'}) == 'XYfoo barxy'
|
||||
assert tmpl.render({'foo': 'XYfoo barXY '}) == 'XYfoo barXY '
|
||||
assert tmpl.render({'foo': 'XYfoo barXYXY'}) == 'XYfoo barXY'
|
||||
|
||||
|
||||
def test_unaccent_templatetag():
|
||||
tmpl = Template('{{ foo|unaccent }}')
|
||||
assert tmpl.render() == ''
|
||||
|
|
|
@ -97,6 +97,28 @@ def strip(string, chars=None):
|
|||
return force_text(string).strip()
|
||||
|
||||
|
||||
@register.filter
|
||||
def removeprefix(string, prefix=None):
|
||||
if not string:
|
||||
return ''
|
||||
value = force_text(string)
|
||||
prefix = force_text(prefix)
|
||||
if prefix and value.startswith(prefix):
|
||||
return value[len(prefix):]
|
||||
return value
|
||||
|
||||
|
||||
@register.filter
|
||||
def removesuffix(string, suffix=None):
|
||||
if not string:
|
||||
return ''
|
||||
value = force_text(string)
|
||||
suffix = force_text(suffix)
|
||||
if suffix and value.endswith(suffix):
|
||||
return value[:-len(suffix)]
|
||||
return value
|
||||
|
||||
|
||||
@register.filter
|
||||
def unaccent(value):
|
||||
if not value:
|
||||
|
|
Loading…
Reference in New Issue