rabukasim / tools /verify /test_api_endpoints.py
trioskosmos's picture
chore: remove large files for HF Space
9bd4ce5
import requests
BASE_URL = "http://127.0.0.1:8000"
def test_endpoint(method, endpoint, payload=None):
url = f"{BASE_URL}{endpoint}"
try:
if method == "GET":
print(f"GET {endpoint}...", end=" ")
res = requests.get(url)
else:
print(f"POST {endpoint} with {payload}...", end=" ")
res = requests.post(url, json=payload)
print(f"Status: {res.status_code}")
if res.status_code != 200:
print(f"ERROR BODY: {res.text}")
return None
return res.json()
except Exception as e:
print(f"EXCEPTION: {e}")
return None
def verify():
print(f"--- Verifying Loveca Launcher API at {BASE_URL} ---")
# 1. List Rooms
test_endpoint("GET", "/api/rooms/list")
# 2. Create Room
# Using 'pve' mode
room_data = test_endpoint("POST", "/api/rooms/create", {"mode": "pve"})
if not room_data or not room_data.get("success"):
print("FAIL: Could not create room.")
return
room_id = room_data["room_id"]
print(f"SUCCESS: Created Room {room_id}")
# 3. Join Room
join_data = test_endpoint("POST", "/api/rooms/join", {"room_id": room_id})
if join_data and join_data.get("success"):
print("SUCCESS: Joined Room")
else:
print("FAIL: Could not join room")
# 4. Get Decks
decks_data = test_endpoint("GET", "/api/get_decks")
if decks_data and decks_data.get("success"):
decks = decks_data.get("decks", [])
print(f"SUCCESS: Found {len(decks)} decks.")
if len(decks) == 0:
print("WARNING: No decks found! This explains why AI decks are missing.")
else:
print(f"Deck IDs: {[d.get('id') for d in decks]}")
else:
print("FAIL: Could not get decks")
# 5. Check for unknown endpoints mentioned by user
# "unknown api when trying to start a game"
# User might be hitting /api/set_deck or similar.
# We can't easily test set_deck without a valid session token from the join, but we can check if it 404s.
# We need a session token.
token = room_data.get("session")
if token:
# Mock set_deck call
# header X-Room-Id, X-Session-Token
url = f"{BASE_URL}/api/set_deck"
headers = {"X-Room-Id": room_id, "X-Session-Token": token}
# We need a valid deck body, but let's just see if it is 404 or 400.
print("POST /api/set_deck (Check existence)...", end=" ")
res = requests.post(url, headers=headers, json={})
print(f"Status: {res.status_code}")
if res.status_code == 404:
print("FAIL: /api/set_deck is 404 Not Found")
else:
print("SUCCESS: /api/set_deck exists (got non-404)")
if __name__ == "__main__":
verify()