From 0be6282bfe577626f03ce1033a696cdaa3ea47c4 Mon Sep 17 00:00:00 2001 From: Sam Splunks <72095718+samsplunks@users.noreply.github.com> Date: Tue, 27 Feb 2024 14:49:18 +0000 Subject: [PATCH] Basic auto time_spent calculation test --- helpdesk/tests/test_time_spent_auto.py | 67 ++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 helpdesk/tests/test_time_spent_auto.py diff --git a/helpdesk/tests/test_time_spent_auto.py b/helpdesk/tests/test_time_spent_auto.py new file mode 100644 index 00000000..89c8a9e5 --- /dev/null +++ b/helpdesk/tests/test_time_spent_auto.py @@ -0,0 +1,67 @@ + +import datetime +from django.contrib.auth.hashers import make_password +from django.contrib.auth.models import User +from django.test import TestCase +from django.test.client import Client +from helpdesk.models import FollowUp, Queue, Ticket +from helpdesk import settings as helpdesk_settings +import uuid + + +class TimeSpentAutoTestCase(TestCase): + + def setUp(self): + """Creates a queue, ticket and user.""" + self.queue_public = Queue.objects.create( + title='Queue 1', + slug='q1', + allow_public_submission=True, + dedicated_time=datetime.timedelta(minutes=60) + ) + + self.ticket_data = { + 'title': 'Test Ticket', + 'description': 'Some Test Ticket', + } + + ticket_data = dict(queue=self.queue_public, **self.ticket_data) + self.ticket = Ticket.objects.create(**ticket_data) + + self.client = Client() + + user1_kwargs = { + 'username': 'staff', + 'email': 'staff@example.com', + 'password': make_password('Test1234'), + 'is_staff': True, + 'is_superuser': False, + 'is_active': True + } + self.user = User.objects.create(**user1_kwargs) + + def test_add_followup_time_spent_auto(self): + """Tests automatic time_spent calculation.""" + + helpdesk_settings.FOLLOWUP_TIME_SPENT_AUTO = True + + message_id = uuid.uuid4().hex + followup = FollowUp.objects.create( + ticket=self.ticket, + date=self.ticket.created + datetime.timedelta(minutes=30), + title="Testing followup", + comment="Testing followup time spent", + public=True, + user=self.user, + new_status=1, + message_id=message_id, + time_spent=None + ) + followup.save() + + self.assertEqual(followup.time_spent.seconds, 1800) + self.assertEqual(self.ticket.time_spent.seconds, 1800) + self.assertEqual(self.queue_public.time_spent.seconds, 1800) + self.assertTrue( + self.queue_public.dedicated_time.seconds > self.queue_public.time_spent.seconds + ) \ No newline at end of file