5 |
5 |
|
6 |
6 |
from quixote import cleanup, get_response
|
7 |
7 |
from wcs.qommon.http_request import HTTPRequest
|
|
8 |
from qommon.form import *
|
8 |
9 |
|
9 |
10 |
from wcs.formdef import FormDef
|
10 |
11 |
from wcs import sessions
|
|
12 |
from wcs.fields import StringField, DateField
|
11 |
13 |
from wcs.roles import Role
|
12 |
14 |
from wcs.workflows import (Workflow, WorkflowStatusItem,
|
13 |
15 |
SendmailWorkflowStatusItem, SendSMSWorkflowStatusItem)
|
14 |
16 |
from wcs.wf.anonymise import AnonymiseWorkflowStatusItem
|
15 |
17 |
from wcs.wf.dispatch import DispatchWorkflowStatusItem
|
|
18 |
from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
|
16 |
19 |
from wcs.wf.jump import JumpWorkflowStatusItem, _apply_timeouts
|
17 |
20 |
from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem
|
18 |
21 |
from wcs.wf.remove import RemoveWorkflowStatusItem
|
... | ... | |
26 |
29 |
cleanup()
|
27 |
30 |
global pub, req
|
28 |
31 |
pub = create_temporary_pub()
|
|
32 |
pub.cfg['language'] = {'language': 'en'}
|
|
33 |
pub.write_cfg()
|
29 |
34 |
req = HTTPRequest(None, {'SERVER_NAME': 'example.net', 'SCRIPT_NAME': ''})
|
30 |
35 |
req.response.filter = {}
|
31 |
36 |
req.user = None
|
... | ... | |
41 |
46 |
|
42 |
47 |
@pytest.fixture
|
43 |
48 |
def two_pubs(request):
|
44 |
|
return create_temporary_pub(sql_mode=(request.param == 'sql'))
|
|
49 |
pub = create_temporary_pub(sql_mode=(request.param == 'sql'))
|
|
50 |
pub.cfg['language'] = {'language': 'en'}
|
|
51 |
pub.write_cfg()
|
|
52 |
req = HTTPRequest(None, {'SERVER_NAME': 'example.net', 'SCRIPT_NAME': ''})
|
|
53 |
req.response.filter = {}
|
|
54 |
req.user = None
|
|
55 |
pub._set_request(req)
|
|
56 |
req.session = sessions.BasicSession(id=1)
|
|
57 |
|
|
58 |
return pub
|
45 |
59 |
|
46 |
60 |
def test_jump_nothing():
|
47 |
61 |
FormDef.wipe()
|
... | ... | |
508 |
522 |
item.perform(formdata) # nothing
|
509 |
523 |
assert sms_mocking.sms[-1]['destinations'] == ['000']
|
510 |
524 |
assert sms_mocking.sms[-1]['text'] == 'XXX'
|
|
525 |
|
|
526 |
|
|
527 |
def test_display_form(two_pubs):
|
|
528 |
formdef = FormDef()
|
|
529 |
formdef.name = 'baz'
|
|
530 |
formdef.fields = []
|
|
531 |
formdef.store()
|
|
532 |
|
|
533 |
formdata = formdef.data_class()()
|
|
534 |
formdata.just_created()
|
|
535 |
formdata.store()
|
|
536 |
|
|
537 |
wf = Workflow(name='status')
|
|
538 |
st1 = wf.add_status('Status1', 'st1')
|
|
539 |
|
|
540 |
display_form = FormWorkflowStatusItem()
|
|
541 |
display_form.id = '_x'
|
|
542 |
display_form.varname = 'xxx'
|
|
543 |
display_form.formdef = WorkflowFormFieldsFormDef(item=display_form)
|
|
544 |
display_form.formdef.fields.append(StringField(id='1', label='Test',
|
|
545 |
type='string'))
|
|
546 |
display_form.formdef.fields.append(DateField(id='2', label='Date',
|
|
547 |
type='date', varname='date'))
|
|
548 |
st1.items.append(display_form)
|
|
549 |
display_form.parent = st1
|
|
550 |
|
|
551 |
form = Form(action='#')
|
|
552 |
display_form.fill_form(form, formdata, None)
|
|
553 |
assert form.widgets[0].title == 'Test'
|
|
554 |
assert form.widgets[1].title == 'Date'
|
|
555 |
|
|
556 |
two_pubs.get_request().form = {'f1': 'Foobar', 'f2': '2015-05-12', 'submit': 'submit'}
|
|
557 |
display_form.submit_form(form, formdata, None, None)
|
|
558 |
|
|
559 |
assert formdata.get_substitution_variables()['xxx_var_date'] == '2015-05-12'
|
|
560 |
|
|
561 |
two_pubs.cfg['language'] = {'language': 'fr'}
|
|
562 |
formdata = formdef.data_class()()
|
|
563 |
formdata.just_created()
|
|
564 |
formdata.store()
|
|
565 |
|
|
566 |
form = Form(action='#')
|
|
567 |
display_form.fill_form(form, formdata, None)
|
|
568 |
two_pubs.get_request().form = {'f1': 'Foobar', 'f2': '12/05/2015', 'submit': 'submit'}
|
|
569 |
display_form.submit_form(form, formdata, None, None)
|
|
570 |
assert formdata.get_substitution_variables()['xxx_var_date'] == '12/05/2015'
|
|
571 |
|
|
572 |
assert formdata.get_substitution_variables()['xxx_var_date_raw'] == \
|
|
573 |
time.strptime('2015-05-12', '%Y-%m-%d')
|
|
574 |
|
|
575 |
pub.cfg['language'] = {'language': 'en'}
|
511 |
|
-
|