LinkDesk/backend/test_projects_direct.py

48 lines
1.4 KiB
Python

#!/usr/bin/env python3
"""
Direct test of the projects endpoint to catch detailed errors.
"""
import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from database import get_db
from routers.projects import list_projects
from utils.auth import _get_user_from_db
from models.user import User
def test_projects_direct():
"""Test projects endpoint directly."""
print("Testing Projects Endpoint Directly")
print("=" * 40)
try:
# Get database session
db = next(get_db())
# Get admin user
admin_user = db.query(User).filter(User.email == "admin@vfx.com").first()
if not admin_user:
print("❌ Admin user not found")
return
print(f"✅ Found admin user: {admin_user.email} (Role: {admin_user.role})")
# Call the projects endpoint directly
print("\nCalling list_projects endpoint...")
import asyncio
result = asyncio.run(list_projects(skip=0, limit=100, db=db, current_user=admin_user))
print(f"✅ Success! Found {len(result)} projects:")
for project in result:
print(f" - {project.name} ({project.code_name})")
except Exception as e:
print(f"❌ Error: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
test_projects_direct()