Files
strava-mcp-server/tests/test_strava.py
T

40 lines
1.4 KiB
Python

import asyncio
import os
from strava_client import StravaClient
from dotenv import load_dotenv
async def test_connection():
load_dotenv()
client_id = os.getenv("STRAVA_CLIENT_ID")
client_secret = os.getenv("STRAVA_CLIENT_SECRET")
refresh_token = os.getenv("STRAVA_REFRESH_TOKEN")
if not all([client_id, client_secret, refresh_token]):
print("❌ Error: Missing Strava credentials in .env file.")
print("Please ensure STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET, and STRAVA_REFRESH_TOKEN are set.")
return
client = StravaClient()
print("Testing Strava connection...")
try:
athlete = await client.get_athlete()
print(f"✅ Success! Connected as {athlete.get('firstname')} {athlete.get('lastname')}")
print(f"Athlete ID: {athlete.get('id')}")
print("\nFetching recent activities...")
activities = await client.list_activities(limit=3)
print(f"Found {len(activities)} recent activities:")
for a in activities:
print(f"- {a['name']} ({a['type']}) on {a['start_date']}")
except Exception as e:
print(f"❌ Connection failed: {str(e)}")
if "401" in str(e):
print("Hint: This is likely a scope issue. Your token needs 'activity:read' permission.")
print("Run: uv run get_token.py to re-authorize with the correct scopes.")
if __name__ == "__main__":
asyncio.run(test_connection())