summaryrefslogtreecommitdiffstats
path: root/tests/test_ipalib
diff options
context:
space:
mode:
authorAlexander Bokovoy <abokovoy@redhat.com>2012-10-12 12:13:59 +0300
committerRob Crittenden <rcritten@redhat.com>2012-10-11 16:30:58 -0400
commit88262a75ffe7a25640333dcc4da2100830cae821 (patch)
tree2d36698091fc5494c53f031551127f474d44c10c /tests/test_ipalib
parent1907f720d527b07a12a9525f5ae8680b6c21cd57 (diff)
downloadfreeipa-88262a75ffe7a25640333dcc4da2100830cae821.tar.gz
freeipa-88262a75ffe7a25640333dcc4da2100830cae821.tar.xz
freeipa-88262a75ffe7a25640333dcc4da2100830cae821.zip
Add instructions support to PublicError
When long additional text should follow the error message, one can supply instructions parameter to a class derived from PublicError. This will cause following text added to the error message: Additional instructions: <additional text> `instructions' optional parameter could be a list or anything that coerces into unicode(). List entries will be joined with '\n'. https://fedorahosted.org/freeipa/ticket/3167
Diffstat (limited to 'tests/test_ipalib')
-rw-r--r--tests/test_ipalib/test_errors.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/test_ipalib/test_errors.py b/tests/test_ipalib/test_errors.py
index 2fcdc56c8..1421e7844 100644
--- a/tests/test_ipalib/test_errors.py
+++ b/tests/test_ipalib/test_errors.py
@@ -318,6 +318,23 @@ class test_PublicError(PublicExceptionTester):
assert inst.text is kw['text']
assert inst.number is kw['number']
+ # Test with instructions:
+ # first build up "instructions", then get error and search for
+ # lines of instructions appended to the end of the strerror
+ # despite the parameter 'instructions' not existing in the format
+ instructions = u"The quick brown fox jumps over the lazy dog".split()
+ # this expression checks if each word of instructions
+ # exists in a string as a separate line, with right order
+ regexp = re.compile('(?ims).*' +
+ ''.join(map(lambda x: '(%s).*' % (x),
+ instructions)) +
+ '$')
+ inst = subclass(instructions=instructions, **kw)
+ assert inst.format is subclass.format
+ assert_equal(inst.instructions, instructions)
+ inst_match = regexp.match(inst.strerror).groups()
+ assert_equal(list(inst_match),list(instructions))
+
def test_public_errors():
"""