fields: keep display_locations empty value on import (#48969)
This commit is contained in:
parent
a87fa8ade9
commit
ca2d3974a3
|
@ -86,6 +86,36 @@ def test_empty_description_tag():
|
|||
assert not formdef2.description
|
||||
|
||||
|
||||
def test_empty_display_locations_tag():
|
||||
formdef = FormDef()
|
||||
formdef.name = 'Foo'
|
||||
formdef.fields = [
|
||||
fields.TitleField(type='title', label='title', display_locations=[]),
|
||||
fields.SubtitleField(type='subtitle', label='subtitle', display_locations=[]),
|
||||
fields.TextField(type='text', label='string', display_locations=[]),
|
||||
]
|
||||
|
||||
formdef_xml = formdef.export_to_xml()
|
||||
f1 = formdef_xml.findall('fields/field')[0]
|
||||
f2 = formdef_xml.findall('fields/field')[1]
|
||||
f3 = formdef_xml.findall('fields/field')[2]
|
||||
assert '<display_locations />' in str(ET.tostring(f1))
|
||||
assert '<display_locations />' in str(ET.tostring(f2))
|
||||
assert '<display_locations />' in str(ET.tostring(f3))
|
||||
|
||||
formdef2 = assert_xml_import_export_works(formdef)
|
||||
assert formdef2.fields[0].display_locations == []
|
||||
assert formdef2.fields[1].display_locations == []
|
||||
assert formdef2.fields[2].display_locations == []
|
||||
formdef2_xml = formdef2.export_to_xml()
|
||||
f1 = formdef2_xml.findall('fields/field')[0]
|
||||
f2 = formdef2_xml.findall('fields/field')[1]
|
||||
f3 = formdef2_xml.findall('fields/field')[2]
|
||||
assert '<display_locations />' in str(ET.tostring(f1))
|
||||
assert '<display_locations />' in str(ET.tostring(f2))
|
||||
assert '<display_locations />' in str(ET.tostring(f3))
|
||||
|
||||
|
||||
def test_boolean_attributes():
|
||||
formdef = FormDef()
|
||||
formdef.name = 'Foo'
|
||||
|
|
|
@ -349,7 +349,10 @@ class Field(object):
|
|||
setattr(self, attribute, v)
|
||||
else:
|
||||
if el.text is None:
|
||||
setattr(self, attribute, None)
|
||||
if isinstance(getattr(self, attribute), list):
|
||||
setattr(self, attribute, [])
|
||||
else:
|
||||
setattr(self, attribute, None)
|
||||
elif el.text in ('False', 'True'): # bools
|
||||
setattr(self, attribute, el.text == 'True')
|
||||
elif type(getattr(self, attribute)) is int:
|
||||
|
|
Loading…
Reference in New Issue