diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2008-09-03 22:14:25 +0000 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-09-03 22:14:25 +0000 |
commit | 004e989dc493a703b0f85be164409443416bf894 (patch) | |
tree | 5b6b6a75f315183bebc77e58f136d2d5672b539c /ipalib | |
parent | 62533bfb2baa2eac7a1361627f90bdda97452605 (diff) | |
download | freeipa-004e989dc493a703b0f85be164409443416bf894.tar.gz freeipa-004e989dc493a703b0f85be164409443416bf894.tar.xz freeipa-004e989dc493a703b0f85be164409443416bf894.zip |
246: Added unit tests for errors.RuleError
Diffstat (limited to 'ipalib')
-rw-r--r-- | ipalib/errors.py | 6 | ||||
-rw-r--r-- | ipalib/tests/test_errors.py | 28 |
2 files changed, 31 insertions, 3 deletions
diff --git a/ipalib/errors.py b/ipalib/errors.py index de9a43a5..9f40ddae 100644 --- a/ipalib/errors.py +++ b/ipalib/errors.py @@ -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' diff --git a/ipalib/tests/test_errors.py b/ipalib/tests/test_errors.py index 3b89c7ed..b1552562 100644 --- a/ipalib/tests/test_errors.py +++ b/ipalib/tests/test_errors.py @@ -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 |