diff --git a/helpdesk/tests/test_time_spent_auto.py b/helpdesk/tests/test_time_spent_auto.py index 3dba8f25..2ec48e54 100644 --- a/helpdesk/tests/test_time_spent_auto.py +++ b/helpdesk/tests/test_time_spent_auto.py @@ -45,7 +45,7 @@ class TimeSpentAutoTestCase(TestCase): # friday ('2024-03-01T00:00:00+00:00', '2024-03-01T09:30:10+00:00', timedelta(hours=9, minutes=30, seconds=10)), ('2024-03-01T00:00:00+00:00', '2024-03-01T23:59:58+00:00', timedelta(hours=23, minutes=59, seconds=58)), - ('2024-03-01T00:00:00+00:00', '2024-03-01T23:59:59+00:00', timedelta(hours=24)), + ('2024-03-01T00:00:00+00:00', '2024-03-01T23:59:59+00:00', timedelta(hours=23, minutes=59, seconds=59)), ('2024-03-01T00:00:00+00:00', '2024-03-02T00:00:00+00:00', timedelta(hours=24)), ('2024-03-01T00:00:00+00:00', '2024-03-02T09:00:00+00:00', timedelta(hours=33)), ('2024-03-01T00:00:00+00:00', '2024-03-03T00:00:00+00:00', timedelta(hours=48)), @@ -54,15 +54,15 @@ class TimeSpentAutoTestCase(TestCase): for (ticket_time, fup_time, assertion_delta) in TEST_VALUES: # create and setup test ticket time ticket = Ticket.objects.create(**self.ticket_data) - ticket_time = datetime.strptime(ticket_time, "%Y-%m-%dT%H:%M:%S%z") - ticket.created = ticket_time - ticket.modified = ticket_time + ticket_time_p = datetime.strptime(ticket_time, "%Y-%m-%dT%H:%M:%S%z") + ticket.created = ticket_time_p + ticket.modified = ticket_time_p ticket.save() - fup_time = datetime.strptime(fup_time, "%Y-%m-%dT%H:%M:%S%z") + fup_time_p = datetime.strptime(fup_time, "%Y-%m-%dT%H:%M:%S%z") followup1 = FollowUp.objects.create( ticket=ticket, - date=fup_time, + date=fup_time_p, title="Testing followup", comment="Testing followup time spent", public=True, @@ -76,24 +76,24 @@ class TimeSpentAutoTestCase(TestCase): self.assertEqual(followup1.time_spent.total_seconds(), assertion_delta.total_seconds()) self.assertEqual(ticket.time_spent.total_seconds(), assertion_delta.total_seconds()) - # adding a second follow-up 1 hour later - hour_delta = timedelta(hours=1) - followup2 = FollowUp.objects.create( - ticket=ticket, - date=followup1.date + hour_delta, - title="Testing followup 2", - comment="Testing followup time spent 2", - public=True, - user=self.user, - new_status=1, - message_id=uuid.uuid4().hex, - time_spent=None - ) - followup2.save() + # adding a second follow-up at different intervals + for delta in (timedelta(seconds=1), timedelta(minutes=1), timedelta(hours=1), timedelta(days=1), timedelta(days=10)): + + followup2 = FollowUp.objects.create( + ticket=ticket, + date=followup1.date + delta, + title="Testing followup 2", + comment="Testing followup time spent 2", + public=True, + user=self.user, + new_status=1, + message_id=uuid.uuid4().hex, + time_spent=None + ) + followup2.save() - # we have a special case with the last second of the day being added if day ends at 23:59:59 - day_overlap = followup2.date.toordinal() - followup1.date.toordinal() - hour_delta = hour_delta - timedelta(seconds=1 * day_overlap) + self.assertEqual(followup2.time_spent.total_seconds(), delta.total_seconds()) + self.assertEqual(ticket.time_spent.total_seconds(), assertion_delta.total_seconds() + delta.total_seconds()) - self.assertEqual(followup2.time_spent.total_seconds(), hour_delta.total_seconds()) - self.assertEqual(ticket.time_spent.total_seconds(), assertion_delta.total_seconds() + hour_delta.total_seconds()) \ No newline at end of file + # delete second follow-up as we test it with many intervals + followup2.delete() \ No newline at end of file