diff --git a/test_auto_start.py b/test_auto_start.py new file mode 100644 index 0000000..fc4de98 --- /dev/null +++ b/test_auto_start.py @@ -0,0 +1,109 @@ +#!/usr/bin/env python3 +""" +自動スタート機能テストツール +大垣2509の宮だみー(ゼッケン9999)でチェックイン→自動スタート機能をテスト +""" + +import requests +import json +import time + +def test_auto_start_checkin(): + """自動スタート機能のテスト""" + + print("🚀 自動スタート機能テスト開始") + print("=" * 60) + + # テストデータ(大垣2509の宮だみー) + test_data = { + "event_code": "大垣2509", + "team_name": "宮だみー", + "cp_number": "1", # 最初のチェックポイント + "image": "data:image/jpeg;base64,auto_start_test", + "buy_flag": False + } + + print(f"📊 テストデータ:") + print(f" イベント: {test_data['event_code']}") + print(f" チーム: {test_data['team_name']}") + print(f" チェックポイント: {test_data['cp_number']}") + + # チェックインAPIを実行 + url = "http://localhost:8100/api/checkin_from_rogapp" + + print(f"\n🎯 チェックインAPI実行:") + print(f" URL: {url}") + print(f" Method: POST") + + try: + response = requests.post(url, json=test_data, timeout=10) + + print(f"\n📥 レスポンス:") + print(f" ステータス: HTTP {response.status_code}") + + # レスポンス内容を整形して表示 + try: + response_data = response.json() + print(f" 内容: {json.dumps(response_data, ensure_ascii=False, indent=2)}") + + # 成功判定 + if response.status_code == 200 and response_data.get('status') == 'OK': + print(f"\n✅ 自動スタート機能テスト成功!") + return True + else: + print(f"\n❌ 自動スタート機能テスト失敗") + return False + + except json.JSONDecodeError: + print(f" 内容: {response.text}") + return False + + except Exception as e: + print(f"\n❌ APIリクエストエラー: {e}") + return False + +def check_database_status(): + """データベースの状況確認""" + print(f"\n📊 データベース確認:") + print(f" 以下のSQLを実行して確認してください:") + print(f"") + print(f" -- 宮だみーのエントリー状況確認") + print(f" SELECT ") + print(f" en.id, en.zekken_number, t.team_name, ") + print(f" en.is_in_rog, en.rogaining_counted, en.start_time") + print(f" FROM rog_entry en") + print(f" JOIN rog_team t ON en.team_id = t.id") + print(f" JOIN rog_newevent2 e ON en.event_id = e.id") + print(f" WHERE en.zekken_number = 9999 AND e.event_code = 'ogaki2509';") + print(f"") + print(f" -- 宮だみーのGpsLogエントリー確認") + print(f" SELECT * FROM rog_gpslog ") + print(f" WHERE zekken_number = 9999 AND event_code = '大垣2509'") + print(f" ORDER BY serial_number;") + +def main(): + """メイン処理""" + print("🔧 自動スタート機能テストツール") + print("対象: 大垣2509 - 宮だみー(ゼッケン9999)") + print("=" * 60) + + # テスト実行 + success = test_auto_start_checkin() + + # データベース確認方法を表示 + check_database_status() + + # 結果サマリー + print(f"\n📋 テスト結果サマリー:") + print(f" 自動スタート機能: {'✅ 成功' if success else '❌ 失敗'}") + + if success: + print(f"\n🎉 自動スタート機能が正常に動作しています!") + print(f" これで、スマホアプリユーザーがスタート処理を忘れても、") + print(f" 最初のチェックイン時に自動的にスタートされます。") + else: + print(f"\n⚠️ 自動スタート機能に問題があります。") + print(f" ログを確認して問題を調査してください。") + +if __name__ == "__main__": + main()