api: add new nominatim_reverse_zoom_level site option (#18786)
This commit is contained in:
parent
726ee066a1
commit
5cad6868d1
|
@ -1,5 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from StringIO import StringIO
|
||||
import pytest
|
||||
import json
|
||||
import shutil
|
||||
|
@ -7,6 +8,7 @@ import os
|
|||
import hmac
|
||||
import base64
|
||||
import hashlib
|
||||
import mock
|
||||
import urllib
|
||||
import urlparse
|
||||
import datetime
|
||||
|
@ -1820,3 +1822,22 @@ def test_get_secret_and_orig(no_request_pub):
|
|||
secret, orig = get_secret_and_orig('https://api.example.com/endpoint/')
|
||||
assert secret == '1234'
|
||||
assert orig == 'example.net'
|
||||
|
||||
def test_reverse_geocoding(pub):
|
||||
with mock.patch('urllib2.urlopen') as urlopen:
|
||||
urlopen.side_effect = lambda *args: StringIO('xxx')
|
||||
get_app(pub).get('/api/reverse-geocoding', status=400)
|
||||
resp = get_app(pub).get('/api/reverse-geocoding?lat=0&lon=0')
|
||||
assert resp.body == 'xxx'
|
||||
assert urlopen.call_args[0][0] == 'http://nominatim.openstreetmap.org/reverse?format=json&zoom=18&addressdetails=1&lat=0&lon=0&accept-language=en'
|
||||
|
||||
pub.site_options.add_section('options')
|
||||
pub.site_options.set('options', 'nominatim_reverse_zoom_level', '16')
|
||||
pub.site_options.write(open(os.path.join(pub.app_dir, 'site-options.cfg'), 'w'))
|
||||
resp = get_app(pub).get('/api/reverse-geocoding?lat=0&lon=0')
|
||||
assert urlopen.call_args[0][0] == 'http://nominatim.openstreetmap.org/reverse?format=json&zoom=16&addressdetails=1&lat=0&lon=0&accept-language=en'
|
||||
|
||||
pub.site_options.set('options', 'nominatim_key', 'KEY')
|
||||
pub.site_options.write(open(os.path.join(pub.app_dir, 'site-options.cfg'), 'w'))
|
||||
resp = get_app(pub).get('/api/reverse-geocoding?lat=0&lon=0')
|
||||
assert urlopen.call_args[0][0] == 'http://nominatim.openstreetmap.org/reverse?format=json&zoom=16&addressdetails=1&lat=0&lon=0&accept-language=en&key=KEY'
|
||||
|
|
|
@ -657,8 +657,11 @@ class ApiDirectory(Directory):
|
|||
nominatim_url = get_publisher().get_site_option('nominatim_url')
|
||||
if not nominatim_url:
|
||||
nominatim_url = 'http://nominatim.openstreetmap.org'
|
||||
nominatim_reverse_zoom_level = get_publisher().get_site_option(
|
||||
'nominatim_reverse_zoom_level') or 18
|
||||
get_response().set_content_type('application/json')
|
||||
url = '%s/reverse?format=json&zoom=18&addressdetails=1&lat=%s&lon=%s' % (nominatim_url, lat, lon)
|
||||
url = '%s/reverse?format=json&zoom=%s&addressdetails=1&lat=%s&lon=%s' % (
|
||||
nominatim_url, nominatim_reverse_zoom_level, lat, lon)
|
||||
url += '&accept-language=%s' % (get_publisher().get_site_language() or 'en')
|
||||
if get_publisher().get_site_option('nominatim_key'):
|
||||
url += '&key=' + get_publisher().get_site_option('nominatim_key')
|
||||
|
|
Loading…
Reference in New Issue