From 5410640de3888d63ae36da8b2c7d49f5d64fd7ee Mon Sep 17 00:00:00 2001 From: Griatch Date: Mon, 19 Mar 2018 20:27:55 +0100 Subject: [PATCH] [fix] Add better error reporting from EvMenu --- evennia/utils/evmenu.py | 6 +++++- evennia/utils/spawner.py | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/evennia/utils/evmenu.py b/evennia/utils/evmenu.py index 9509bbd884..a6a77a871f 100644 --- a/evennia/utils/evmenu.py +++ b/evennia/utils/evmenu.py @@ -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: , 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 diff --git a/evennia/utils/spawner.py b/evennia/utils/spawner.py index e4d403157e..33fbb91346 100644 --- a/evennia/utils/spawner.py +++ b/evennia/utils/spawner.py @@ -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)