From 4e816ba69d2a4cd1bdc399fcdbaf595a7fe61a59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Fri, 24 Mar 2017 16:52:04 +0100 Subject: [PATCH] workflow: do not fail geolocating None as address (#15624) --- tests/test_workflows.py | 6 ++++++ wcs/wf/geolocate.py | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/tests/test_workflows.py b/tests/test_workflows.py index 1e948382..bb2eefb6 100644 --- a/tests/test_workflows.py +++ b/tests/test_workflows.py @@ -1628,6 +1628,12 @@ def test_geolocate_address(pub): item.perform(formdata) assert formdata.geolocations == {} + # check for None + item.address_string = '=None' + formdata.geolocations = None + item.perform(formdata) + assert formdata.geolocations == {} + # check for nominatim server error formdata.geolocations = None with mock.patch('wcs.wf.geolocate.http_get_page') as http_get_page: diff --git a/wcs/wf/geolocate.py b/wcs/wf/geolocate.py index cde5b423..b83b73fa 100644 --- a/wcs/wf/geolocate.py +++ b/wcs/wf/geolocate.py @@ -112,6 +112,10 @@ class GeolocateWorkflowStatusItem(WorkflowStatusItem): get_logger().error('error in template for address string [%r]', e) return + if not address: + get_logger().error('error determining address') + return + url = '%s/search?q=%s&format=json' % (nominatim_url, urllib2.quote(address)) url += '&accept-language=%s' % (get_publisher().get_site_language() or 'en') if get_publisher().get_site_option('nominatim_key'): -- 2.11.0