Switch the selftest dialogue to a normal dict
authorJeremy Stanley <fungi@yuggoth.org>
Sun, 1 Nov 2020 16:52:07 +0000 (16:52 +0000)
committerJeremy Stanley <fungi@yuggoth.org>
Sun, 1 Nov 2020 16:54:51 +0000 (16:54 +0000)
Starting with Python 3.6, dicts are implicitly ordered (albeit as a
side effect in 3.6, 3.7 is consistent with 3.6 and guarantees
ordering in interpreter versions from that point on). We no longer
need to use collections.OrderedDict for the selftest dialogue as a
result, so use a regular dict there now to simplify it.

mudpy/tests/selftest.py

index bb19d33..c14baff 100644 (file)
@@ -13,13 +13,6 @@ import time
 
 import yaml
 
-# TODO(fungi) Clean this up once Python 3.5 is no longer supported
-if sys.version < "3.6":
-    import collections
-    odict = collections.OrderedDict
-else:
-    odict = dict
-
 pidfile = "var/mudpy.pid"
 
 test_account0_setup = (
@@ -402,54 +395,54 @@ final_cleanup = (
     (2, r"Disconnecting\.\.\.", ""),
 )
 
-dialogue = odict((
-    (test_account0_setup, "first account setup"),
-    (test_account1_setup, "second account setup"),
-    (test_actor_appears, "actor spontaneous appearance"),
-    (test_explicit_punctuation, "explicit punctuation"),
-    (test_implicit_punctuation, "implicit punctuation"),
-    (test_typo_replacement, "typo replacement"),
-    (test_sentence_capitalization, "sentence capitalization"),
-    (test_chat_mode, "chat mode"),
-    (test_wrapping, "wrapping"),
-    (test_forbid_ansi_input, "raw escape input is filtered"),
-    (test_escape_macros, "replacement macros are escaped"),
-    (test_movement, "movement"),
-    (test_actor_disappears, "actor spontaneous disappearance"),
-    (test_abort_avatar_deletion, "abort avatar deletion"),
-    (test_avatar_creation_limit, "avatar creation limit"),
-    (test_avatar_deletion, "avatar deletion"),
-    (test_abort_account_deletion, "abort account deletion"),
-    (test_account_deletion, "account deletion"),
-    (test_admin_setup, "admin account setup"),
-    (test_preferences, "set and show preferences"),
-    (test_crlf_eol, "send crlf from the client as eol"),
-    (test_telnet_iac, "escape stray telnet iac bytes"),
-    (test_telnet_unknown_command, "strip unknown telnet command"),
-    (test_telnet_unknown_option, "log unknown telnet option"),
-    (test_admin_restriction, "restricted admin commands"),
-    (test_admin_help, "admin help"),
-    (test_help, "help command"),
-    (test_abbrev, "command abbreviation"),
-    (test_reload, "reload"),
-    (test_set_facet, "set facet"),
-    (test_set_refused, "refuse altering read-only element"),
-    (test_show_version, "show version and diagnostic info"),
-    (test_show_time, "show elapsed world clock increments"),
-    (test_show_files, "show a list of loaded files"),
-    (test_show_file, "show nodes from a specific file"),
-    (test_show_groups, "show groups"),
-    (test_show_group, "show group"),
-    (test_show_element, "show element"),
-    (test_evaluate, "show results of python expressions"),
-    (test_debug_restricted, "only admins can run debug commands"),
-    (test_debug_disabled, "debugging commands only in debug mode"),
-    (test_show_log, "show log"),
-    (test_custom_loglevel, "custom loglevel"),
-    (test_invalid_loglevel, "invalid loglevel"),
-    (test_log_no_errors, "no errors logged"),
-    (final_cleanup, "delete remaining accounts"),
-))
+dialogue = {
+    test_account0_setup: "first account setup",
+    test_account1_setup: "second account setup",
+    test_actor_appears: "actor spontaneous appearance",
+    test_explicit_punctuation: "explicit punctuation",
+    test_implicit_punctuation: "implicit punctuation",
+    test_typo_replacement: "typo replacement",
+    test_sentence_capitalization: "sentence capitalization",
+    test_chat_mode: "chat mode",
+    test_wrapping: "wrapping",
+    test_forbid_ansi_input: "raw escape input is filtered",
+    test_escape_macros: "replacement macros are escaped",
+    test_movement: "movement",
+    test_actor_disappears: "actor spontaneous disappearance",
+    test_abort_avatar_deletion: "abort avatar deletion",
+    test_avatar_creation_limit: "avatar creation limit",
+    test_avatar_deletion: "avatar deletion",
+    test_abort_account_deletion: "abort account deletion",
+    test_account_deletion: "account deletion",
+    test_admin_setup: "admin account setup",
+    test_preferences: "set and show preferences",
+    test_crlf_eol: "send crlf from the client as eol",
+    test_telnet_iac: "escape stray telnet iac bytes",
+    test_telnet_unknown_command: "strip unknown telnet command",
+    test_telnet_unknown_option: "log unknown telnet option",
+    test_admin_restriction: "restricted admin commands",
+    test_admin_help: "admin help",
+    test_help: "help command",
+    test_abbrev: "command abbreviation",
+    test_reload: "reload",
+    test_set_facet: "set facet",
+    test_set_refused: "refuse altering read-only element",
+    test_show_version: "show version and diagnostic info",
+    test_show_time: "show elapsed world clock increments",
+    test_show_files: "show a list of loaded files",
+    test_show_file: "show nodes from a specific file",
+    test_show_groups: "show groups",
+    test_show_group: "show group",
+    test_show_element: "show element",
+    test_evaluate: "show results of python expressions",
+    test_debug_restricted: "only admins can run debug commands",
+    test_debug_disabled: "debugging commands only in debug mode",
+    test_show_log: "show log",
+    test_custom_loglevel: "custom loglevel",
+    test_invalid_loglevel: "invalid loglevel",
+    test_log_no_errors: "no errors logged",
+    final_cleanup: "delete remaining accounts",
+}
 
 debug_tests = (
     test_evaluate,
@@ -573,7 +566,7 @@ def main():
     for luser in lusers:
         luser.open("::1", 4000)
         luser.set_option_negotiation_callback(option_callback)
-    selected_dialogue = odict(dialogue)
+    selected_dialogue = dict(dialogue)
     if check_debug():
         for test in nondebug_tests:
             del selected_dialogue[test]