generated from Grigo/AndroidTemplate
added local api
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
import core.elevation as elev
|
||||
|
||||
|
||||
class _FakeResponse:
|
||||
def __init__(self, payload):
|
||||
self._payload = payload
|
||||
|
||||
def raise_for_status(self):
|
||||
return None
|
||||
|
||||
def json(self):
|
||||
return self._payload
|
||||
|
||||
|
||||
class _FakeClient:
|
||||
def __init__(self, **kwargs):
|
||||
self.kwargs = kwargs
|
||||
|
||||
def __enter__(self):
|
||||
return self
|
||||
|
||||
def __exit__(self, *args):
|
||||
return False
|
||||
|
||||
def get(self, url, params=None):
|
||||
return _FakeResponse({"elevation": [152.0]})
|
||||
|
||||
|
||||
def test_probe_elevation_api_ok(monkeypatch):
|
||||
monkeypatch.setattr(elev, "_probe_checked_at", 0.0)
|
||||
monkeypatch.setattr(elev.httpx, "Client", _FakeClient)
|
||||
|
||||
status = elev.probe_elevation_api(force=True)
|
||||
|
||||
assert status["ok"] is True
|
||||
assert status["error"] is None
|
||||
|
||||
|
||||
def test_fetch_skips_when_unreachable(monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
elev,
|
||||
"probe_elevation_api",
|
||||
lambda force=False: {"ok": False, "url": elev.ELEVATION_API_URL, "error": "down"},
|
||||
)
|
||||
|
||||
vals = elev.fetch_elevations_batch([55.75], [37.62])
|
||||
|
||||
assert vals == [None]
|
||||
|
||||
|
||||
def test_build_profile_reports_unreachable(monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
elev,
|
||||
"probe_elevation_api",
|
||||
lambda force=False: {"ok": False, "url": elev.ELEVATION_API_URL, "error": "down"},
|
||||
)
|
||||
|
||||
profile = elev.build_elevation_profile(
|
||||
[{"lat": 55.75, "lon": 37.62}, {"lat": 55.76, "lon": 37.63}],
|
||||
10,
|
||||
)
|
||||
|
||||
assert profile["points"] == []
|
||||
assert "unreachable" in profile["api_error"]
|
||||
Reference in New Issue
Block a user