Projet

Général

Profil

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

Lauréline Guérin, 30 juillet 2020 15:43

Télécharger (2,97 ko)

Voir les différences:

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

 tests/test_templates.py           | 30 ++++++++++++++++++++++++++++++
 wcs/qommon/templatetags/qommon.py | 20 ++++++++++++++++++++
 2 files changed, 50 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
95 95
        return force_text(string).strip()
96 96

  
97 97

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

  
107

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

  
117

  
98 118
@register.filter
99 119
def unaccent(value):
100 120
    if not value:
101
-