formdef: use custom json encoder for schema export (#11088)
This commit is contained in:
parent
546235bb02
commit
88380bc58e
|
@ -558,6 +558,17 @@ def test_form_workflow_variables(pub):
|
|||
resp = resp.forms[0].submit('cancel')
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/'
|
||||
|
||||
# check with a date field
|
||||
workflow.variables_formdef.fields.append(
|
||||
fields.DateField(id='2', varname='test2', label='Test2', type='date'))
|
||||
workflow.store()
|
||||
|
||||
resp = app.get('/backoffice/forms/1/')
|
||||
resp = resp.click(href='workflow-variables')
|
||||
resp.form['f2'] = '2016-06-17'
|
||||
resp = resp.form.submit()
|
||||
assert time.strftime('%d %m %y', FormDef.get(formdef.id).workflow_options.get('test2')) == '17 06 16'
|
||||
|
||||
def test_form_roles(pub):
|
||||
create_superuser(pub)
|
||||
role = create_role()
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
import datetime
|
||||
import json
|
||||
import sys
|
||||
import shutil
|
||||
import time
|
||||
|
||||
import pytest
|
||||
|
||||
|
@ -10,7 +12,7 @@ from quixote import cleanup
|
|||
from wcs import formdef
|
||||
from wcs.formdef import FormDef
|
||||
from wcs.workflows import Workflow
|
||||
from wcs.fields import StringField, FileField
|
||||
from wcs.fields import StringField, FileField, DateField
|
||||
|
||||
from utilities import create_temporary_pub
|
||||
|
||||
|
@ -115,6 +117,22 @@ def test_substitution_variables():
|
|||
assert 'form_option_foo' in formdef.get_substitution_variables()
|
||||
assert formdef.get_substitution_variables()['form_option_foo'] == 'bar'
|
||||
|
||||
def test_schema_with_date_variable():
|
||||
FormDef.wipe()
|
||||
formdef = FormDef()
|
||||
formdef.name = 'foo'
|
||||
formdef.store()
|
||||
|
||||
from wcs.workflows import WorkflowVariablesFieldsFormDef
|
||||
wf = Workflow(name='variables')
|
||||
wf.variables_formdef = WorkflowVariablesFieldsFormDef(workflow=wf)
|
||||
wf.variables_formdef.fields.append(
|
||||
DateField(label='Test', type='date', varname='foo'))
|
||||
wf.store()
|
||||
formdef.workflow_id = wf.id
|
||||
formdef.workflow_options = {'foo': time.gmtime(time.mktime((2016, 4, 2, 0, 0, 0, 0, 0, 0)))}
|
||||
assert json.loads(formdef.export_to_json())['options']['foo'].startswith('2016-04')
|
||||
|
||||
def test_substitution_variables_object():
|
||||
formdef = FormDef()
|
||||
formdef.name = 'foo'
|
||||
|
|
|
@ -557,7 +557,7 @@ class FormDef(StorableObject):
|
|||
if self.workflow_options:
|
||||
root['options'] = self.workflow_options
|
||||
|
||||
return json.dumps(root, indent=indent)
|
||||
return json.dumps(root, indent=indent, cls=misc.JSONEncoder)
|
||||
|
||||
@classmethod
|
||||
def import_from_json(cls, fd, charset=None, include_id=False):
|
||||
|
|
Loading…
Reference in New Issue