コード例 #1
0
    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
        )
コード例 #2
0
 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)
コード例 #3
0
 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)
コード例 #4
0
 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)
コード例 #5
0
 def setUp(self):
     super(TestReviewingState, self).setUp()
     self.state = demo_machine.Reviewing()