Initial commit - PromptTech

This commit is contained in:
2026-01-27 18:07:00 -06:00
commit 3959a223bf
262 changed files with 128736 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
#!/usr/bin/env python3
"""
Comprehensive test for image upload functionality
Tests various scenarios to ensure robust upload handling
"""
import requests
import sys
from pathlib import Path
# Add backend to path
sys.path.insert(0, str(Path(__file__).parent))
from test_upload import SECRET_KEY, ALGORITHM
import jwt
from datetime import datetime, timezone, timedelta
# Generate admin token
def get_admin_token():
expires = datetime.now(timezone.utc) + timedelta(hours=24)
token_data = {
"sub": "0739d174-9409-4bd1-b749-69f9e5546467f", # Admin user ID
"email": "admin@techzone.com",
"exp": expires
}
return jwt.encode(token_data, SECRET_KEY, algorithm=ALGORITHM)
def test_upload(filename, content, content_type=None):
"""Test uploading a file"""
token = get_admin_token()
files = {'file': (filename, content, content_type)}
headers = {'Authorization': f'Bearer {token}'}
print(f"\n{'='*60}")
print(f"Testing upload: {filename}")
print(f"Content-Type: {content_type}")
print(f"Size: {len(content)} bytes")
print(f"{'='*60}")
try:
response = requests.post(
'http://localhost:8181/api/upload/image',
files=files,
headers=headers
)
if response.status_code == 200:
print(f"✅ SUCCESS: {response.json()}")
return True
else:
print(f"❌ FAILED ({response.status_code}): {response.json()}")
return False
except Exception as e:
print(f"❌ ERROR: {e}")
return False
if __name__ == "__main__":
# Test 1: Real JPEG with proper content type
with open('/tmp/test-image.jpg', 'rb') as f:
content = f.read()
test_upload('test.jpg', content, 'image/jpeg')
# Test 2: JPEG with no content type (browser might do this)
test_upload('test2.jpg', content, None)
# Test 3: PNG extension
test_upload('test.png', content, 'image/png')
# Test 4: File with uppercase extension
test_upload('TEST.JPG', content, 'image/jpeg')
# Test 5: No extension but has content type
test_upload('image', content, 'image/jpeg')
# Test 6: Invalid extension
test_upload('file.txt', b'not an image', 'text/plain')
print(f"\n{'='*60}")
print("Test complete!")
print(f"{'='*60}\n")