53 lines
2.2 KiB
Python
Executable File
53 lines
2.2 KiB
Python
Executable File
# /app/tests_internal/diagnostics/check_api.py
|
|
import requests
|
|
import json
|
|
|
|
# THOUGHT PROCESS:
|
|
# 1. Az API konténeren belül futva a localhost:8000 a célpont.
|
|
# 2. Csak olyan végpontokat tesztelünk, amik szerepelnek a v1/api.py-ben.
|
|
# 3. A 401/405 kódokat elfogadjuk 'OK'-nak, mert azt jelentik, hogy a szerver
|
|
# látja az útvonalat, csak hitelesítést vagy más HTTP metódust vár.
|
|
# 4. A 404 azt jelenti, hogy a router nincs jól regisztrálva.
|
|
# 5. A 500 azt jelenti, hogy a kód elszállt (pl. AttributeError a main.py-ban).
|
|
|
|
base_url = 'http://localhost:8000'
|
|
|
|
# A valós, api.py-ben definiált útvonalak:
|
|
tests = [
|
|
('Health Check', '/health', 'GET'),
|
|
('Auth Login (Entry)', '/api/v1/auth/login', 'POST'), # Létezik
|
|
('Catalog Makes', '/api/v1/catalog/makes', 'GET'), # Létezik
|
|
('Service Hunt', '/api/v1/services/hunt', 'POST'), # Létezik
|
|
('Admin Health', '/api/v1/admin/health-monitor', 'GET'), # Létezik
|
|
('My Organizations', '/api/v1/organizations/my', 'GET') # Létezik
|
|
]
|
|
|
|
print('\n--- 🧪 API VÉGPONT DIAGNOSZTIKA ---')
|
|
print(f"{'Végpont neve':20} | {'Útvonal':25} | {'Állapot'}")
|
|
print("-" * 65)
|
|
|
|
for name, endpoint, method in tests:
|
|
try:
|
|
url = f"{base_url}{endpoint}"
|
|
# A POST hívásokhoz üres adatot küldünk, hogy ne 422-t kapjunk a hiányzó body miatt
|
|
resp = requests.request(method, url, timeout=5, json={})
|
|
|
|
# Logika:
|
|
# 200: Tökéletes
|
|
# 401: Él, de login kell (JÓ)
|
|
# 405: Él, de pl. GET helyett POST kell (JÓ - az útvonal létezik)
|
|
# 422: Él, de hiányoznak a küldött adatok (JÓ - a validáció működik)
|
|
|
|
if resp.status_code in [200, 401, 405, 422]:
|
|
status_msg = f"✅ OK ({resp.status_code})"
|
|
elif resp.status_code == 404:
|
|
status_msg = f"❌ HIÁNYZIK (404)"
|
|
else:
|
|
status_msg = f"🔥 SZERVER HIBA ({resp.status_code})"
|
|
|
|
print(f"{name:20} | {endpoint:25} | {status_msg}")
|
|
|
|
except Exception as e:
|
|
print(f"{name:20} | {endpoint:25} | 🔌 ELÉRHETETLEN")
|
|
|
|
print("\n💡 Megjegyzés: Ha a Health Check továbbra is 500, az a main.py-ban lévő elírás miatt van.") |