From 94eb9e7a09b1edf0d4c600c4f3c1cc4e709af1c9 Mon Sep 17 00:00:00 2001 From: Jeremy Stanley Date: Sun, 1 Nov 2020 16:52:07 +0000 Subject: [PATCH] Switch the selftest dialogue to a normal dict 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 | 105 ++++++++++++++++++++++-------------------------- 1 file changed, 49 insertions(+), 56 deletions(-) diff --git a/mudpy/tests/selftest.py b/mudpy/tests/selftest.py index bb19d33..c14baff 100644 --- a/mudpy/tests/selftest.py +++ b/mudpy/tests/selftest.py @@ -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] -- 2.11.0