Projet

Général

Profil

0002-misc-do-not-crash-inspect-on-invalid-map-values-5756.patch

Frédéric Péters, 23 janvier 2022 10:06

Télécharger (2,18 ko)

Voir les différences:

Subject: [PATCH 2/3] misc: do not crash inspect on invalid map values (#57566)

 tests/backoffice_pages/test_form_inspect.py | 5 +++++
 wcs/variables.py                            | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)
tests/backoffice_pages/test_form_inspect.py
667 667
    formdef.fields = [
668 668
        fields.MapField(id='1', label='1st field', type='map', varname='map1'),
669 669
        fields.MapField(id='2', label='2nd field', type='map', varname='map2'),
670
        fields.MapField(id='3', label='3rd field', type='map', varname='map3'),
670 671
    ]
671 672
    formdef.workflow_roles = {'_receiver': 1}
672 673
    formdef.store()
......
676 677
    formdata.data = {
677 678
        '1': '1.2345;6.789',  # valid value
678 679
        '2': None,  # empty value
680
        '3': 'XXX;YYY',  # invalid value
679 681
    }
680 682
    formdata.jump_status('new')
681 683
    formdata.store()
......
688 690
    assert resp.pyquery('[title="form_var_map2"]')
689 691
    assert not resp.pyquery('[title="form_var_map2_lat"]')
690 692
    assert not resp.pyquery('[title="form_var_map2_lon"]')
693
    assert resp.pyquery('[title="form_var_map3"]')
694
    assert not resp.pyquery('[title="form_var_map3_lat"]')
695
    assert not resp.pyquery('[title="form_var_map3_lon"]')
wcs/variables.py
1077 1077
        return self._data.get(self._field.id).split(*args, **kwargs)
1078 1078

  
1079 1079
    def inspect_keys(self):
1080
        return ['lat', 'lon']
1080
        return ['lat', 'lon'] if self.get_field_var_value() else []
1081 1081

  
1082 1082

  
1083 1083
class LazyFieldVarItems(LazyFieldVarStructured):
1084
-