test_connection.py•2.74 kB
#!/usr/bin/env python
"""
簡易的な接続テストスクリプト
Evernote APIへの接続とノートブック一覧取得をテストします。
"""
import asyncio
import os
import sys
from dotenv import load_dotenv
# プロジェクトのsrcディレクトリをパスに追加
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "src"))
from mcp_notes_connector.evernote_client import EvernoteClient
async def main():
"""メイン関数"""
# .envファイルから環境変数を読み込み
load_dotenv()
token = os.getenv("EVERNOTE_TOKEN")
sandbox = os.getenv("EVERNOTE_SANDBOX", "false").lower() == "true"
if not token:
print("❌ エラー: EVERNOTE_TOKEN環境変数が設定されていません")
print("\n.envファイルを作成し、以下を設定してください:")
print("EVERNOTE_TOKEN=your_token_here")
print("EVERNOTE_SANDBOX=true")
return 1
print("🔍 Evernote API接続テスト")
print(f" 環境: {'サンドボックス' if sandbox else '本番'}")
print(f" トークン: {token[:10]}...{token[-4:]}")
print()
try:
# クライアントの初期化
print("📦 EvernoteClientを初期化中...")
client = EvernoteClient(token=token, sandbox=sandbox)
print("✅ 初期化成功\n")
# ノートブック一覧を取得
print("📚 ノートブック一覧を取得中...")
notebooks = await client.list_notebooks()
print(f"✅ 取得成功: {len(notebooks)}件のノートブックが見つかりました\n")
# 結果を表示
if notebooks:
print("=" * 60)
print("📋 ノートブック一覧:")
print("=" * 60)
for i, nb in enumerate(notebooks, 1):
print(f"\n{i}. {nb['name']}")
print(f" GUID: {nb['guid']}")
if nb.get("stack"):
print(f" スタック: {nb['stack']}")
if nb.get("default_notebook"):
print(" ⭐ デフォルトノートブック")
print("=" * 60)
else:
print("⚠️ ノートブックが見つかりませんでした")
print("\n✅ すべてのテストが成功しました!")
return 0
except ValueError as e:
print(f"❌ ユーザーエラー: {e}")
return 1
except RuntimeError as e:
print(f"❌ システムエラー: {e}")
return 1
except Exception as e:
print(f"❌ 予期しないエラー: {e}")
import traceback
traceback.print_exc()
return 1
if __name__ == "__main__":
sys.exit(asyncio.run(main()))