110 lines
3.9 KiB
Python
110 lines
3.9 KiB
Python
#!/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()
|