LinkDesk/backend/test_bulk_shot_creation.py

76 lines
1.9 KiB
Python

"""
Test script for bulk shot creation
"""
import requests
import json
BASE_URL = "http://localhost:8000"
# Test credentials
LOGIN_DATA = {
"email": "admin@vfx.com",
"password": "admin123"
}
def login():
"""Login and get access token"""
response = requests.post(f"{BASE_URL}/auth/login", json=LOGIN_DATA)
if response.status_code == 200:
return response.json()["access_token"]
else:
print(f"Login failed: {response.status_code}")
return None
def test_bulk_shot_creation():
"""Test bulk shot creation"""
print("=== Test: Bulk Shot Creation ===\n")
token = login()
if not token:
return
headers = {"Authorization": f"Bearer {token}"}
project_id = 1
episode_id = 1
# Test bulk shot creation
print("1. Creating 3 shots with bulk creation...")
import time
timestamp = int(time.time())
bulk_data = {
"name_prefix": f"BULK_{timestamp}_",
"shot_count": 3,
"start_number": 1,
"number_padding": 3,
"frame_start": 1001,
"frame_end": 1100,
"description_template": "Test shot {shot_name}",
"create_default_tasks": True
}
response = requests.post(
f"{BASE_URL}/shots/bulk?episode_id={episode_id}",
headers=headers,
json=bulk_data
)
print(f" Status: {response.status_code}")
if response.status_code == 201:
result = response.json()
print(f" Message: {result['message']}")
print(f" Created shots: {len(result['created_shots'])}")
print(f" Created tasks: {result['created_tasks_count']}")
print(f"\n Shot names:")
for shot in result['created_shots']:
print(f" - {shot['name']} (ID: {shot['id']}, Tasks: {shot['task_count']})")
else:
print(f" Error: {response.json()}")
print("\n=== Test Completed ===")
if __name__ == "__main__":
test_bulk_shot_creation()