246: Added unit tests for errors.RuleError

This commit is contained in:
Jason Gerard DeRose 2008-09-03 22:14:25 +00:00
parent 62533bfb2b
commit 004e989dc4
2 changed files with 31 additions and 3 deletions

View File

@ -145,8 +145,9 @@ class RuleError(ValidationError):
Raised when a value fails a validation rule.
"""
def __init__(self, name, value, error, rule, index=None):
self.rule_name = rule.__name__
ValidationError.__init__(self, name, value, error, index)
assert callable(rule)
self.rule = rule
ValidationError.__init__(self, name, value, error, index=index)
class RequirementError(ValidationError):
@ -233,6 +234,5 @@ class MissingOverrideError(RegistrationError):
return self.msg % (self.base.__name__, self.cls.__name__, self.cls)
class TwiceSetError(IPAError):
msg = '%s.%s cannot be set twice'

View File

@ -223,3 +223,31 @@ class test_ConversionError(ClassChecker):
type_.conversion_error)
# Check that index default is None:
assert self.cls(name, value, type_).index is None
class test_RuleError(ClassChecker):
"""
Tests the `errors.RuleError` exception.
"""
_cls = errors.RuleError
def test_class(self):
assert self.cls.__bases__ == (errors.ValidationError,)
def test_init(self):
"""
Tests the `errors.RuleError.__init__` method.
"""
name = 'whatever'
value = 'The smallest weird number.'
def my_rule(value):
return 'Value is bad.'
error = my_rule(value)
for index in (None, 42):
e = self.cls(name, value, error, my_rule, index=index)
assert e.name is name
assert e.value is value
assert e.error is error
assert e.rule is my_rule
# Check that index default is None:
assert self.cls(name, value, error, my_rule).index is None