Add route heat colouring and detailed running analytics

This commit is contained in:
Peter Stockings
2026-10-01 18:43:33 +10:00
parent e37569ad09
commit 24c7fc2c6a
11 changed files with 526 additions and 31 deletions
+33
View File
@@ -223,3 +223,36 @@ def test_real_cache_import_compatibility_without_persisting_user_data(tmp_path):
for row in db.session.scalars(db.select(Activity)):
assert row.distance_m >= 0 and row.duration_s >= 0
assert row.visibility == "private"
def test_refresh_preserves_sharing_and_converts_running_units(app):
from app.services import activity_from_fit
doc = {
"session": [{"sport": "running", "start_time": "2026-09-30T10:00:00Z"}],
"record": [
{
"timestamp": "2026-09-30T10:00:00Z",
"cadence": 80,
"fractional_cadence": 0.5,
"step_length": 1100,
"vertical_oscillation": 85,
"stance_time": 250,
"power": 300,
}
],
}
with app.app_context():
activity = db.session.get(Activity, 1)
activity.title = "My chosen title"
activity.visibility = "friends"
result = activity_from_fit(1, "test:1", [doc], refresh=True)
db.session.commit()
assert result.id == 1
assert result.title == "My chosen title"
assert result.visibility == "friends"
assert result.samples[0]["cadence"] == 161
assert result.samples[0]["stride_length"] == 1.1
assert result.samples[0]["vertical_oscillation"] == 8.5
assert result.samples[0]["ground_contact"] == 250
assert result.samples[0]["power"] == 300