base adresse: pass lat/lon when geocoding (#33098)
This commit is contained in:
parent
d810f6799a
commit
f424478578
|
@ -34,7 +34,7 @@ class BaseAdresse(BaseResource):
|
|||
verbose_name = _('Base Adresse Web Service')
|
||||
|
||||
@endpoint(pattern='(?P<q>.+)?$')
|
||||
def search(self, request, q, zipcode='', **kwargs):
|
||||
def search(self, request, q, zipcode='', lat=None, lon=None, **kwargs):
|
||||
if kwargs.get('format', 'json') != 'json':
|
||||
raise NotImplementedError()
|
||||
|
||||
|
@ -46,6 +46,9 @@ class BaseAdresse(BaseResource):
|
|||
query_args = {'q': q, 'limit': 1}
|
||||
if zipcode:
|
||||
query_args['postcode'] = zipcode
|
||||
if lat and lon:
|
||||
query_args['lat'] = lat
|
||||
query_args['lon'] = lon
|
||||
query = urlencode(query_args)
|
||||
url = urlparse.urlunparse((scheme, netloc, path, params, query, fragment))
|
||||
|
||||
|
|
|
@ -110,6 +110,13 @@ def test_base_adresse_search_qs_zipcode(app, base_adresse, mock_api_adresse_data
|
|||
assert 'display_name' in resp.json[0]
|
||||
|
||||
|
||||
@mock.patch('passerelle.utils.Request.get')
|
||||
def test_base_adresse_search_qs_lat_lon(mocked_get, app, base_adresse):
|
||||
resp = app.get('/base-adresse/%s/search?q=plop&lat=0&lon=1' % base_adresse.slug)
|
||||
assert 'lat=0' in mocked_get.call_args[0][0]
|
||||
assert 'lon=1' in mocked_get.call_args[0][0]
|
||||
|
||||
|
||||
def test_base_adresse_search_qs_empty(app, base_adresse, mock_api_adresse_data_gouv_fr_search):
|
||||
resp = app.get('/base-adresse/%s/search?q=' % base_adresse.slug)
|
||||
assert len(resp.json) == 0
|
||||
|
|
Loading…
Reference in New Issue