0002-formdef-warn-if-multiple-fields-have-the-same-id-917.patch
tests/test_formdef_import.py | ||
---|---|---|
257 | 257 |
export = ET.tostring(export_to_indented_xml(formdef)) |
258 | 258 |
with pytest.raises(FormdefImportError): |
259 | 259 |
FormDef.import_from_xml(StringIO.StringIO(export)) |
260 | ||
261 |
def test_duplicated_field_ids(): |
|
262 |
formdef = FormDef() |
|
263 |
formdef.name = 'foo' |
|
264 |
formdef.fields = [ |
|
265 |
fields.StringField(id='1', type='string'), |
|
266 |
fields.StringField(id='1', type='string'),] |
|
267 |
export = ET.tostring(export_to_indented_xml(formdef, include_id=True)) |
|
268 | ||
269 |
FormDef.import_from_xml(StringIO.StringIO(export)) |
|
270 | ||
271 |
with pytest.raises(FormdefImportError): |
|
272 |
FormDef.import_from_xml(StringIO.StringIO(export), include_id=True) |
wcs/formdef.py | ||
---|---|---|
702 | 702 |
raise FormdefImportError(N_('Unknown datasources'), |
703 | 703 |
details=', '.join(sorted(unknown_datasources))) |
704 | 704 | |
705 |
# check if all field id are unique |
|
706 |
known_field_ids = set() |
|
707 |
for field in formdef.fields: |
|
708 |
if field.id in known_field_ids: |
|
709 |
raise FormdefImportError(N_('Duplicated field identifiers')) |
|
710 |
known_field_ids.add(field.id) |
|
711 | ||
705 | 712 |
return formdef |
706 | 713 |
import_from_xml = classmethod(import_from_xml) |
707 | 714 | |
708 |
- |