summaryrefslogtreecommitdiffstats
path: root/ipalib
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-09-03 22:14:25 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-09-03 22:14:25 +0000
commit004e989dc493a703b0f85be164409443416bf894 (patch)
tree5b6b6a75f315183bebc77e58f136d2d5672b539c /ipalib
parent62533bfb2baa2eac7a1361627f90bdda97452605 (diff)
downloadfreeipa-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.py6
-rw-r--r--ipalib/tests/test_errors.py28
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