Projet

Général

Profil

0002-formdef-warn-if-multiple-fields-have-the-same-id-917.patch

Frédéric Péters, 02 décembre 2015 12:50

Télécharger (1,9 ko)

Voir les différences:

Subject: [PATCH 2/3] formdef: warn if multiple fields have the same id (#9173)

 tests/test_formdef_import.py | 13 +++++++++++++
 wcs/formdef.py               |  7 +++++++
 2 files changed, 20 insertions(+)
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
-