48 lines
1.4 KiB
Python
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() |