Initial commit - PromptTech
This commit is contained in:
66
backend/test_upload.py
Normal file
66
backend/test_upload.py
Normal file
@@ -0,0 +1,66 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Test script to verify image upload functionality"""
|
||||
import asyncio
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# Add parent directory to path
|
||||
sys.path.insert(0, str(Path(__file__).parent))
|
||||
|
||||
from database import AsyncSessionLocal
|
||||
from models import User
|
||||
from sqlalchemy import select
|
||||
import bcrypt
|
||||
import jwt
|
||||
from datetime import datetime, timezone, timedelta
|
||||
|
||||
SECRET_KEY = 'techzone-super-secret-key-2024-production'
|
||||
ALGORITHM = "HS256"
|
||||
|
||||
async def test_upload():
|
||||
"""Test that we can generate a valid admin token"""
|
||||
async with AsyncSessionLocal() as db:
|
||||
# Find admin user
|
||||
result = await db.execute(
|
||||
select(User).where(User.email == "admin@techzone.com")
|
||||
)
|
||||
admin = result.scalar_one_or_none()
|
||||
|
||||
if not admin:
|
||||
print("❌ Admin user not found!")
|
||||
print("Creating admin user...")
|
||||
|
||||
hashed_password = bcrypt.hashpw("admin123".encode(), bcrypt.gensalt())
|
||||
admin = User(
|
||||
email="admin@techzone.com",
|
||||
name="Admin",
|
||||
password_hash=hashed_password.decode(),
|
||||
role="admin"
|
||||
)
|
||||
db.add(admin)
|
||||
await db.commit()
|
||||
await db.refresh(admin)
|
||||
print("✅ Admin user created")
|
||||
|
||||
# Generate token
|
||||
expires = datetime.now(timezone.utc) + timedelta(hours=24)
|
||||
token_data = {
|
||||
"sub": admin.id,
|
||||
"email": admin.email,
|
||||
"exp": expires
|
||||
}
|
||||
token = jwt.encode(token_data, SECRET_KEY, algorithm=ALGORITHM)
|
||||
|
||||
print("\n" + "="*60)
|
||||
print("ADMIN TOKEN FOR TESTING:")
|
||||
print("="*60)
|
||||
print(token)
|
||||
print("="*60)
|
||||
print("\nYou can use this token to test image upload:")
|
||||
print(f'\ncurl -X POST http://localhost:8181/api/upload/image \\')
|
||||
print(f' -H "Authorization: Bearer {token}" \\')
|
||||
print(f' -F "file=@/path/to/your/image.jpg"')
|
||||
print("\n")
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(test_upload())
|
||||
Reference in New Issue
Block a user