9 |
9 |
from quixote import get_publisher
|
10 |
10 |
from quixote.http_request import Upload
|
11 |
11 |
|
12 |
|
from wcs import fields, formdef, sessions
|
|
12 |
from wcs import fields, sessions
|
13 |
13 |
from wcs.blocks import BlockDef
|
14 |
14 |
from wcs.carddef import CardDef
|
15 |
15 |
from wcs.categories import Category
|
... | ... | |
49 |
49 |
pub.cfg['language'] = {'language': 'en'}
|
50 |
50 |
pub.write_cfg()
|
51 |
51 |
|
52 |
|
FormDef.wipe()
|
53 |
|
Category.wipe()
|
|
52 |
return pub
|
54 |
53 |
|
55 |
|
cat = Category(name='test category')
|
56 |
|
cat.store()
|
57 |
54 |
|
58 |
|
global formdef
|
|
55 |
@pytest.fixture
|
|
56 |
def formdef(pub):
|
|
57 |
FormDef.wipe()
|
|
58 |
|
59 |
59 |
formdef = FormDef()
|
60 |
60 |
formdef.name = 'foobar'
|
61 |
61 |
formdef.url_name = 'foobar'
|
62 |
62 |
formdef.fields = []
|
63 |
|
formdef.category_id = cat.id
|
64 |
63 |
formdef.store()
|
65 |
64 |
|
66 |
|
return pub
|
|
65 |
return formdef
|
67 |
66 |
|
68 |
67 |
|
69 |
68 |
def teardown_module(module):
|
... | ... | |
81 |
80 |
return user
|
82 |
81 |
|
83 |
82 |
|
84 |
|
def test_basic(pub):
|
|
83 |
def test_basic(pub, formdef):
|
|
84 |
Category.wipe()
|
|
85 |
cat = Category(name='test category')
|
|
86 |
cat.store()
|
|
87 |
formdef.category_id = cat.id
|
|
88 |
formdef.store()
|
85 |
89 |
formdata = formdef.data_class()()
|
86 |
90 |
substvars = formdata.get_substitution_variables()
|
87 |
91 |
assert substvars.get('form_status') == 'Unknown'
|
... | ... | |
90 |
94 |
assert substvars.get('category_name') == 'test category'
|
91 |
95 |
|
92 |
96 |
|
93 |
|
def test_saved(pub):
|
|
97 |
def test_saved(pub, formdef):
|
94 |
98 |
formdef.data_class().wipe()
|
95 |
99 |
formdata = formdef.data_class()()
|
96 |
100 |
formdata.store()
|
... | ... | |
102 |
106 |
assert substvars.get('form_status_url').endswith('/foobar/1/status')
|
103 |
107 |
|
104 |
108 |
|
105 |
|
def test_auto_display_id(pub):
|
|
109 |
def test_auto_display_id(pub, formdef):
|
106 |
110 |
formdef.data_class().wipe()
|
107 |
111 |
formdata = formdef.data_class()()
|
108 |
112 |
formdata.store()
|
... | ... | |
111 |
115 |
assert substvars.get('form_number_raw') == str(formdata.id)
|
112 |
116 |
|
113 |
117 |
|
114 |
|
def test_manual_display_id(pub):
|
|
118 |
def test_manual_display_id(pub, formdef):
|
115 |
119 |
formdef.data_class().wipe()
|
116 |
120 |
formdata = formdef.data_class()()
|
117 |
121 |
formdata.id_display = 'bar'
|
... | ... | |
121 |
125 |
assert substvars.get('form_number_raw') == str(formdata.id)
|
122 |
126 |
|
123 |
127 |
|
124 |
|
def test_submission_context(pub, local_user):
|
|
128 |
def test_submission_context(pub, formdef, local_user):
|
125 |
129 |
formdef.data_class().wipe()
|
126 |
130 |
formdata = formdef.data_class()()
|
127 |
131 |
formdata.backoffice_submission = True
|
... | ... | |
145 |
149 |
assert substvars.get('form_submission_agent_email') is None
|
146 |
150 |
|
147 |
151 |
|
148 |
|
def test_just_created(pub):
|
|
152 |
def test_just_created(pub, formdef):
|
149 |
153 |
formdef.data_class().wipe()
|
150 |
154 |
formdata = formdef.data_class()()
|
151 |
155 |
formdata.just_created()
|
... | ... | |
160 |
164 |
assert substvars.get('form_evolution')
|
161 |
165 |
|
162 |
166 |
|
163 |
|
def test_field(pub):
|
|
167 |
def test_field(pub, formdef):
|
164 |
168 |
formdef.data_class().wipe()
|
165 |
169 |
formdef.fields = [fields.StringField(id='0', label='string')]
|
166 |
170 |
formdef.store()
|
... | ... | |
174 |
178 |
assert substvars.get('form_field_string') == 'test'
|
175 |
179 |
|
176 |
180 |
|
177 |
|
def test_field_varname(pub):
|
|
181 |
def test_field_varname(pub, formdef):
|
178 |
182 |
formdef.data_class().wipe()
|
179 |
183 |
formdef.fields = [fields.StringField(id='0', label='string', varname='foo')]
|
180 |
184 |
formdef.store()
|
... | ... | |
185 |
189 |
assert substvars.get('form_var_foo') == 'test'
|
186 |
190 |
|
187 |
191 |
|
188 |
|
def test_file_field(pub):
|
|
192 |
def test_file_field(pub, formdef):
|
189 |
193 |
formdef.data_class().wipe()
|
190 |
194 |
formdef.fields = [fields.FileField(id='0', label='file', varname='foo')]
|
191 |
195 |
formdef.store()
|
... | ... | |
212 |
216 |
assert substvars['form_var_foo_url'] is None
|
213 |
217 |
|
214 |
218 |
|
215 |
|
def test_get_submitter(pub):
|
|
219 |
def test_get_submitter(pub, formdef):
|
216 |
220 |
formdef.data_class().wipe()
|
217 |
221 |
formdef.fields = [
|
218 |
222 |
fields.StringField(id='0', label='email', varname='foo', prefill={'type': 'user', 'value': 'email'})
|
... | ... | |
235 |
239 |
assert formdef.get_submitter_email(formdata) == 'bar@localhost'
|
236 |
240 |
|
237 |
241 |
|
238 |
|
def test_get_last_update_time(pub):
|
|
242 |
def test_get_last_update_time(pub, formdef):
|
239 |
243 |
formdef.data_class().wipe()
|
240 |
|
formdef.store()
|
241 |
244 |
|
242 |
245 |
formdata = formdef.data_class()()
|
243 |
246 |
assert formdata.last_update_time is None
|
... | ... | |
259 |
262 |
assert formdata.last_update_time == formdata.receipt_time
|
260 |
263 |
|
261 |
264 |
|
262 |
|
def test_password_field(pub):
|
|
265 |
def test_password_field(pub, formdef):
|
263 |
266 |
formdef.data_class().wipe()
|
264 |
267 |
formdef.fields = [fields.PasswordField(id='0', label='pwd')]
|
265 |
268 |
formdef.store()
|
... | ... | |
271 |
274 |
assert formdata2.data == {'0': {'cleartext': 'foo'}}
|
272 |
275 |
|
273 |
276 |
|
274 |
|
def test_date_field(pub):
|
|
277 |
def test_date_field(pub, formdef):
|
275 |
278 |
formdef.data_class().wipe()
|
276 |
279 |
formdef.fields = [fields.DateField(id='0', label='date')]
|
277 |
280 |
formdef.store()
|
... | ... | |
507 |
510 |
assert variables.get('form_var_xxx_raw') is True
|
508 |
511 |
|
509 |
512 |
|
510 |
|
def test_backoffice_field_varname(pub):
|
|
513 |
def test_backoffice_field_varname(pub, formdef):
|
511 |
514 |
wf = Workflow(name='bo fields')
|
512 |
515 |
wf.backoffice_fields_formdef = WorkflowBackofficeFieldsFormDef(wf)
|
513 |
516 |
wf.backoffice_fields_formdef.fields = [
|
... | ... | |
526 |
529 |
assert substvars.get('form_var_backoffice_blah') == 'test'
|
527 |
530 |
|
528 |
531 |
|
529 |
|
def test_workflow_data_file_url(pub):
|
|
532 |
def test_workflow_data_file_url(pub, formdef):
|
530 |
533 |
upload = PicklableUpload('test.txt', 'text/plain', 'ascii')
|
531 |
534 |
upload.receive([b'first line', b'second line'])
|
532 |
535 |
|