From: Jeremy Stanley Date: Thu, 15 Jun 2017 15:26:10 +0000 (+0000) Subject: Coerce loglevel facet to int when updating X-Git-Tag: 0.0.1~158 X-Git-Url: https://mudpy.org/gitweb?p=mudpy.git;a=commitdiff_plain;h=9d7268dbda760522aaef21b6f40c9b3358a20ffb;hp=dc22daedb7bba8e79e7ec878ec16d3ce57229279 Coerce loglevel facet to int when updating Calling the set command always results in updating values to type str, which can result in failures when those values are later re-read. Explicitly coerce the loglevel value to int whenever it is updated to avoid a subsequent exception when calling the show log command. This points out a need for maintaining a schema so that values can be coerced to the appropriate type when needed, but for now the conditional adjustment can serve as a placeholder for a more thorough design. --- diff --git a/mudpy/misc.py b/mudpy/misc.py index 2923feb..6cb7804 100644 --- a/mudpy/misc.py +++ b/mudpy/misc.py @@ -154,6 +154,8 @@ class Element: def set(self, facet, value): """Set values.""" + if facet in ["loglevel"]: + value = int(value) if not self.has_facet(facet) or not self.get(facet) == value: if self.old_style: if self.key not in self.origin.data: diff --git a/mudpy/tests/selftest.py b/mudpy/tests/selftest.py index 27378e9..56814d4 100644 --- a/mudpy/tests/selftest.py +++ b/mudpy/tests/selftest.py @@ -167,6 +167,13 @@ test_show_log = ( "[0-9]+\. The matching lines\r\nfrom [0-9]+ to [0-9]+ are:", ""), ) +test_custom_loglevel = ( + (2, "> ", "set account:admin loglevel 2"), + (2, "You have successfully .*> ", "show log"), + (2, "There are [0-9]+ log lines in memory and [0-9]+ at or above level " + "[0-9]+\. The matching lines\r\nfrom [0-9]+ to [0-9]+ are:", ""), +) + test_log_no_errors = ( (2, "> ", "show log 7"), (2, "None of the [0-9]+ lines in memory matches your request\.", ""), @@ -189,6 +196,7 @@ dialogue = ( (test_admin_help, "admin help"), (test_show_element, "show element"), (test_show_log, "show log"), + (test_custom_loglevel, "show log"), (test_log_no_errors, "no errors logged"), )