Projet

Général

Profil

0001-fields-keep-display_locations-empty-value-on-import-.patch

Lauréline Guérin, 23 mars 2021 10:18

Télécharger (2,77 ko)

Voir les différences:

Subject: [PATCH] fields: keep display_locations empty value on import (#48969)

 tests/test_formdef_import.py | 30 ++++++++++++++++++++++++++++++
 wcs/fields.py                |  5 ++++-
 2 files changed, 34 insertions(+), 1 deletion(-)
tests/test_formdef_import.py
86 86
    assert not formdef2.description
87 87

  
88 88

  
89
def test_empty_display_locations_tag():
90
    formdef = FormDef()
91
    formdef.name = 'Foo'
92
    formdef.fields = [
93
        fields.TitleField(type='title', label='title', display_locations=[]),
94
        fields.SubtitleField(type='subtitle', label='subtitle', display_locations=[]),
95
        fields.TextField(type='text', label='string', display_locations=[]),
96
    ]
97

  
98
    formdef_xml = formdef.export_to_xml()
99
    f1 = formdef_xml.findall('fields/field')[0]
100
    f2 = formdef_xml.findall('fields/field')[1]
101
    f3 = formdef_xml.findall('fields/field')[2]
102
    assert '<display_locations />' in str(ET.tostring(f1))
103
    assert '<display_locations />' in str(ET.tostring(f2))
104
    assert '<display_locations />' in str(ET.tostring(f3))
105

  
106
    formdef2 = assert_xml_import_export_works(formdef)
107
    assert formdef2.fields[0].display_locations == []
108
    assert formdef2.fields[1].display_locations == []
109
    assert formdef2.fields[2].display_locations == []
110
    formdef2_xml = formdef2.export_to_xml()
111
    f1 = formdef2_xml.findall('fields/field')[0]
112
    f2 = formdef2_xml.findall('fields/field')[1]
113
    f3 = formdef2_xml.findall('fields/field')[2]
114
    assert '<display_locations />' in str(ET.tostring(f1))
115
    assert '<display_locations />' in str(ET.tostring(f2))
116
    assert '<display_locations />' in str(ET.tostring(f3))
117

  
118

  
89 119
def test_boolean_attributes():
90 120
    formdef = FormDef()
91 121
    formdef.name = 'Foo'
wcs/fields.py
349 349
                setattr(self, attribute, v)
350 350
            else:
351 351
                if el.text is None:
352
                    setattr(self, attribute, None)
352
                    if isinstance(getattr(self, attribute), list):
353
                        setattr(self, attribute, [])
354
                    else:
355
                        setattr(self, attribute, None)
353 356
                elif el.text in ('False', 'True'):  # bools
354 357
                    setattr(self, attribute, el.text == 'True')
355 358
                elif type(getattr(self, attribute)) is int:
356
-