You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

65 lines
2.7 KiB

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)