def defaults(self): ''' By default should return None just once ''' spec = Spec(MockResult(MockCall(MockSpec(), ''))) spec.specified_times().should_be(1) spec.times_remaining().should_be(1) spec.then(spec.next()).should_be(None) spec.then(spec.times_remaining()).should_be(0) spec.then(spec.next()).should_raise(UnmetSpecification)
def return_twice(self): ''' times(2) should return default (None) value just twice ''' spec = Spec(MockResult(MockCall(MockSpec(), ''))) spec.when(spec.times(2)) spec.then(spec.specified_times()).should_be(2) spec.then(spec.times_remaining()).should_be(2) spec.then(spec.times_remaining()).should_be(2) spec.then(spec.next()).should_be(None) spec.then(spec.times_remaining()).should_be(1) spec.then(spec.next()).should_be(None) spec.then(spec.times_remaining()).should_be(0) spec.then(spec.next()).should_raise(UnmetSpecification)
def raise_exception(self): ''' raises(exception) should raise exceptions in the same fashion as will_suppply_values should return values ''' spec = Spec(MockResult(MockCall(MockSpec(), ''))) exception = ValueError('the number of the counting shall be three') spec.when(spec.raises(exception)) spec.then(spec.next()).should_raise(exception) spec.then(spec.times_remaining()).should_be(0) spec.then(spec.next()).should_raise(UnmetSpecification) spec = Spec(MockResult(MockCall(MockSpec(), ''))) exception = ValueError('the number of the counting shall be three') spec.when(spec.times(2), spec.raises(exception)) spec.then(spec.next()).should_raise(exception) spec.then(spec.next()).should_raise(exception) spec.then(spec.next()).should_raise(UnmetSpecification) spec = Spec(MockResult(MockCall(MockSpec(), ''))) exceptions = (ValueError('the number of the counting shall be three'), ValueError('Four shalt thou not count')) spec.when(spec.times(2), spec.raises(*exceptions)) spec.then(spec.next()).should_raise(exceptions[0]) spec.then(spec.next()).should_raise(exceptions[1]) spec.then(spec.next()).should_raise(UnmetSpecification)