Spaces:
Sleeping
Sleeping
| """ | |
| Quick test to verify the backend API with new fields is working | |
| """ | |
| import requests | |
| import json | |
| from datetime import datetime | |
| BASE_URL = "http://localhost:8000" # Server running on port 8000 | |
| def test_backend(): | |
| print("Testing Backend API with new fields...") | |
| print("=" * 50) | |
| # Test 1: Health check | |
| print("1. Testing health endpoint...") | |
| try: | |
| response = requests.get(f"{BASE_URL}/") | |
| if response.status_code == 200: | |
| print(" ✅ Health check: OK") | |
| else: | |
| print(f" ❌ Health check failed: {response.status_code}") | |
| return False | |
| except Exception as e: | |
| print(f" ❌ Health check failed: {e}") | |
| return False | |
| # Test 2: Register a user | |
| print("2. Testing user registration...") | |
| try: | |
| timestamp = str(int(datetime.now().timestamp())) | |
| user_data = { | |
| "email": f"test_{timestamp}@example.com", | |
| "password": "password123", | |
| "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: | |
| result = response.json() | |
| token = result['token'] | |
| user_id = result['user']['id'] | |
| print(f" ✅ User registration: OK (User ID: {user_id})") | |
| else: | |
| print(f" ❌ User registration failed: {response.status_code} - {response.text}") | |
| return False | |
| except Exception as e: | |
| print(f" ❌ User registration failed: {e}") | |
| return False | |
| # Test 3: Create a task with new fields | |
| print("3. Testing task creation with new fields...") | |
| try: | |
| headers = { | |
| "Authorization": f"Bearer {token}", | |
| "Content-Type": "application/json" | |
| } | |
| task_data = { | |
| "title": "Test Task with New Fields", | |
| "description": "Task with priority and due date", | |
| "completed": False, | |
| "priority": "high", # NEW FIELD | |
| "due_date": "2025-12-31T23:59:59" # NEW FIELD | |
| } | |
| response = requests.post(f"{BASE_URL}/api/{user_id}/tasks", | |
| json=task_data, | |
| headers=headers) | |
| if response.status_code == 201: | |
| result = response.json() | |
| task_id = result['id'] | |
| print(f" ✅ Task creation with new fields: OK (Task ID: {task_id})") | |
| # Verify new fields are present in response | |
| if 'priority' in result and 'due_date' in result: | |
| print(f" ✅ New fields present in response: priority={result['priority']}, due_date={result['due_date']}") | |
| else: | |
| print(f" ⚠️ New fields missing from response: {result.keys()}") | |
| else: | |
| print(f" ❌ Task creation failed: {response.status_code} - {response.text}") | |
| return False | |
| except Exception as e: | |
| print(f" ❌ Task creation failed: {e}") | |
| return False | |
| # Test 4: Get the task back | |
| print("4. Testing task retrieval...") | |
| try: | |
| response = requests.get(f"{BASE_URL}/api/{user_id}/tasks/{task_id}", headers=headers) | |
| if response.status_code == 200: | |
| result = response.json() | |
| print(f" ✅ Task retrieval: OK") | |
| # Verify new fields are preserved | |
| if result.get('priority') == 'high': | |
| print(f" ✅ Priority field preserved: {result['priority']}") | |
| else: | |
| print(f" ⚠️ Priority field not preserved: {result.get('priority')}") | |
| if 'due_date' in result and result['due_date']: | |
| print(f" ✅ Due date field preserved: {result['due_date']}") | |
| else: | |
| print(f" ⚠️ Due date field not preserved: {result.get('due_date')}") | |
| else: | |
| print(f" ❌ Task retrieval failed: {response.status_code} - {response.text}") | |
| return False | |
| except Exception as e: | |
| print(f" ❌ Task retrieval failed: {e}") | |
| return False | |
| # Test 5: Update task with new fields | |
| print("5. Testing task update with new fields...") | |
| try: | |
| update_data = { | |
| "priority": "low", | |
| "due_date": "2026-01-15T10:30:00" | |
| } | |
| response = requests.put(f"{BASE_URL}/api/{user_id}/tasks/{task_id}", | |
| json=update_data, | |
| headers=headers) | |
| if response.status_code == 200: | |
| result = response.json() | |
| print(f" ✅ Task update with new fields: OK") | |
| if result.get('priority') == 'low': | |
| print(f" ✅ Priority updated successfully: {result['priority']}") | |
| else: | |
| print(f" ⚠️ Priority not updated: {result.get('priority')}") | |
| else: | |
| print(f" ❌ Task update failed: {response.status_code} - {response.text}") | |
| return False | |
| except Exception as e: | |
| print(f" ❌ Task update failed: {e}") | |
| return False | |
| print("=" * 50) | |
| print("🎉 ALL TESTS PASSED! Backend API with new fields is working correctly!") | |
| print("✅ Priority and due_date fields are fully functional") | |
| print("✅ All CRUD operations work with new fields") | |
| print("=" * 50) | |
| return True | |
| if __name__ == "__main__": | |
| test_backend() |