Add geolocation tests
This commit is contained in:
parent
8f27a84571
commit
0ae9f3118a
|
@ -24,15 +24,7 @@ class GeoLocation:
|
||||||
self.prefer_english_names = prefer_english_names
|
self.prefer_english_names = prefer_english_names
|
||||||
self.timeout = timeout
|
self.timeout = timeout
|
||||||
|
|
||||||
def coordinates_by_name(self, name, db, timeout=options.default_timeout):
|
def coordinates_by_name(self, name, timeout=options.default_timeout):
|
||||||
# Try to get cached location first
|
|
||||||
cached_coordinates = db.get_location_coordinates(name)
|
|
||||||
if cached_coordinates is not None:
|
|
||||||
return {
|
|
||||||
'latitude': cached_coordinates[0],
|
|
||||||
'longitude': cached_coordinates[1],
|
|
||||||
}
|
|
||||||
|
|
||||||
# If the name is not cached then we go ahead with an API lookup
|
# If the name is not cached then we go ahead with an API lookup
|
||||||
geocoder = self.geocoder
|
geocoder = self.geocoder
|
||||||
if geocoder == 'Nominatim':
|
if geocoder == 'Nominatim':
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
from ordigi.geolocation import GeoLocation
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
class TestGeoLocation:
|
||||||
|
|
||||||
|
def setup_class(cls):
|
||||||
|
cls.loc = GeoLocation()
|
||||||
|
|
||||||
|
def test_coordinates_by_name(self):
|
||||||
|
coordinates = self.loc.coordinates_by_name('Sunnyvale, CA')
|
||||||
|
assert coordinates['latitude'] == 37.3688301
|
||||||
|
assert coordinates['longitude'] == -122.036349
|
||||||
|
|
||||||
|
def test_place_name(self):
|
||||||
|
place_name = self.loc.place_name(lat=37.368, lon=-122.03)
|
||||||
|
assert place_name['city'] == 'Sunnyvale', place_name
|
||||||
|
|
||||||
|
# Invalid lat/lon
|
||||||
|
with pytest.warns(UserWarning):
|
||||||
|
place_name = self.loc.place_name(lat=999, lon=999)
|
||||||
|
assert place_name == {'default': None}, place_name
|
Loading…
Reference in New Issue