#!/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()