mirror of
https://github.com/This-weiyuqing/mi-fitness-health.git
synced 2026-10-18 03:03:49 +08:00
Package the standalone Mi Fitness MCP with clearer public docs, release metadata, CI, and safer local repository hygiene so it is ready to publish without secrets or work identity leakage.
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
from datetime import datetime
|
|
|
|
from mi_fitness_mcp.models import BodyMeasurement, DailyActivity, HeartRateSample
|
|
from mi_fitness_mcp.services.query_service import QueryService
|
|
from mi_fitness_mcp.storage import Database
|
|
|
|
|
|
def test_storage_and_query_roundtrip(tmp_path):
|
|
db = Database(tmp_path / "test.db")
|
|
|
|
activity = DailyActivity(
|
|
id="a1",
|
|
provider="mi_fitness",
|
|
source_type="cloud_session",
|
|
user_id="u1",
|
|
date="2025-04-01",
|
|
steps=1000,
|
|
distance_m=800,
|
|
active_kcal=50,
|
|
)
|
|
hr = HeartRateSample(
|
|
id="hr1",
|
|
provider="mi_fitness",
|
|
source_type="cloud_session",
|
|
user_id="u1",
|
|
timestamp=datetime(2025, 4, 1, 12, 0, 0),
|
|
bpm=70,
|
|
sample_type="passive",
|
|
)
|
|
body = BodyMeasurement(
|
|
id="w1",
|
|
provider="mi_fitness",
|
|
source_type="cloud_session",
|
|
user_id="u1",
|
|
timestamp=datetime(2025, 4, 1, 7, 0, 0),
|
|
weight_kg=101.5,
|
|
bmi=28.0,
|
|
)
|
|
|
|
db.insert_daily_activity(activity)
|
|
db.insert_heart_rate_sample(hr)
|
|
db.insert_body_measurement(body)
|
|
|
|
query = QueryService(db, "u1")
|
|
assert len(query.get_daily_summaries("2025-04-01", "2025-04-01")) == 1
|
|
assert len(query.get_heart_rate_samples("2025-04-01", "2025-04-01")) == 1
|
|
assert len(query.get_body_measurements("2025-04-01", "2025-04-01")) == 1
|