10 |
10 |
import time
|
11 |
11 |
import zipfile
|
12 |
12 |
import base64
|
13 |
|
from webtest import Upload, Hidden
|
|
13 |
from webtest import Upload, Hidden, AppError
|
14 |
14 |
import mock
|
15 |
15 |
|
16 |
16 |
try:
|
... | ... | |
7152 |
7152 |
resp.forms[0]['f1'] = '2'
|
7153 |
7153 |
resp = resp.forms[0].submit('submit')
|
7154 |
7154 |
assert 'style="display: none"' in comment.search(resp.forms[0].text).group(0)
|
|
7155 |
|
|
7156 |
def test_workflow_set_bo_table_field(pub):
|
|
7157 |
user = create_user(pub)
|
|
7158 |
|
|
7159 |
formdef = create_formdef()
|
|
7160 |
formdef.fields = [
|
|
7161 |
fields.TableField(
|
|
7162 |
id='0', label='fo table field', type='table', varname='input',
|
|
7163 |
rows=['row1', 'row2'], columns=['col1', 'col2']),
|
|
7164 |
]
|
|
7165 |
formdef.store()
|
|
7166 |
formdef.data_class().wipe()
|
|
7167 |
|
|
7168 |
Workflow.wipe()
|
|
7169 |
workflow = Workflow(name='test')
|
|
7170 |
workflow.backoffice_fields_formdef = WorkflowBackofficeFieldsFormDef(workflow)
|
|
7171 |
workflow.backoffice_fields_formdef.fields = [
|
|
7172 |
fields.TableField(
|
|
7173 |
id='bo0', label='bo table field',
|
|
7174 |
type='table', varname='backoffice_table',
|
|
7175 |
rows=['row1', 'row2'], columns=['col1', 'col2']),
|
|
7176 |
]
|
|
7177 |
st1 = workflow.add_status('Status1', 'st1')
|
|
7178 |
setbo = SetBackofficeFieldsWorkflowStatusItem()
|
|
7179 |
setbo.parent = st1
|
|
7180 |
st1.items.append(setbo)
|
|
7181 |
workflow.store()
|
|
7182 |
|
|
7183 |
formdef.workflow_id = workflow.id
|
|
7184 |
formdef.store()
|
|
7185 |
|
|
7186 |
formdef.data_class().wipe()
|
|
7187 |
expected = [['a1', 'a2'], ['b1', 'b2']]
|
|
7188 |
|
|
7189 |
# python expression must be used here (else we get a string)
|
|
7190 |
setbo.fields = [
|
|
7191 |
{'field_id': 'bo0', 'value': '=form_var_input'},
|
|
7192 |
]
|
|
7193 |
workflow.store()
|
|
7194 |
resp = get_app(pub).get('/test/')
|
|
7195 |
resp.form['f0$c-0-0'] = 'a1'
|
|
7196 |
resp.form['f0$c-0-1'] = 'a2'
|
|
7197 |
resp.form['f0$c-1-0'] = 'b1'
|
|
7198 |
resp.form['f0$c-1-1'] = 'b2'
|
|
7199 |
resp = resp.form.submit('submit') # -> validation page
|
|
7200 |
resp = resp.form.submit('submit') # -> submission
|
|
7201 |
resp = resp.follow()
|
|
7202 |
assert 'The form has been recorded' in resp.text
|
|
7203 |
assert formdef.data_class().select()[0].data['0'] == expected
|
|
7204 |
assert formdef.data_class().select()[0].data['bo0'] == expected
|
|
7205 |
|
|
7206 |
# by using Django template we get a string
|
|
7207 |
setbo.fields = [
|
|
7208 |
{'field_id': 'bo0', 'value': '{{ form_var_input }}'},
|
|
7209 |
]
|
|
7210 |
workflow.store()
|
|
7211 |
resp = get_app(pub).get('/test/')
|
|
7212 |
resp.form['f0$c-0-0'] = 'a1'
|
|
7213 |
resp.form['f0$c-0-1'] = 'a2'
|
|
7214 |
resp.form['f0$c-1-0'] = 'b1'
|
|
7215 |
resp.form['f0$c-1-1'] = 'b2'
|
|
7216 |
resp = resp.form.submit('submit') # -> validation page
|
|
7217 |
try:
|
|
7218 |
resp = resp.form.submit('submit') # -> submission
|
|
7219 |
except AppError as exc: # fails on sql metafunc.parametrize
|
|
7220 |
pass
|
|
7221 |
else:
|
|
7222 |
resp = resp.follow()
|
|
7223 |
assert 'The form has been recorded' in resp.text
|
|
7224 |
assert formdef.data_class().select()[0].data['0'] == expected
|
|
7225 |
assert formdef.data_class().select()[0].data['bo0'] == "%s" % expected
|