def test_status_returns_most_recent_status(self): ''' Test the status property returns the most advanced status that has been logged. ''' test_ticket = Ticket(user=self.test_user, title='Status', content='Test content') test_ticket.save() test_ticket = Ticket.objects.get(id=test_ticket.id) self.assertEqual('awaiting approval', test_ticket.status) test_ticket.approved = timezone.now() test_ticket.save() test_ticket = Ticket.objects.get(id=test_ticket.id) self.assertEqual('approved', test_ticket.status) test_ticket.doing = timezone.now() test_ticket.save() test_ticket = Ticket.objects.get(id=test_ticket.id) self.assertEqual('doing', test_ticket.status) test_ticket.done = timezone.now() test_ticket.save() test_ticket = Ticket.objects.get(id=test_ticket.id) self.assertEqual('done', test_ticket.status)
def test_set_status_sets_all_unset_previous_status_fields(self): ''' Test that the set status method sets all previous unset status fields to the current time, but leaves set ones as they are. ''' test_ticket = Ticket(user=self.test_user, title='Fail To Set Status', content='Test content') past_date = timezone.now() - timedelta(days=1) test_ticket.approved = past_date test_ticket.save() test_ticket.set_status('done') test_ticket = Ticket.objects.get(id=test_ticket.id) self.assertEqual(test_ticket.approved, past_date) self.assertIsNotNone(test_ticket.doing) self.assertIsNotNone(test_ticket.done)