#!/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()