Files
rogaining_srv/test_auto_start.py
2025-09-06 07:03:07 +09:00

110 lines
3.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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