misc: always strip template rendering result (#30561) #463
|
@ -3765,6 +3765,21 @@ def test_form_page_checkbox_prefill(pub):
|
|||
assert resp.forms[0]['f0disabled'].attrs['disabled']
|
||||
|
||||
|
||||
def test_form_page_date_prefill(pub):
|
||||
create_user(pub)
|
||||
formdef = create_formdef()
|
||||
formdef.data_class().wipe()
|
||||
# check simple date and with a template with extraneous space
|
||||
for value in ('2023-07-07', '{{ " 2023-07-07" }}'):
|
||||
formdef.fields = [fields.DateField(id='0', label='date', prefill={'type': 'string', 'value': value})]
|
||||
formdef.store()
|
||||
|
||||
resp = get_app(pub).get('/test/')
|
||||
assert resp.forms[0]['f0'].value == '2023-07-07'
|
||||
resp = resp.forms[0].submit('submit') # -> validation
|
||||
assert resp.forms[0]['f0'].value == '2023-07-07'
|
||||
|
||||
|
||||
def test_form_page_template_prefill_items_field(pub):
|
||||
BlockDef.wipe()
|
||||
create_user(pub)
|
||||
|
@ -7717,7 +7732,7 @@ def test_email_actions(pub, emails):
|
|||
resp = resp.form.submit('submit')
|
||||
resp = resp.form.submit('submit')
|
||||
email_data = emails.get('New form2 (test email action)')
|
||||
assert len(re.findall(r'http.*? ', email_data['payload'])) == 2
|
||||
assert len(re.findall(r'http.*?\s', email_data['payload'])) == 2
|
||||
|
||||
# custom messages
|
||||
workflow.possible_status[0].items[
|
||||
|
@ -8176,7 +8191,7 @@ def test_backoffice_fields_just_after_conditional_form_submit(pub):
|
|||
assert formdata.data['3'] == '2'
|
||||
|
||||
assert formdata.data['bo1'] == 'None vs B2'
|
||||
assert formdata.data['bo2'] == ' vs moreB2'
|
||||
assert formdata.data['bo2'] == 'vs moreB2'
|
||||
|
||||
|
||||
def test_backoffice_fields_just_after_conditional_form_edit_action(pub):
|
||||
|
@ -8245,7 +8260,7 @@ def test_backoffice_fields_just_after_conditional_form_edit_action(pub):
|
|||
|
||||
# check unfeed on FormPage::submitted()
|
||||
assert formdata.data['bo1'] == 'None vs B2'
|
||||
assert formdata.data['bo2'] == ' vs moreB2'
|
||||
assert formdata.data['bo2'] == 'vs moreB2'
|
||||
|
||||
app = login(get_app(pub), username='foo', password='foo')
|
||||
resp = app.get('/test/%s/' % formdata.id)
|
||||
|
@ -8265,7 +8280,7 @@ def test_backoffice_fields_just_after_conditional_form_edit_action(pub):
|
|||
|
||||
# check unfeed on FormPage::submitted_existing()
|
||||
assert formdata.data['bo1'] == 'A1 vs None'
|
||||
assert formdata.data['bo2'] == 'moreA1 vs '
|
||||
assert formdata.data['bo2'] == 'moreA1 vs'
|
||||
|
||||
|
||||
def test_backoffice_fields_set_from_live(pub):
|
||||
|
|
|
@ -1717,7 +1717,7 @@ def test_lazy_formdata_queryset_filter(pub, variable_test_data):
|
|||
{% endwith %}'''
|
||||
)
|
||||
context['value'] = value
|
||||
assert tmpl.render(context) == '\n OK\n '
|
||||
assert tmpl.render(context) == 'OK'
|
||||
assert 'not a date' not in LazyFormData(formdata).objects.getlist('datefield')
|
||||
|
||||
# test |getlistdict
|
||||
|
@ -2175,7 +2175,7 @@ def test_lazy_strip_method(pub, variable_test_data):
|
|||
pub.substitutions.reset()
|
||||
pub.substitutions.feed(formdef)
|
||||
with pub.substitutions.temporary_feed(formdata, force_mode=mode):
|
||||
assert WorkflowStatusItem.compute('{{ form_var_foo_foo }}', raises=True) == ' bar '
|
||||
assert WorkflowStatusItem.compute('{{ form_var_foo_foo }}', raises=True) == 'bar'
|
||||
assert WorkflowStatusItem.compute('{{ form_var_foo_foo.strip }}', raises=True) == 'bar'
|
||||
|
||||
|
||||
|
@ -3591,7 +3591,7 @@ def test_block_variables(pub):
|
|||
assert tmpl.render(context) == 'XfooY, Xfoo2Y'
|
||||
|
||||
tmpl = Template('{% for sub in form_var_block %}{{ sub.foo }} {% endfor %}')
|
||||
assert tmpl.render(context) == 'foo foo2 '
|
||||
assert tmpl.render(context) == 'foo foo2'
|
||||
|
||||
tmpl = Template('{{ form_var_block|length }}')
|
||||
assert tmpl.render(context) == '2'
|
||||
|
|
|
@ -153,15 +153,15 @@ def test_split_templatetag():
|
|||
|
||||
|
||||
def test_strip_templatetag():
|
||||
tmpl = Template('{{ foo|strip }}')
|
||||
tmpl = Template('{{ foo|strip:"_" }}')
|
||||
assert tmpl.render() == ''
|
||||
assert tmpl.render({'foo': None}) == ''
|
||||
assert tmpl.render({'foo': ' foo bar '}) == 'foo bar'
|
||||
assert tmpl.render({'foo': ' foo bar\t'}) == 'foo bar'
|
||||
assert tmpl.render({'foo': ' félé '}) == 'félé'
|
||||
assert tmpl.render({'foo': '_foo bar'}) == 'foo bar'
|
||||
assert tmpl.render({'foo': '_foo bar__'}) == 'foo bar'
|
||||
assert tmpl.render({'foo': '_félé_'}) == 'félé'
|
||||
tmpl = Template('{{ foo|strip:"XY" }}')
|
||||
assert tmpl.render({'foo': 'XXfoo barXYX'}) == 'foo bar'
|
||||
assert tmpl.render({'foo': ' foo barXX'}) == ' foo bar'
|
||||
assert tmpl.render({'foo': ' foo barXX'}) == 'foo bar'
|
||||
|
||||
|
||||
def test_removeprefix_templatetag():
|
||||
|
@ -175,7 +175,7 @@ def test_removeprefix_templatetag():
|
|||
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': ' XYfoo barXY'}) == 'XYfoo barXY'
|
||||
assert tmpl.render({'foo': 'XYXYfoo barXY'}) == 'XYfoo barXY'
|
||||
|
||||
|
||||
|
@ -190,7 +190,7 @@ def test_removesuffix_templatetag():
|
|||
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 barXY '}) == 'XYfoo barXY'
|
||||
assert tmpl.render({'foo': 'XYfoo barXYXY'}) == 'XYfoo barXY'
|
||||
|
||||
|
||||
|
@ -248,7 +248,7 @@ def test_unaccent_templatetag(pub):
|
|||
def test_template_encoding():
|
||||
# django
|
||||
tmpl = Template('{{ foo }} à vélo')
|
||||
assert tmpl.render() == ' à vélo'
|
||||
assert tmpl.render() == 'à vélo'
|
||||
assert tmpl.render({'foo': 'fou'}) == 'fou à vélo'
|
||||
assert tmpl.render({'foo': 'félé'}) == 'félé à vélo'
|
||||
|
||||
|
|
|
@ -306,7 +306,7 @@ class Template:
|
|||
raise
|
||||
get_publisher().record_error(exception=e, notify=True)
|
||||
return self.value
|
||||
rendered = str(rendered)
|
||||
rendered = str(rendered).strip()
|
||||
if context.get('allow_complex'):
|
||||
return rendered
|
||||
return re.sub(r'[\uE000-\uF8FF]', '', rendered)
|
||||
|
|
Loading…
Reference in New Issue