mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-17 02:45:08 +00:00
110 lines
4.0 KiB
Python
110 lines
4.0 KiB
Python
"""
|
|
web admin test analytics file
|
|
"""
|
|
# django imports
|
|
from django.urls import reverse
|
|
from rest_framework import status
|
|
|
|
# local imports
|
|
from web_admin.tests.test_set_up import AnalyticsSetUp
|
|
|
|
|
|
class AnalyticsViewSetTestCase(AnalyticsSetUp):
|
|
"""
|
|
test cases for analytics, users count, new sign-ups,
|
|
assign tasks report, junior leaderboard, export excel
|
|
"""
|
|
def setUp(self) -> None:
|
|
"""
|
|
test data set up
|
|
:return:
|
|
"""
|
|
super(AnalyticsViewSetTestCase, self).setUp()
|
|
|
|
def test_total_sign_up_count(self):
|
|
"""
|
|
test total sign up count
|
|
:return:
|
|
"""
|
|
self.client.force_authenticate(self.admin_user)
|
|
url = reverse('web_admin:analytics-users-count')
|
|
response = self.client.get(url)
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
# Assuming four users exists in the database
|
|
self.assertEqual(response.data['data']['total_users'], 4)
|
|
# Assuming two guardians exists in the database
|
|
self.assertEqual(response.data['data']['total_guardians'], 2)
|
|
# Assuming two juniors exists in the database
|
|
self.assertEqual(response.data['data']['total_juniors'], 2)
|
|
|
|
def test_new_user_sign_ups(self):
|
|
"""
|
|
test new user sign-ups
|
|
:return:
|
|
"""
|
|
self.client.force_authenticate(self.admin_user)
|
|
url = reverse('web_admin:analytics-new-signups')
|
|
response = self.client.get(url)
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
# Assuming four users exists in the database
|
|
self.assertEqual(response.data['data'][0]['signups'], 4)
|
|
|
|
def test_new_user_sign_ups_between_given_dates(self):
|
|
"""
|
|
test new user sign-ups
|
|
:return:
|
|
"""
|
|
self.client.force_authenticate(self.admin_user)
|
|
url = reverse('web_admin:analytics-new-signups')
|
|
query_params = {
|
|
'start_date': '2023-09-12',
|
|
'end_date': '2023-09-13'
|
|
}
|
|
response = self.client.get(url, query_params)
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
# Assuming four users exists in the database
|
|
self.assertEqual(response.data['data'][0]['signups'], 4)
|
|
|
|
def test_assign_tasks_report(self):
|
|
"""
|
|
test assign tasks report
|
|
:return:
|
|
"""
|
|
self.client.force_authenticate(self.admin_user)
|
|
url = reverse('web_admin:analytics-assign-tasks')
|
|
response = self.client.get(url)
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
# Assuming two completed tasks exists in the database
|
|
self.assertEqual(response.data['data']['task_completed'], 2)
|
|
# Assuming two pending tasks exists in the database
|
|
self.assertEqual(response.data['data']['task_pending'], 2)
|
|
# Assuming two in progress tasks exists in the database
|
|
self.assertEqual(response.data['data']['task_in_progress'], 2)
|
|
# Assuming two requested tasks exists in the database
|
|
self.assertEqual(response.data['data']['task_requested'], 2)
|
|
# Assuming two rejected tasks exists in the database
|
|
self.assertEqual(response.data['data']['task_rejected'], 2)
|
|
# Assuming two expired tasks exists in the database
|
|
self.assertEqual(response.data['data']['task_expired'], 2)
|
|
|
|
def test_junior_leaderboard(self):
|
|
"""
|
|
test junior leaderboard
|
|
:return:
|
|
"""
|
|
self.client.force_authenticate(self.admin_user)
|
|
url = reverse('web_admin:analytics-junior-leaderboard')
|
|
response = self.client.get(url)
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
|
|
def test_export_excel(self):
|
|
"""
|
|
test export excel
|
|
:return:
|
|
"""
|
|
self.client.force_authenticate(self.admin_user)
|
|
url = reverse('web_admin:analytics-export-excel')
|
|
response = self.client.get(url)
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
self.assertURLEqual(response.data['data'], self.export_excel_url)
|