video-accessibility/backend/debug_login.py
2025-08-24 16:28:33 -05:00

52 lines
No EOL
1.7 KiB
Python

#!/usr/bin/env python3
"""Debug login issues by testing components individually."""
import asyncio
from motor.motor_asyncio import AsyncIOMotorClient
from app.core.config import settings
from app.core.security import verify_password
from app.models.user import User
async def test_database_connection():
"""Test direct database connection."""
print("1. Testing database connection...")
client = AsyncIOMotorClient(settings.mongodb_uri)
db = client[settings.mongodb_db]
try:
# Test connection
await client.admin.command('ping')
print("✅ Database connection successful")
# Check if users collection exists
collections = await db.list_collection_names()
print(f"✅ Collections: {collections}")
# Count users
user_count = await db.users.count_documents({})
print(f"✅ User count: {user_count}")
# Find admin user
user_doc = await db.users.find_one({"email": "admin@example.com"})
if user_doc:
print(f"✅ Found admin user: {user_doc['email']}")
user = User(**user_doc)
print(f"✅ User model validation successful")
# Test password verification
print("2. Testing password verification...")
password_correct = verify_password("admin", user.hashed_password)
print(f"✅ Password verification result: {password_correct}")
else:
print("❌ Admin user not found")
except Exception as e:
print(f"❌ Database error: {e}")
import traceback
traceback.print_exc()
finally:
client.close()
if __name__ == "__main__":
asyncio.run(test_database_connection())