Todo_App / tests /test_new_fields.py
Abdullahcoder54's picture
Push the app
697c967
Raw History Blame Contribute Delete
3.62 kB
"""
Test script to verify the new Task model fields work correctly
"""
import requests
import json
from datetime import datetime
BASE_URL = "http://localhost:8001"
def test_new_task_fields():
print("Testing new Task model fields (priority, due_date)...")
# Register a test user
timestamp = str(int(datetime.now().timestamp()))
user_data = {
"email": f"testuser_{timestamp}@example.com",
"password": "securepassword123",
"name": f"Test User {timestamp}"
}
response = requests.post(f"{BASE_URL}/api/auth/register",
json=user_data,
headers={"Content-Type": "application/json"})
if response.status_code != 201:
print(f"Failed to register user: {response.status_code}")
return False
result = response.json()
token = result['token']
user_id = result['user']['id']
print(f"User registered: {user_id}")
# Create a task with new fields
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
task_data = {
"title": "Test Task with Priority",
"description": "This is a test task with priority and due date",
"completed": False,
"priority": "high",
"due_date": "2025-12-31T23:59:59"
}
response = requests.post(f"{BASE_URL}/api/{user_id}/tasks",
json=task_data,
headers=headers)
if response.status_code != 201:
print(f"Failed to create task with new fields: {response.status_code} - {response.text}")
return False
task_result = response.json()
print(f"Task created with new fields: {task_result}")
# Verify the response contains the new fields
if 'priority' in task_result and 'due_date' in task_result:
print("✅ New fields (priority, due_date) are present in response")
else:
print("❌ New fields are missing from response")
return False
# Get the task back to verify it was stored correctly
response = requests.get(f"{BASE_URL}/api/{user_id}/tasks/{task_result['id']}", headers=headers)
if response.status_code != 200:
print(f"Failed to retrieve task: {response.status_code}")
return False
retrieved_task = response.json()
print(f"Retrieved task: {retrieved_task}")
# Verify the new fields are preserved
if (retrieved_task.get('priority') == 'high' and
'due_date' in retrieved_task and
retrieved_task.get('title') == 'Test Task with Priority'):
print("✅ New fields are correctly stored and retrieved")
else:
print("❌ New fields are not correctly stored or retrieved")
return False
# Test updating the task with new fields
update_data = {
"priority": "low",
"due_date": "2026-01-15T10:30:00"
}
response = requests.put(f"{BASE_URL}/api/{user_id}/tasks/{task_result['id']}",
json=update_data,
headers=headers)
if response.status_code != 200:
print(f"Failed to update task with new fields: {response.status_code}")
return False
updated_task = response.json()
print(f"Updated task: {updated_task}")
if updated_task.get('priority') == 'low':
print("✅ Task update with new fields works correctly")
else:
print("❌ Task update with new fields failed")
return False
print("\n🎉 All tests passed! New Task fields are working correctly!")
return True
if __name__ == "__main__":
test_new_task_fields()