def setUp(self): self.history = [] self.stepper = Stepper()
class StepperTestCase(TestCase): def setUp(self): self.history = [] self.stepper = Stepper() def _record(self, value, failure): self.history.append(value) @inlineCallbacks def test_allSuccess(self): self.stepper.addStep( StepOne(self._record, False) ).addStep( StepTwo(self._record, False) ).addStep( StepThree(self._record, False) ).addStep( StepFour(self._record, False) ) result = (yield self.stepper.start("abc")) self.assertEquals(result, "abc") # original result passed through self.assertEquals( self.history, ['one success', 'two success', 'three success', 'four success']) def test_allFailure(self): self.stepper.addStep(StepOne(self._record, True)) self.stepper.addStep(StepTwo(self._record, True)) self.stepper.addStep(StepThree(self._record, True)) self.stepper.addStep(StepFour(self._record, True)) self.failUnlessFailure(self.stepper.start(), ZeroDivisionError) self.assertEquals( self.history, ['one success', 'two failure', 'three failure', 'four failure']) @inlineCallbacks def test_partialFailure(self): self.stepper.addStep(StepOne(self._record, True)) self.stepper.addStep(StepTwo(self._record, False)) self.stepper.addStep(StepThree(self._record, True)) self.stepper.addStep(StepFour(self._record, False)) result = (yield self.stepper.start("abc")) self.assertEquals(result, None) # original result is gone self.assertEquals( self.history, ['one success', 'two failure', 'three success', 'four failure'])