Projet

Général

Profil

0001-geolocation-record-LoggedError-on-normalize-error-41.patch

Lauréline Guérin, 08 janvier 2021 15:37

Télécharger (2,54 ko)

Voir les différences:

Subject: [PATCH] geolocation: record LoggedError on normalize error (#41614)

 tests/test_workflows.py | 18 ++++++++++++++++--
 wcs/wf/geolocate.py     |  2 +-
 2 files changed, 17 insertions(+), 3 deletions(-)
tests/test_workflows.py
3099 3099
    assert formdata.geolocations == {}
3100 3100

  
3101 3101

  
3102
def test_geolocate_map(pub):
3102
def test_geolocate_map(two_pubs):
3103
    if two_pubs.is_using_postgresql():
3104
        two_pubs.loggederror_class.wipe()
3103 3105
    formdef = FormDef()
3104 3106
    formdef.name = 'baz'
3105 3107
    formdef.geolocations = {'base': 'bla'}
......
3112 3114
    formdata.data = {'2': '48.8337085;2.3233693'}
3113 3115
    formdata.just_created()
3114 3116
    formdata.store()
3115
    pub.substitutions.feed(formdata)
3117
    two_pubs.substitutions.feed(formdata)
3116 3118

  
3117 3119
    item = GeolocateWorkflowStatusItem()
3118 3120
    item.method = 'map_variable'
......
3128 3130
    item.perform(formdata)
3129 3131
    assert formdata.geolocations == {}
3130 3132

  
3133
    # invalid data
3134
    formdata.geolocations = None
3135
    formdata.data = {'2': '48.8337085'}
3136
    item.map_variable = '=form_var_map'
3137
    if two_pubs.is_using_postgresql():
3138
        assert two_pubs.loggederror_class.count() == 1
3139
        logged_error = two_pubs.loggederror_class.select()[0]
3140
        assert logged_error.summary == 'error geolocating from map variable'
3141
        assert logged_error.formdata_id == str(formdata.id)
3142
        assert logged_error.exception_class == 'ValueError'
3143
        assert logged_error.exception_message == 'not enough values to unpack (expected 2, got 1)'
3144

  
3131 3145

  
3132 3146
def test_geolocate_overwrite(pub):
3133 3147
    formdef = FormDef()
wcs/wf/geolocate.py
157 157
            lat, lon = str(value).split(';')
158 158
            lat_lon = normalize_geolocation({'lon': lon, 'lat': lat})
159 159
        except Exception as e:
160
            get_logger().error('error geolocating from map variable [%r]', e)
160
            get_publisher().record_error(_('error geolocating from map variable'), formdata=formdata, exception=e)
161 161
            return
162 162

  
163 163
        return lat_lon
164
-