All checks were successful
continuous-integration/drone/push Build is passing
81 lines
2.7 KiB
Python
81 lines
2.7 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Простой тест для отладки Emergency API
|
|
"""
|
|
|
|
import asyncio
|
|
import httpx
|
|
import json
|
|
|
|
async def test_simple_emergency():
|
|
# Получаем JWT токен
|
|
async with httpx.AsyncClient() as client:
|
|
# Авторизация
|
|
login_data = {
|
|
"email": "shadow85@list.ru",
|
|
"password": "R0sebud1985"
|
|
}
|
|
|
|
print("🔐 Авторизация...")
|
|
response = await client.post(
|
|
"http://localhost:8000/api/v1/auth/login",
|
|
json=login_data,
|
|
headers={"Content-Type": "application/json"}
|
|
)
|
|
|
|
if response.status_code != 200:
|
|
print(f"❌ Ошибка авторизации: {response.status_code}")
|
|
print(f"Response: {response.text}")
|
|
return
|
|
|
|
auth_data = response.json()
|
|
jwt_token = auth_data.get("access_token")
|
|
print(f"✅ JWT токен получен: {jwt_token[:50]}...")
|
|
|
|
headers = {
|
|
"Authorization": f"Bearer {jwt_token}",
|
|
"Content-Type": "application/json"
|
|
}
|
|
|
|
# Тест health endpoint
|
|
print("\n🏥 Проверяем health endpoint...")
|
|
response = await client.get(
|
|
"http://localhost:8002/health",
|
|
headers=headers
|
|
)
|
|
print(f"Health status: {response.status_code} - {response.text}")
|
|
|
|
# Тест получения статистики
|
|
print("\n📊 Тестируем получение статистики...")
|
|
response = await client.get(
|
|
"http://localhost:8002/api/v1/stats",
|
|
headers=headers
|
|
)
|
|
print(f"Stats status: {response.status_code}")
|
|
if response.status_code == 200:
|
|
print(f"Stats: {response.text}")
|
|
else:
|
|
print(f"Error: {response.text}")
|
|
|
|
# Тест создания простого вызова
|
|
print("\n📞 Тестируем создание вызова...")
|
|
alert_data = {
|
|
"alert_type": "medical",
|
|
"latitude": 55.7558,
|
|
"longitude": 37.6176,
|
|
"description": "Тестовый вызов"
|
|
}
|
|
|
|
response = await client.post(
|
|
"http://localhost:8002/api/v1/alert",
|
|
json=alert_data,
|
|
headers=headers
|
|
)
|
|
print(f"Alert creation status: {response.status_code}")
|
|
if response.status_code in [200, 201]:
|
|
print(f"Alert created: {response.text}")
|
|
else:
|
|
print(f"Error: {response.text}")
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(test_simple_emergency()) |