Update test of dashboard

This commit is contained in:
sosokker 2023-11-26 11:51:33 +07:00
parent 07b8b419e7
commit e93667b697

View File

@ -1,32 +1,35 @@
from django.test import TestCase from rest_framework.test import APITestCase
from django.urls import reverse from django.urls import reverse
from tasks.models import Todo from tasks.models import Todo
from django.utils import timezone from django.utils import timezone
from datetime import timedelta from datetime import timedelta
from tasks.tests.utils import create_test_user, login_user from boards.models import Board
from tasks.tests.utils import create_test_user
class DashboardStatsAndWeeklyViewSetTests(TestCase): class DashboardStatsAndWeeklyViewSetTests(APITestCase):
def setUp(self): def setUp(self):
self.user = create_test_user() self.user = create_test_user()
self.client = login_user(self.user) self.client.force_authenticate(user=self.user)
self.list_board = Board.objects.get(user=self.user).listboard_set.first()
def create_task(self, title, completed=False, completion_date=None, end_event=None): def _create_task(self, title, completed=False, completion_date=None, end_event=None):
return Todo.objects.create( return Todo.objects.create(
user=self.user, user=self.user,
title=title, title=title,
completed=completed, completed=completed,
completion_date=completion_date, completion_date=completion_date,
end_event=end_event end_event=end_event,
list_board=self.list_board
) )
def test_dashboard_stats_view(self): def test_dashboard_stats_view(self):
# Create tasks for testing # Create tasks for testing
self.create_task('Task 1', completed=True) self._create_task('Task 1', completed=True)
self.create_task('Task 2', end_event=timezone.now() - timedelta(days=8)) self._create_task('Task 2', end_event=timezone.now() - timedelta(days=8))
self.create_task('Task 3', end_event=timezone.now()) self._create_task('Task 3', end_event=timezone.now())
response = self.client.get(reverse('stats-list')) response = self.client.get(reverse('statstodo-list'))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(response.data['completed_this_week'], 1) self.assertEqual(response.data['completed_this_week'], 1)
@ -35,69 +38,9 @@ class DashboardStatsAndWeeklyViewSetTests(TestCase):
def test_dashboard_weekly_view(self): def test_dashboard_weekly_view(self):
# Create tasks for testing # Create tasks for testing
self.create_task('Task 1', completion_date=timezone.now() - timedelta(days=1)) self._create_task('Task 1', completion_date=timezone.now() - timedelta(days=1))
self.create_task('Task 2', end_event=timezone.now() - timedelta(days=8)) self._create_task('Task 2', end_event=timezone.now() - timedelta(days=8))
self.create_task('Task 3', end_event=timezone.now()) self._create_task('Task 3', end_event=timezone.now())
response = self.client.get(reverse('weekly-list')) response = self.client.get(reverse('weekly-list'))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
# class DashboardStatsAPITestCase(TestCase):
# def setUp(self):
# # Create a test user
# self.user = create_test_user()
# # Create test tasks
# self.todo = Todo.objects.create(user=self.user, title='Test Todo')
# self.recurrence_task = RecurrenceTask.objects.create(user=self.user, title='Test Recurrence Task')
# # Create an API client
# self.client = APIClient()
# def test_dashboard_stats_api(self):
# # Authenticate the user
# self.client.force_authenticate(user=self.user)
# # Make a GET request to the DashboardStatsAPIView
# response = self.client.get(reverse("dashboard-stats"))
# # Assert the response status code is 200
# self.assertEqual(response.status_code, 200)
# def test_task_completion_status_update(self):
# # Authenticate the user
# self.client.force_authenticate(user=self.user)
# # Make a POST request to update the completion status of a task
# data = {'task_id': self.todo.id, 'is_completed': True}
# response = self.client.post(reverse("dashboard-stats"), data, format='json')
# # Assert the response status code is 200
# self.assertEqual(response.status_code, 200)
# # Assert the message in the response
# self.assertEqual(response.data['message'], 'Task completion status updated successfully')
# # Refresh the todo instance from the database and assert the completion status
# self.todo.refresh_from_db()
# self.assertTrue(self.todo.completed)
# class WeeklyStatsAPITestCase(TestCase):
# def setUp(self):
# # Create a test user
# self.user = create_test_user()
# # Create an API client
# self.client = APIClient()
# def test_weekly_stats_api(self):
# # Authenticate the user
# self.client.force_authenticate(user=self.user)
# # Make a GET request to the WeeklyStatsAPIView
# response = self.client.get(reverse('dashboard-weekly-stats'))
# # Assert the response status code is 200
# self.assertEqual(response.status_code, 200)