api frame

This commit is contained in:
Deku
2026-03-25 02:04:52 -05:00
commit d12c7f00c6
10 changed files with 2397 additions and 0 deletions

56
test_api.py Normal file
View File

@@ -0,0 +1,56 @@
"""Quick test of all API endpoints."""
import httpx
import json
import time
BASE = "http://localhost:8000"
MASTER = "eJQV7hMfRTo-2j1f2c5po4vq4amD-F4nylHRtGPGkMU"
ADM = {"X-API-Key": MASTER}
def p(label, r):
print(f"\n=== {label} === [{r.status_code}]")
try:
print(json.dumps(r.json(), indent=2))
except Exception:
print(r.text)
# Health
p("HEALTH", httpx.get(f"{BASE}/health"))
# Create key
r = httpx.post(f"{BASE}/admin/keys", headers=ADM, json={
"owner": "test_client", "gateways": ["comwave", "comwave3"],
"request_limit": 100, "rate_per_minute": 10
})
p("CREATE KEY", r)
KEY = r.json()["api_key"]
CLI = {"X-API-Key": KEY}
# List keys
p("LIST KEYS", httpx.get(f"{BASE}/admin/keys", headers=ADM))
# Client usage
p("USAGE", httpx.get(f"{BASE}/api/usage", headers=CLI))
# Client gateways
p("GATEWAYS", httpx.get(f"{BASE}/api/gateways", headers=CLI))
# Client cooldown
p("COOLDOWN", httpx.get(f"{BASE}/api/cooldown", headers=CLI))
# Admin stats
p("STATS", httpx.get(f"{BASE}/admin/stats", headers=ADM))
# Security: bad key
p("BAD KEY", httpx.get(f"{BASE}/api/usage", headers={"X-API-Key": "fake"}))
# Security: no key
p("NO KEY", httpx.get(f"{BASE}/api/usage"))
# Security: wrong gateway
p("WRONG GW", httpx.post(f"{BASE}/api/check/fakegw", headers=CLI, json={"card": "4111111111111111|12|2025|123"}))
# Security: bad card format
p("BAD CARD", httpx.post(f"{BASE}/api/check/comwave", headers=CLI, json={"card": "not-a-card"}))
print("\n=== ALL ENDPOINT TESTS DONE ===")