feat: add get_devices, get_gear, and get_user_profile tools

This commit is contained in:
Christophe Vila
2026-05-17 19:51:54 +02:00
parent ccfdbbaa86
commit c0d6713c3e
2 changed files with 97 additions and 0 deletions

View File

@@ -247,3 +247,52 @@ def test_steps_and_stats_unauthenticated():
server._auth_state = "unauthenticated"
for fn in (server.get_steps, server.get_daily_stats):
assert "Not authenticated" in fn("2026-05-17")
def test_get_devices_success():
server._auth_state = "authenticated"
server._client = MagicMock()
server._client.get_devices.return_value = [
{"deviceId": "abc123", "productDisplayName": "Forerunner 965", "softwareVersion": "21.20"}
]
data = json.loads(server.get_devices())
assert data[0]["productDisplayName"] == "Forerunner 965"
server._client.get_devices.assert_called_once()
def test_get_devices_empty():
server._auth_state = "authenticated"
server._client = MagicMock()
server._client.get_devices.return_value = []
assert server.get_devices() == "No devices found."
def test_get_gear_success():
server._auth_state = "authenticated"
server._client = MagicMock()
server._client.display_name = "john.doe"
server._client.get_gear.return_value = [
{"gearPk": "shoe1", "customMakeModel": "Nike Pegasus", "totalDistance": 320000.0}
]
data = json.loads(server.get_gear())
assert data[0]["customMakeModel"] == "Nike Pegasus"
server._client.get_gear.assert_called_once_with("john.doe")
def test_get_user_profile_success():
server._auth_state = "authenticated"
server._client = MagicMock()
server._client.get_user_profile.return_value = {
"displayName": "john.doe",
"age": 35,
"weight": 75000.0,
}
data = json.loads(server.get_user_profile())
assert data["displayName"] == "john.doe"
server._client.get_user_profile.assert_called_once()
def test_gear_devices_profile_unauthenticated():
server._auth_state = "unauthenticated"
for fn in (server.get_devices, server.get_gear, server.get_user_profile):
assert "Not authenticated" in fn()