From 45e0f725c9f5d8d64974d7afc4a365a77bb149e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Mon, 9 Jul 2018 21:08:03 +0200 Subject: [PATCH] workflows: allow negative values in global trigger delay (#25156) --- tests/test_admin_pages.py | 14 +++++++++++--- wcs/workflows.py | 3 ++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/tests/test_admin_pages.py b/tests/test_admin_pages.py index 77c4bdc1..26344fa2 100644 --- a/tests/test_admin_pages.py +++ b/tests/test_admin_pages.py @@ -2963,14 +2963,22 @@ def test_workflows_global_actions_timeout_triggers(pub): assert 'Timeout (not configured)' in resp.body resp = resp.click(href='triggers/%s/' % Workflow.get(workflow.id).global_actions[0].triggers[0].id, index=0) - resp.form['timeout'] = 'foobar' + for invalid_value in ('foobar', '-'): + resp.form['timeout'] = invalid_value + resp = resp.form.submit('submit') + assert 'wrong format' in resp.body + resp.form['timeout'] = '' resp = resp.form.submit('submit') - assert 'wrong format' in resp.body + assert 'required field' in resp.body resp.form['timeout'] = '3' - resp = resp.form.submit('submit') + resp = resp.form.submit('submit').follow() assert Workflow.get(workflow.id).global_actions[0].triggers[0].timeout == '3' + resp = resp.click(href='triggers/%s/' % Workflow.get(workflow.id).global_actions[0].triggers[0].id, index=0) + resp.form['timeout'] = '-2' + resp = resp.form.submit('submit').follow() + assert Workflow.get(workflow.id).global_actions[0].triggers[0].timeout == '-2' def test_workflows_criticality_levels(pub): create_superuser(pub) diff --git a/wcs/workflows.py b/wcs/workflows.py index dd534120..53412c76 100644 --- a/wcs/workflows.py +++ b/wcs/workflows.py @@ -1038,7 +1038,8 @@ class WorkflowGlobalActionTimeoutTrigger(WorkflowGlobalActionTrigger): form.add(ValidatedStringWidget, 'timeout', title=_('Timeout'), value=self.timeout, - regex=r'^\d*$', + regex=r'^-?\d+$', + required=True, hint=_('Number of days, relative to anchor point.')) return form -- 2.18.0