@command(test_cmds)
+class test_error(_test_init):
+ """Create an error message with optional message"""
+
+ def main(self, errmsg='', importance=0, index=0):
+ from kamaki.cli.errors import raiseCLIError
+ l = [1, 2]
+ try:
+ l[int(index)]
+ except Exception as err:
+ raiseCLIError(err, errmsg, importance)
+ raiseCLIError(None, errmsg, importance)
+
+
+@command(test_cmds)
class test_args(_test_init):
"""Test how arguments are treated by kamaki"""
"""
from traceback import format_stack
stack = ['%s' % type(err)] if err else ['<kamaki.cli.errors.CLIError>']
- recvlog.debug('\n'.join(stack + format_stack()))
+ stack += format_stack()
+ try:
+ stack = [e for e in stack if e != stack[1]]
+ except KeyError:
+ recvlog.debug('\n < '.join(stack))
if details and not isinstance(details, list):
details = ['%s' % details]
origerr = '%s' % err
origerr = origerr if origerr else '%s' % type(err)
else:
- origerr = stack
+ origerr = stack[0]
- if message:
- details.append(origerr)
- else:
- message = origerr
+ message = message if message else stack[0]
try:
status = err.status
except AttributeError:
status = None
+ if origerr not in details + [message]:
+ details.append(origerr)
try:
details.append(err.details)
except AttributeError:
pass
+ message += '' if message and message[-1] == '\n' else '\n'
if status:
message = '(%s) %s' % (err.status, message)
try: