X-Git-Url: https://mudpy.org/gitweb?p=mudpy.git;a=blobdiff_plain;f=mudpy%2Ftests%2Fselftest.py;h=512ead10991518e3a6e5027989c476240b7d4b87;hp=3b00b48b57d8fbc73d318bb4f6d1028de32c7866;hb=bf6ed46991ffdc587d4e70362a4bd20d6f84fcee;hpb=b7a0d21774ff74bcf66315a4d14b788263f41dea diff --git a/mudpy/tests/selftest.py b/mudpy/tests/selftest.py index 3b00b48..512ead1 100644 --- a/mudpy/tests/selftest.py +++ b/mudpy/tests/selftest.py @@ -111,6 +111,11 @@ test_forbid_ansi_input = ( (1, r'says, "\[35mfoo\[0m\."', ""), ) +test_escape_macros = ( + (0, '> ', "say $(red)bar$(nrm)"), + (1, r'says, "\$\(red\)bar\$\(nrm\)."', ""), +) + test_movement = ( (0, "> ", "move north"), (0, r"You exit to the north\.", ""), @@ -160,12 +165,14 @@ test_admin_setup = ( test_preferences = ( (0, "> ", "preferences"), - (0, r"prompt \x1b\[32m.*> ", "preferences prompt #"), - (0, r"# ", "preferences prompt"), - (0, r"#.*# ", "preferences prompt >"), + (0, r"\[32mprompt\x1b\[0m - .*> ", "preferences prompt $(foo)"), + (0, r"\$\(foo\) ", "preferences prompt"), + (0, r"\$\(foo\).*\$\(foo\) ", "preferences prompt $(time)>"), + (0, "[0-9]> ", "preferences loglevel 0"), + (0, "does not exist.*> ", "preferences prompt >"), (2, "> ", "preferences loglevel 0"), (2, "> ", "preferences"), - (2, r"loglevel \x1b\[32m0\x1b\[0m.*> ", "preferences loglevel zero"), + (2, r"\[31mloglevel\x1b\[0m - 0.*> ", "preferences loglevel zero"), (2, r'''cannot be set to type ""\..*> ''', ""), ) @@ -209,6 +216,19 @@ test_admin_help = ( (2, "This will save all active accounts", ""), ) +test_help = ( + (0, "> ", "help say"), + (0, r"See also: .*chat.*> ", ""), +) + +test_abbrev = ( + (0, "> ", "h"), + (0, r"h\[elp\].*m\[ove\].*> ", "he mo"), + (0, r"Move in a specific direction\..*> ", "mov nor"), + (0, r"You exit to the north\..*> ", "m s"), + (0, r"You exit to the south\..*> ", ""), +) + test_reload = ( (2, "> ", "reload"), (2, r"Reloading all code modules, configs and data\." @@ -233,6 +253,11 @@ test_show_version = ( (2, r"Running mudpy .* on .* Python 3.*with.*pyyaml.*> ", ""), ) +test_show_time = ( + (2, "> ", "show time"), + (2, r"\r\n[0-9]+ increments elapsed.*> ", ""), +) + test_show_files = ( (2, "> ", "show files"), (2, r'These are the current files containing the universe:.*' @@ -267,6 +292,12 @@ test_show_element = ( r' \x1b\[32mgender: \x1b\[31mfemale.*> ', ""), ) +test_show_result = ( + (2, "> ", "show result 12345*67890"), + (2, r"\r\n838102050\r\n.*> ", "show result 1/0"), + (2, r"Your expression raised an exception.*division by zero.*> ", ""), +) + test_show_log = ( (2, "> ", "show log"), (2, r"There are [0-9]+ log lines in memory and [0-9]+ at or above level " @@ -316,6 +347,7 @@ dialogue = ( (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_account1_teardown, "second account teardown"), @@ -327,15 +359,19 @@ dialogue = ( (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_show_result, "show result of a python expression"), (test_show_log, "show log"), (test_custom_loglevel, "custom loglevel"), (test_invalid_loglevel, "invalid loglevel"), @@ -432,9 +468,9 @@ def option_callback(telnet_socket, command, option): # any response to avoid endlessly looping pass elif command in (telnetlib.DO, telnetlib.DONT): - telnet_socket.send(b"%s%s%s" % (telnetlib.IAC, telnetlib.WONT, option)) + telnet_socket.send(telnetlib.IAC + telnetlib.WONT + option) elif command in (telnetlib.WILL, telnetlib.WONT): - telnet_socket.send(b"%s%s%s" % (telnetlib.IAC, telnetlib.DONT, option)) + telnet_socket.send(telnetlib.IAC + telnetlib.DONT + option) def main():