[fix] Add better error reporting from EvMenu

This commit is contained in:
Griatch 2018-03-19 20:27:55 +01:00
parent c05f9463ed
commit 5410640de3
2 changed files with 8 additions and 3 deletions

View file

@ -182,7 +182,8 @@ _CMD_NOINPUT = cmdhandler.CMD_NOINPUT
# i18n
from django.utils.translation import ugettext as _
_ERR_NOT_IMPLEMENTED = _("Menu node '{nodename}' is not implemented. Make another choice.")
_ERR_NOT_IMPLEMENTED = _("Menu node '{nodename}' is either not implemented or "
"caused an error. Make another choice.")
_ERR_GENERAL = _("Error in menu node '{nodename}'.")
_ERR_NO_OPTION_DESC = _("No description.")
_HELP_FULL = _("Commands: <menu option>, help, quit")
@ -573,6 +574,7 @@ class EvMenu(object):
except EvMenuError:
errmsg = _ERR_GENERAL.format(nodename=callback)
self.caller.msg(errmsg, self._session)
logger.log_trace()
raise
return ret
@ -606,9 +608,11 @@ class EvMenu(object):
nodetext, options = ret, None
except KeyError:
self.caller.msg(_ERR_NOT_IMPLEMENTED.format(nodename=nodename), session=self._session)
logger.log_trace()
raise EvMenuError
except Exception:
self.caller.msg(_ERR_GENERAL.format(nodename=nodename), session=self._session)
logger.log_trace()
raise
# store options to make them easier to test

View file

@ -754,12 +754,13 @@ def _node_check_desc(caller, desc):
def node_desc(caller):
metaprot = _get_menu_metaprot(caller)
text = ["|cDescribe|n briefly the prototype for viewing in listings."]
desc = metaprot.desc
if desc:
text.append("The current desc is:\n\"|y{desc}|n\"".format(desc))
text.append("The current desc is:\n\"|y{desc}|n\"".format(desc=desc))
else:
text.append("Description is currently unset.")
text = "\n".join(text)
@ -788,7 +789,7 @@ def node_tags(caller):
tags = metaprot.tags
if tags:
text.append("The current tags are:\n|y{tags}|n".format(tags))
text.append("The current tags are:\n|y{tags}|n".format(tags=tags))
else:
text.append("No tags are currently set.")
text = "\n".join(text)