|
from django.test import TestCase, Client
|
|
from django.urls import reverse
|
|
from django.contrib.auth import get_user_model
|
|
from .models import Event, Task
|
|
from rest_framework.test import APIClient
|
|
import json
|
|
|
|
User = get_user_model()
|
|
|
|
class EventModelTest(TestCase):
|
|
def setUp(self):
|
|
self.user = User.objects.create_user(username='testuser', password='testpass')
|
|
self.event = Event.objects.create(user=self.user, title='Test Event', date='2025-01-01', time='12:00', description='desc')
|
|
|
|
def test_str(self):
|
|
self.assertEqual(str(self.event), 'Test Event')
|
|
|
|
class TaskModelTest(TestCase):
|
|
def setUp(self):
|
|
self.user = User.objects.create_user(username='testuser2', password='testpass')
|
|
self.event = Event.objects.create(user=self.user, title='Test Event', date='2025-01-01', time='12:00', description='desc')
|
|
self.task = Task.objects.create(user=self.user, text='Test Task', event=self.event)
|
|
|
|
def test_str(self):
|
|
self.assertEqual(str(self.task), 'Test Task')
|
|
|
|
class ScheduleApiTest(TestCase):
|
|
def setUp(self):
|
|
self.client = Client()
|
|
self.user = User.objects.create_user(username='testuser3', password='testpass')
|
|
self.client.login(username='testuser3', password='testpass')
|
|
|
|
def test_event_list_api(self):
|
|
response = self.client.get(reverse('event-list'))
|
|
self.assertIn(response.status_code, [200, 403, 401])
|
|
|
|
class ScheduleViewsTest(TestCase):
|
|
def setUp(self):
|
|
self.client = APIClient()
|
|
self.user = User.objects.create_user(username='testuser4', password='testpass')
|
|
self.client.force_authenticate(user=self.user)
|
|
self.event = Event.objects.create(user=self.user, title='Event', date='2025-01-01', time='12:00', description='desc')
|
|
self.task = Task.objects.create(user=self.user, text='Task', event=self.event)
|
|
|
|
def test_event_list_unauthenticated(self):
|
|
self.client.force_authenticate(user=None)
|
|
response = self.client.get(reverse('event-list'))
|
|
self.assertEqual(response.status_code, 401)
|
|
|
|
def test_event_detail_not_exist(self):
|
|
response = self.client.get(reverse('event-detail', args=[9999]))
|
|
self.assertEqual(response.status_code, 404)
|
|
|
|
def test_task_toggle_complete_not_exist(self):
|
|
response = self.client.post(reverse('task-toggle', args=[9999]))
|
|
self.assertEqual(response.status_code, 404)
|
|
|
|
def test_task_delete_not_exist(self):
|
|
response = self.client.delete(reverse('task-delete', args=[9999]))
|
|
self.assertEqual(response.status_code, 404)
|
|
|
|
def test_today_events_unauthenticated(self):
|
|
self.client.force_authenticate(user=None)
|
|
response = self.client.get(reverse('today-events'))
|
|
self.assertEqual(response.status_code, 401)
|