#!/usr/bin/env python3
import asyncio
import sys
import os
# プロジェクトルートをパスに追加
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
from src.main import get_user_attended_events, list_available_groups
async def test_user_attended_events():
"""ユーザーの参加イベント取得テスト"""
print("=== ユーザー参加イベントテスト ===\n")
test_user = input("テスト用ユーザー名を入力(Enter でスキップ): ").strip()
if not test_user:
print("ユーザーテストをスキップします")
return
print(f"{test_user} の参加イベント検索...")
try:
result = await get_user_attended_events(test_user, count=5)
if "error" in result:
print(f"エラー: {result['error']}")
else:
print(f"取得成功: {result.get('results_returned', 0)}件")
events = result.get('events', [])
for i, event in enumerate(events, 1):
title = event.get('title', '不明')
started_at = event.get('started_at', '')
print(f" {i}. {title}")
print(f" 開催日: {started_at}")
except Exception as e:
print(f"ユーザー検索エラー: {e}")
async def test_group_functionality():
"""グループ機能のテスト"""
print("\n=== グループ機能テスト ===\n")
try:
print("利用可能なグループ一覧を取得中...")
groups_result = await list_available_groups()
if "error" in groups_result:
print(f"エラー: {groups_result['error']}")
return
print("グループ一覧取得成功!")
print(f"登録グループ数: {groups_result['total_count']}")
print("利用可能なグループ:")
for group_name in list(groups_result['available_groups'])[:10]:
group_id = groups_result['group_mapping'].get(group_name, 'N/A')
print(f" - {group_name} (ID: {group_id})")
except Exception as e:
print(f"グループ機能テストエラー: {e}")
async def run_user_tests():
"""全てのユーザー関連テストを実行"""
print("CONNPASS MCP Server - ユーザー関連テスト\n")
print("="*50 + "\n")
await test_group_functionality()
await asyncio.sleep(1.5) # レート制限対応
await test_user_attended_events()
print("\nユーザーテスト完了!")
if __name__ == "__main__":
try:
asyncio.run(run_user_tests())
except KeyboardInterrupt:
print("\nテスト中断")
except Exception as e:
print(f"テストエラー: {e}")