def test_on_enter(self): self.review.reviewer_state = 'notastate' self.review.save(update_fields=['reviewer_state']) models.Event.objects.all().delete() mail.outbox = [] self.state.on_enter(self.review, demo_machine.Reviewing()) self.review.refresh_from_db() self.assertEqual(self.review.reviewer_state, constants.REJECTED) self.assertEqual(len(mail.outbox), 1) event = models.Event.objects.get() self.assertEqual(event.event_type.code, models.EventType.DEMO_REJECTED) self.hook_patch_run.assert_called_once_with( constants.REJECTED )
def test_change_state_same_state(self): self.assertFalse(self.machine.change_state(constants.REVIEWING)) self.review.refresh_from_db() self.assertEqual(self.machine.previous_state, None) self.assertEqual(self.machine.state, demo_machine.Reviewing()) self.assertEqual(self.review.reviewer_state, constants.REVIEWING)
def test_change_state_new_state(self): self.assertTrue(self.machine.change_state(constants.APPROVED)) self.review.refresh_from_db() self.assertEqual(self.machine.previous_state, demo_machine.Reviewing()) self.assertEqual(self.machine.state, demo_machine.Approved()) self.assertEqual(self.review.reviewer_state, constants.APPROVED)
def test_init(self): self.assertEqual(self.machine.review, self.review) self.assertEqual(self.machine.state, demo_machine.Reviewing()) self.assertEqual(self.machine.previous_state, None)
def setUp(self): super(TestReviewingState, self).setUp() self.state = demo_machine.Reviewing()