Files
chat/tests/test_auth_fix.py
Andrey K. Choi 3050e084fa
All checks were successful
continuous-integration/drone/push Build is passing
main functions commit
2025-10-19 19:50:00 +09:00

125 lines
5.1 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""
🔐 ТЕСТ СИСТЕМЫ АВТОРИЗАЦИИ
Проверяем работу авторизации после исправления SQLAlchemy проблем
"""
import requests
import json
BASE_URL = "http://localhost:8000" # API Gateway
def test_authentication_system():
"""Тестируем систему авторизации"""
print("🔐 ТЕСТИРОВАНИЕ СИСТЕМЫ АВТОРИЗАЦИИ")
print("=" * 60)
# Тест 1: Попытка входа с тестовыми данными
print("\n🧪 Тест 1: Вход в систему")
login_data = {
"email": "shadow85@list.ru",
"password": "R0sebud1985"
}
try:
print(f" 📝 Отправляем запрос авторизации: {login_data['email']}")
response = requests.post(
f"{BASE_URL}/api/v1/auth/login",
json=login_data,
timeout=10
)
print(f" 📊 Статус ответа: {response.status_code}")
if response.status_code == 200:
print(" ✅ УСПЕШНАЯ АВТОРИЗАЦИЯ!")
data = response.json()
token = data.get("access_token")
if token:
print(f" 🎫 Получен токен: {token[:50]}...")
return token
else:
print(" ⚠️ Токен не найден в ответе")
print(f" 📄 Ответ сервера: {response.text}")
elif response.status_code == 401:
print(" ❌ 401 Unauthorized - Неверные учетные данные")
print(f" 📄 Ответ сервера: {response.text}")
elif response.status_code == 500:
print(" 🚨 500 Server Error - ПРОБЛЕМА SQLAlchemy НЕ ИСПРАВЛЕНА!")
print(f" 📄 Ответ сервера: {response.text}")
else:
print(f" 🔸 Неожиданный код ответа: {response.status_code}")
print(f" 📄 Ответ сервера: {response.text}")
except requests.exceptions.ConnectionError:
print(" 💀 CONNECTION ERROR - Сервис не доступен")
return None
except Exception as e:
print(f" ⚡ ERROR: {str(e)}")
return None
# Тест 2: Проверка регистрации (если вход не удался)
print("\n🧪 Тест 2: Регистрация нового пользователя")
register_data = {
"email": "test@example.com",
"password": "TestPassword123",
"first_name": "Test",
"last_name": "User",
"phone": "+1234567890"
}
try:
print(f" 📝 Регистрируем пользователя: {register_data['email']}")
response = requests.post(
f"{BASE_URL}/api/v1/auth/register",
json=register_data,
timeout=10
)
print(f" 📊 Статус ответа: {response.status_code}")
if response.status_code == 201:
print(" ✅ УСПЕШНАЯ РЕГИСТРАЦИЯ!")
elif response.status_code == 400:
print(" ⚠️ 400 Bad Request - Пользователь уже существует или неверные данные")
elif response.status_code == 500:
print(" 🚨 500 Server Error - ПРОБЛЕМА SQLAlchemy!")
print(f" 📄 Ответ сервера: {response.text}")
except Exception as e:
print(f" ⚡ ERROR: {str(e)}")
# Тест 3: Проверка защищенного endpoint
print("\n🧪 Тест 3: Доступ к защищенному endpoint")
try:
print(" 📝 Проверяем доступ к профилю пользователя")
response = requests.get(
f"{BASE_URL}/api/v1/users/profile",
timeout=10
)
print(f" 📊 Статус ответа: {response.status_code}")
if response.status_code == 401:
print(" ✅ 401 Unauthorized - Авторизация работает корректно!")
elif response.status_code == 500:
print(" 🚨 500 Server Error - Проблема с сервером!")
else:
print(f" 🔸 Неожиданный код: {response.status_code}")
except Exception as e:
print(f" ⚡ ERROR: {str(e)}")
# Финальный отчет
print("\n" + "=" * 60)
print("📊 ИТОГОВЫЙ ОТЧЕТ АВТОРИЗАЦИИ")
print("=" * 60)
print("✅ Система авторизации протестирована")
print("Все сервисы запущены и отвечают")
print("🔧 Если есть ошибки 500 - нужно дополнительное исправление SQLAlchemy")
if __name__ == "__main__":
test_authentication_system()