Projet

Général

Profil

0001-misc-add-removeprefix-and-removesuffix-filters-43230.patch

Lauréline Guérin, 31 juillet 2020 15:34

Télécharger (3,03 ko)

Voir les différences:

Subject: [PATCH] misc: add removeprefix and removesuffix filters (#43230)

 tests/test_templates.py           | 30 ++++++++++++++++++++++++++++++
 wcs/qommon/templatetags/qommon.py | 22 ++++++++++++++++++++++
 2 files changed, 52 insertions(+)
tests/test_templates.py
158 158
    assert tmpl.render({'foo': ' foo barXX'}) == ' foo bar'
159 159

  
160 160

  
161
def test_removeprefix_templatetag():
162
    tmpl = Template('{{ foo|removeprefix }}')
163
    assert tmpl.render() == ''
164
    assert tmpl.render({'foo': None}) == ''
165
    assert tmpl.render({'foo': 'foo bar'}) == 'foo bar'
166
    tmpl = Template('{{ foo|removeprefix:"" }}')
167
    assert tmpl.render({'foo': 'foo bar'}) == 'foo bar'
168
    tmpl = Template('{{ foo|removeprefix:"XY" }}')
169
    assert tmpl.render({'foo': 'XYfoo barXY'}) == 'foo barXY'
170
    assert tmpl.render({'foo': 'foo bar'}) == 'foo bar'
171
    assert tmpl.render({'foo': 'xyfoo barXY'}) == 'xyfoo barXY'
172
    assert tmpl.render({'foo': ' XYfoo barXY'}) == ' XYfoo barXY'
173
    assert tmpl.render({'foo': 'XYXYfoo barXY'}) == 'XYfoo barXY'
174

  
175

  
176
def test_removesuffix_templatetag():
177
    tmpl = Template('{{ foo|removesuffix }}')
178
    assert tmpl.render() == ''
179
    assert tmpl.render({'foo': None}) == ''
180
    assert tmpl.render({'foo': 'foo bar'}) == 'foo bar'
181
    tmpl = Template('{{ foo|removesuffix:"" }}')
182
    assert tmpl.render({'foo': 'foo bar'}) == 'foo bar'
183
    tmpl = Template('{{ foo|removesuffix:"XY" }}')
184
    assert tmpl.render({'foo': 'XYfoo barXY'}) == 'XYfoo bar'
185
    assert tmpl.render({'foo': 'foo bar'}) == 'foo bar'
186
    assert tmpl.render({'foo': 'XYfoo barxy'}) == 'XYfoo barxy'
187
    assert tmpl.render({'foo': 'XYfoo barXY '}) == 'XYfoo barXY '
188
    assert tmpl.render({'foo': 'XYfoo barXYXY'}) == 'XYfoo barXY'
189

  
190

  
161 191
def test_unaccent_templatetag():
162 192
    tmpl = Template('{{ foo|unaccent }}')
163 193
    assert tmpl.render() == ''
wcs/qommon/templatetags/qommon.py
97 97
        return force_text(string).strip()
98 98

  
99 99

  
100
@register.filter
101
def removeprefix(string, prefix=None):
102
    if not string:
103
        return ''
104
    value = force_text(string)
105
    prefix = force_text(prefix)
106
    if prefix and value.startswith(prefix):
107
        return value[len(prefix):]
108
    return value
109

  
110

  
111
@register.filter
112
def removesuffix(string, suffix=None):
113
    if not string:
114
        return ''
115
    value = force_text(string)
116
    suffix = force_text(suffix)
117
    if suffix and value.endswith(suffix):
118
        return value[:-len(suffix)]
119
    return value
120

  
121

  
100 122
@register.filter
101 123
def unaccent(value):
102 124
    if not value:
103
-