This commit is contained in:
2026-06-12 05:48:30 -04:00
parent 9d91ac8ebc
commit 64a5ab4b7f
37 changed files with 4530 additions and 407 deletions

View File

@@ -0,0 +1,65 @@
"""Tests for the `run_sync` orchestrator in `openrun.ingest.garmin_api`.
`run_sync` is the auth-free body shared by the CLI and the web "Sync now"
button. We stub every network-touching sub-sync so the test verifies only the
orchestration contract: which steps run, what the summary holds, that progress
is streamed, and that `last_sync_utc` is recorded.
"""
from __future__ import annotations
import openrun.ingest.garmin_api as g
from openrun.db import get_state
def _stub_subsyncs(monkeypatch, tmp_path):
monkeypatch.setattr(g, "sync_activities", lambda conn, **kw: 3)
monkeypatch.setattr(g, "backfill_fits", lambda conn, **kw: 2)
monkeypatch.setattr(g, "_fit_dir", lambda: tmp_path)
for name in (
"sync_steps", "sync_sleep", "sync_stress", "sync_hrv",
"sync_intensity_minutes", "sync_resting_hr", "sync_body_battery",
):
monkeypatch.setattr(g, name, lambda conn, end, period: 1)
def test_run_sync_default_pass(tmp_conn, tmp_path, monkeypatch) -> None:
_stub_subsyncs(monkeypatch, tmp_path)
msgs: list[str] = []
summary = g.run_sync(tmp_conn, progress=msgs.append)
assert summary["activities"] == 3
assert "fit_backfill" not in summary # off by default
assert summary["steps"] == 1 and summary["body battery"] == 1
assert any("activities" in m for m in msgs)
assert get_state(tmp_conn, "last_sync_utc") is not None
def test_run_sync_includes_backfill_when_requested(tmp_conn, tmp_path, monkeypatch) -> None:
_stub_subsyncs(monkeypatch, tmp_path)
summary = g.run_sync(tmp_conn, fit_backfill=True, progress=lambda _m: None)
assert summary["fit_backfill"] == 2
def test_run_sync_skip_activities(tmp_conn, tmp_path, monkeypatch) -> None:
_stub_subsyncs(monkeypatch, tmp_path)
# If activities ran, the stub would put a key in the summary — assert it didn't.
summary = g.run_sync(tmp_conn, skip_activities=True, progress=lambda _m: None)
assert "activities" not in summary
assert summary["HRV"] == 1 # wellness still runs
def test_run_sync_forwards_fit_flag(tmp_conn, tmp_path, monkeypatch) -> None:
seen: dict = {}
monkeypatch.setattr(g, "sync_activities", lambda conn, **kw: seen.update(kw) or 0)
monkeypatch.setattr(g, "_fit_dir", lambda: tmp_path)
for name in (
"sync_steps", "sync_sleep", "sync_stress", "sync_hrv",
"sync_intensity_minutes", "sync_resting_hr", "sync_body_battery",
):
monkeypatch.setattr(g, name, lambda conn, end, period: 0)
g.run_sync(tmp_conn, fetch_fit=False, full=True, progress=lambda _m: None)
assert seen["fetch_fit"] is False
assert seen["full"] is True