Files
2026-05-24 21:53:04 +03:00

68 lines
2.0 KiB
Python

"""测试常量 (const.py)。"""
from __future__ import annotations
from mi_fitness.const import (
ALL_SHARED_DATA_TYPES,
HEALTH_API_BASE,
RELATIVES_AGGREGATED_DATA_PATH,
RELATIVES_DELETE_PATH,
RELATIVES_FITNESS_DATA_PATH,
RELATIVES_GET_APPLIED_SHARED_TYPES_PATH,
RELATIVES_GET_FAMILY_MEMBER_PATH,
RELATIVES_GET_INVITE_ID_PATH,
RELATIVES_GET_SHARED_TYPES_PATH,
RELATIVES_GET_TOPIC_SUBS_PATH,
RELATIVES_LATEST_DATA_PATH,
RELATIVES_LIST_PATH,
RELATIVES_SEND_INVITE_PATH,
RELATIVES_VERIFY_USER_PATH,
VERIFY_TYPE_XIAOMI_ID,
)
class TestAPIEndpoints:
"""API 端点常量测试。"""
def test_base_url_is_https(self) -> None:
assert HEALTH_API_BASE.startswith("https://")
def test_all_paths_start_with_slash(self) -> None:
paths = [
RELATIVES_LIST_PATH,
RELATIVES_LATEST_DATA_PATH,
RELATIVES_AGGREGATED_DATA_PATH,
RELATIVES_FITNESS_DATA_PATH,
RELATIVES_VERIFY_USER_PATH,
RELATIVES_SEND_INVITE_PATH,
RELATIVES_DELETE_PATH,
RELATIVES_GET_SHARED_TYPES_PATH,
RELATIVES_GET_APPLIED_SHARED_TYPES_PATH,
RELATIVES_GET_FAMILY_MEMBER_PATH,
RELATIVES_GET_INVITE_ID_PATH,
RELATIVES_GET_TOPIC_SUBS_PATH,
]
for path in paths:
assert path.startswith(("/app/v1/relatives/", "/app/v1/data/")), f"{path} API 路径前缀不正确"
class TestSharedDataTypes:
"""共享数据类型常量测试。"""
def test_has_10_types(self) -> None:
assert len(ALL_SHARED_DATA_TYPES) == 10
def test_contains_core_types(self) -> None:
for key in ["heart_rate", "sleep", "steps", "weight", "spo2"]:
assert key in ALL_SHARED_DATA_TYPES, f"缺少 {key}"
def test_no_duplicates(self) -> None:
assert len(ALL_SHARED_DATA_TYPES) == len(set(ALL_SHARED_DATA_TYPES))
class TestVerifyTypes:
"""验证类型常量测试。"""
def test_values(self) -> None:
assert VERIFY_TYPE_XIAOMI_ID == 1