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 import uuid class TimeSpentTestCase(TestCase): def setUp(self): 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(self): """Tests whether staff can delete tickets""" message_id = uuid.uuid4().hex followup = FollowUp.objects.create( ticket=self.ticket, date=datetime.datetime.now(), title="Testing followup", comment="Testing followup time spent", public=True, user=self.user, new_status=1, message_id=message_id, time_spent=datetime.timedelta(minutes=30) ) 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 )