Projet

Général

Profil

0002-workflows-validate-ezt-syntax-of-displayed-messages-.patch

Frédéric Péters, 19 septembre 2016 09:03

Télécharger (2,51 ko)

Voir les différences:

Subject: [PATCH 2/2] workflows: validate ezt syntax of displayed messages
 (#13185)

 tests/test_admin_pages.py | 24 ++++++++++++++++++++++++
 wcs/workflows.py          |  3 ++-
 2 files changed, 26 insertions(+), 1 deletion(-)
tests/test_admin_pages.py
1793 1793
    resp = app.get('/backoffice/workflows/%s/status/%s/items/1/crash' % (
1794 1794
        workflow.id, baz_status.id), status=404)
1795 1795

  
1796
def test_workflows_display_action_ezt_validation(pub):
1797
    create_superuser(pub)
1798
    role = create_role()
1799
    Workflow.wipe()
1800
    workflow = Workflow(name='foo')
1801
    baz_status = workflow.add_status(name='baz')
1802
    display_message = DisplayMessageWorkflowStatusItem()
1803
    display_message.parent = baz_status
1804
    baz_status.items.append(display_message)
1805
    workflow.store()
1806

  
1807
    app = login(get_app(pub))
1808
    resp = app.get('/backoffice/workflows/%s/status/%s/items/1/' % (
1809
        workflow.id, baz_status.id))
1810
    resp.form['message'] = 'Hello world'
1811
    resp = resp.form.submit('submit')
1812
    assert Workflow.get(workflow.id).possible_status[0].items[0].message == 'Hello world'
1813

  
1814
    resp = app.get('/backoffice/workflows/%s/status/%s/items/1/' % (
1815
        workflow.id, baz_status.id))
1816
    resp.form['message'] = '[is test][end]' # invalid ezt
1817
    resp = resp.form.submit('submit')
1818
    assert 'error in template' in resp.body
1819

  
1796 1820
def test_workflows_delete_action(pub):
1797 1821
    create_superuser(pub)
1798 1822
    role = create_role()
wcs/workflows.py
2240 2240
    def add_parameters_widgets(self, form, parameters, prefix='', formdef=None):
2241 2241
        if 'message' in parameters:
2242 2242
            form.add(TextWidget, '%smessage' % prefix, title = _('Message'),
2243
                value = self.message, cols = 80, rows = 10)
2243
                value=self.message, cols=80, rows=10,
2244
                validation_function=ComputedExpressionWidget.validate_ezt)
2244 2245
        if 'to' in parameters:
2245 2246
            form.add(WidgetList, '%sto' % prefix, title=_('To'),
2246 2247
                     element_type=SingleSelectWidget,
2247
-