def test_set_status_no_steps(self, _updated): # test pr = ProgressReport() pr.set_status(True) # validation self.assertEqual(pr.steps, []) self.assertEqual(pr.details, {}) self.assertFalse(_updated.called)
def test_set_status(self, _updated): step = 'started' # test pr = ProgressReport() pr.push_step(step) pr.set_status(True) # validation self.assertEqual(pr.steps, [[step, True]]) self.assertEqual(pr.details, {}) self.assertTrue(_updated.called)
def test_report_steps_with_errors(self): # Test that previous state with status=False is not # set (True) on next state push steps = ('A', 'B', 'C') # test pr = ProgressReport() pr._updated = Mock() pr.push_step(steps[0]) pr.push_step(steps[1]) pr.set_status(False) pr.push_step(steps[2]) # validation self.assertTrue(pr.steps[0][1]) self.assertFalse(pr.steps[1][1]) self.assertTrue(pr.steps[2][1] is None)
def test_trans_callback(self): pr = ProgressReport() pr._updated = Mock() # test cb = ProcessTransCallback(pr) for state in sorted(PT_MESSAGES.keys()): cb.event(state) pr.set_status(True) # validation self.assertEqual(len(PT_MESSAGES), len(pr.steps)) i = 0 for state in sorted(PT_MESSAGES.keys()): step = pr.steps[i] name = PT_MESSAGES[state] self.assertEqual(step[0], name) self.assertTrue(step[1]) i += 1