All checks were successful
continuous-integration/drone/push Build is passing
125 lines
5.1 KiB
Python
125 lines
5.1 KiB
Python
#!/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() |