LinkDesk/backend/test_asset_task_update.py

48 lines
1.8 KiB
Python

#!/usr/bin/env python3
"""
Test updating existing asset tasks with custom statuses
"""
import requests
BASE_URL = 'http://localhost:8000'
def login():
"""Login and get access token"""
response = requests.post(f'{BASE_URL}/auth/login', json={'email': 'admin@vfx.com', 'password': 'admin123'})
if response.status_code != 200:
print("❌ Login failed")
return None
return response.json()['access_token']
def test_asset_task_update():
token = login()
if not token:
return
headers = {'Authorization': f'Bearer {token}'}
# Get asset 34 tasks
response = requests.get(f'{BASE_URL}/assets/34/task-status', headers=headers)
print(f"Get asset task status - Status: {response.status_code}")
if response.status_code == 200:
tasks = response.json()
print(f"Found {len(tasks)} tasks:")
for task in tasks:
print(f" Task {task['task_id']}: {task['task_type']} - {task['status']}")
# Try to update the first task to a custom status
if task['task_id']:
update_data = {'status': 'custom_9441a740'} # Use the custom status from the test
update_response = requests.put(f'{BASE_URL}/tasks/{task["task_id"]}', json=update_data, headers=headers)
print(f"Update task {task['task_id']} - Status: {update_response.status_code}")
if update_response.status_code == 200:
print(f"✅ Successfully updated task {task['task_id']} to custom status")
break
else:
print(f"❌ Failed to update task: {update_response.text}")
else:
print(f"Failed to get asset tasks: {response.text}")
if __name__ == "__main__":
test_asset_task_update()