mirror of
https://github.com/TurTaskProject/TurTaskWeb.git
synced 2025-12-19 05:54:07 +01:00
Add test for dashboard stats
This commit is contained in:
parent
6c31fb059f
commit
c18275eeb8
@ -1,10 +1,47 @@
|
|||||||
# # tasks/tests.py
|
from django.test import TestCase
|
||||||
# from django.test import TestCase
|
from django.urls import reverse
|
||||||
# from django.utils import timezone
|
from tasks.models import Todo
|
||||||
# from rest_framework.test import APIClient
|
from django.utils import timezone
|
||||||
# from tasks.models import Todo, RecurrenceTask
|
from datetime import timedelta
|
||||||
# from tasks.tests.utils import create_test_user
|
|
||||||
# from django.urls import reverse
|
from tasks.tests.utils import create_test_user, login_user
|
||||||
|
|
||||||
|
class DashboardStatsAndWeeklyViewSetTests(TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
self.user = create_test_user()
|
||||||
|
self.client = login_user(self.user)
|
||||||
|
|
||||||
|
def create_task(self, title, completed=False, completion_date=None, end_event=None):
|
||||||
|
return Todo.objects.create(
|
||||||
|
user=self.user,
|
||||||
|
title=title,
|
||||||
|
completed=completed,
|
||||||
|
completion_date=completion_date,
|
||||||
|
end_event=end_event
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_dashboard_stats_view(self):
|
||||||
|
# Create tasks for testing
|
||||||
|
self.create_task('Task 1', completed=True)
|
||||||
|
self.create_task('Task 2', end_event=timezone.now() - timedelta(days=8))
|
||||||
|
self.create_task('Task 3', end_event=timezone.now())
|
||||||
|
|
||||||
|
response = self.client.get(reverse('stats-list'))
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
self.assertEqual(response.data['completed_this_week'], 1)
|
||||||
|
self.assertEqual(response.data['tasks_assigned_this_week'], 1)
|
||||||
|
self.assertEqual(response.data['tasks_assigned_last_week'], 0)
|
||||||
|
|
||||||
|
def test_dashboard_weekly_view(self):
|
||||||
|
# Create tasks for testing
|
||||||
|
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 3', end_event=timezone.now())
|
||||||
|
|
||||||
|
response = self.client.get(reverse('weekly-list'))
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
|
||||||
# class DashboardStatsAPITestCase(TestCase):
|
# class DashboardStatsAPITestCase(TestCase):
|
||||||
# def setUp(self):
|
# def setUp(self):
|
||||||
|
|||||||
@ -1,9 +1,11 @@
|
|||||||
from django.urls import path
|
from django.urls import path, include
|
||||||
from rest_framework.routers import DefaultRouter
|
from rest_framework.routers import DefaultRouter
|
||||||
|
|
||||||
from .views import DashboardStatsViewSet, DashboardWeeklyViewSet
|
from .views import DashboardStatsViewSet, DashboardWeeklyViewSet
|
||||||
|
|
||||||
router = DefaultRouter()
|
router = DefaultRouter()
|
||||||
router.register(r'dashboard/stats', DashboardStatsViewSet, basename='dashboard-stats')
|
router.register(r'dashboard/stats', DashboardStatsViewSet, basename='stats')
|
||||||
router.register(r'dashboard/weekly', DashboardWeeklyViewSet, basename='dashboard-weekly')
|
router.register(r'dashboard/weekly', DashboardWeeklyViewSet, basename='weekly')
|
||||||
urlpatterns = router.urls
|
urlpatterns = [
|
||||||
|
path('', include(router.urls)),
|
||||||
|
]
|
||||||
|
|||||||
@ -9,7 +9,10 @@ from tasks.models import Todo
|
|||||||
|
|
||||||
|
|
||||||
class DashboardStatsViewSet(viewsets.GenericViewSet, mixins.ListModelMixin):
|
class DashboardStatsViewSet(viewsets.GenericViewSet, mixins.ListModelMixin):
|
||||||
permission_classes = [IsAuthenticated]
|
permission_classes = (IsAuthenticated,)
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return Todo.objects.all()
|
||||||
|
|
||||||
def list(self, request, *args, **kwargs):
|
def list(self, request, *args, **kwargs):
|
||||||
user = self.request.user
|
user = self.request.user
|
||||||
@ -78,7 +81,10 @@ class DashboardStatsViewSet(viewsets.GenericViewSet, mixins.ListModelMixin):
|
|||||||
|
|
||||||
|
|
||||||
class DashboardWeeklyViewSet(viewsets.GenericViewSet, mixins.ListModelMixin):
|
class DashboardWeeklyViewSet(viewsets.GenericViewSet, mixins.ListModelMixin):
|
||||||
permission_classes = [IsAuthenticated]
|
permission_classes = (IsAuthenticated,)
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return Todo.objects.all()
|
||||||
|
|
||||||
def list(self, request, *args, **kwargs):
|
def list(self, request, *args, **kwargs):
|
||||||
user = self.request.user
|
user = self.request.user
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user