Spaces:
Running
Running
import json | |
from unittest.mock import MagicMock, patch | |
from surf_spot_finder.tools import openstreetmap | |
def test_get_area_lat_lon(): | |
with patch("requests.get") as mock_get: | |
mock_response = MagicMock() | |
mock_response.status_code = 200 | |
mock_response.content.decode.return_value = json.dumps( | |
[{"lat": "40.0", "lon": "-3.0"}] | |
) | |
mock_get.return_value = mock_response | |
lat, lon = openstreetmap.get_area_lat_lon("Madrid") | |
assert lat == "40.0" | |
assert lon == "-3.0" | |
def test_driving_hours_to_meters(): | |
assert openstreetmap.driving_hours_to_meters(1) == 70000 | |
def test_get_lat_lon_center(): | |
bounds = {"minlat": 40.0, "minlon": -3.0, "maxlat": 41.0, "maxlon": -2.0} | |
lat, lon = openstreetmap.get_lat_lon_center(bounds) | |
assert lat == 40.5 | |
assert lon == -2.5 | |
def test_get_surfing_spots(): | |
with patch("requests.get") as mock_get: | |
mock_response = MagicMock() | |
mock_response.status_code = 200 | |
mock_response.json.return_value = { | |
"elements": [ | |
{ | |
"tags": {"name": "Surf Spot 1", "sport": "surfing"}, | |
"bounds": { | |
"minlat": 40.0, | |
"minlon": -3.0, | |
"maxlat": 40.1, | |
"maxlon": -2.9, | |
}, | |
}, | |
{ | |
"tags": {"name": "Beach 2", "sport": "swimming"}, | |
"bounds": { | |
"minlat": 41.0, | |
"minlon": -4.0, | |
"maxlat": 41.1, | |
"maxlon": -3.9, | |
}, | |
}, | |
{ | |
"tags": {"name": "Surf Spot 3", "sport": "surfing"}, | |
"bounds": { | |
"minlat": 42.0, | |
"minlon": -5.0, | |
"maxlat": 42.1, | |
"maxlon": -4.9, | |
}, | |
}, | |
] | |
} | |
mock_get.return_value = mock_response | |
results = openstreetmap.get_surfing_spots(lat=40.5, lon=-3.5, radius=10000) | |
assert len(results) == 2 | |
assert results[0][0] == "Surf Spot 1" | |
assert results[0][1] == (40.05, -2.95) | |
assert results[1][0] == "Surf Spot 3" | |
assert results[1][1] == (42.05, -4.95) | |