LinkDesk/backend/test_shot_deletion_debug.py

77 lines
2.8 KiB
Python

#!/usr/bin/env python3
import requests
import json
import sqlite3
def test_shot_deletion():
# Login and get token
login_data = {
'email': 'admin@vfx.com',
'password': 'admin123'
}
try:
# Login to get token
login_response = requests.post('http://localhost:8000/auth/login', json=login_data)
print('Login status:', login_response.status_code)
if login_response.status_code != 200:
print('Login failed:', login_response.text)
return
token_data = login_response.json()
access_token = token_data['access_token']
headers = {'Authorization': 'Bearer ' + access_token}
print('Login successful')
# Create a test shot first
shot_data = {
'name': 'TEST_DELETION_DEBUG',
'description': 'Test shot for deletion debugging',
'frame_start': 1001,
'frame_end': 1100
}
create_response = requests.post('http://localhost:8000/shots/?episode_id=1', json=shot_data, headers=headers)
print('Create shot status:', create_response.status_code)
if create_response.status_code != 201:
print('Create failed:', create_response.text)
return
created_shot = create_response.json()
shot_id = created_shot['id']
print(f'Created shot with ID: {shot_id}')
# Check database before deletion
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
cursor.execute('SELECT id, name, deleted_at, deleted_by FROM shots WHERE id = ?', (shot_id,))
before_deletion = cursor.fetchone()
print(f'Before deletion: ID={before_deletion[0]}, Name={before_deletion[1]}, Deleted_at={before_deletion[2]}, Deleted_by={before_deletion[3]}')
# Now delete the shot
delete_response = requests.delete(f'http://localhost:8000/shots/{shot_id}', headers=headers)
print('Delete shot status:', delete_response.status_code)
if delete_response.status_code == 200:
delete_result = delete_response.json()
print('Delete response:', json.dumps(delete_result, indent=2))
# Check database after deletion
cursor.execute('SELECT id, name, deleted_at, deleted_by FROM shots WHERE id = ?', (shot_id,))
after_deletion = cursor.fetchone()
print(f'After deletion: ID={after_deletion[0]}, Name={after_deletion[1]}, Deleted_at={after_deletion[2]}, Deleted_by={after_deletion[3]}')
else:
print('Delete failed:', delete_response.text)
conn.close()
except Exception as e:
print('Error:', e)
import traceback
traceback.print_exc()
if __name__ == '__main__':
test_shot_deletion()