def test_no_error_messages_when_the_set_is_valid(self): validator = config.ValidatorSet() validator.add(AlwaysTrueValidator()) validator.add(AlwaysTrueValidator()) validator.add(AlwaysTrueValidator()) self.assertEquals([], validator.is_valid()[1])
def test_a_set_is_valid_when_all_validators_are_valid(self): validator = config.ValidatorSet() validator.add(AlwaysTrueValidator()) validator.add(AlwaysTrueValidator()) validator.add(AlwaysTrueValidator()) self.assertTrue(validator.is_valid()[0]) validator.add(AlwaysFalseValidator("")) self.assertFalse(validator.is_valid()[0])
def test_the_set_keeps_track_of_the_failed_validators(self): validator = config.ValidatorSet() validator.add(AlwaysTrueValidator()) validator.add(AlwaysFalseValidator("MESSAGE#1")) validator.add(AlwaysFalseValidator("MESSAGE#2")) validator.add(AlwaysFalseValidator("MESSAGE#3")) self.assertFalse(validator.is_valid()[0]) error_messages = ["MESSAGE#1", "MESSAGE#2", "MESSAGE#3"] self.assertEquals(error_messages, validator.is_valid()[1])
def test_iter(self): """ValidatorSets are iterable (over the list of validators).""" vset = config.ValidatorSet() validators = [ RiskMandatoryParamsValidator(None, None), DisaggregationValidator(None), ScenarioComputationValidator(None, None), ] for v in validators: vset.add(v) for cnt, val in enumerate(vset): self.assertEqual(validators[cnt], val)
def test_with_a_single_validator_the_result_is_the_validator(self): validator = config.ValidatorSet() validator.add(AlwaysTrueValidator()) self.assertTrue(validator.is_valid()[0])
def test_an_empty_set_has_no_error_messages(self): self.assertEquals([], config.ValidatorSet().is_valid()[1])
def test_an_empty_set_is_valid(self): self.assertTrue(config.ValidatorSet().is_valid()[0])