Test the show result command
[mudpy.git] / mudpy / tests / selftest.py
index 2325f62..ddb09f0 100644 (file)
@@ -165,9 +165,10 @@ test_admin_setup = (
 
 test_preferences = (
     (0, "> ", "preferences"),
-    (0, r"prompt \x1b\[32m.*> ", "preferences prompt #"),
-    (0, r"# ", "preferences prompt"),
-    (0, r"#.*# ", "preferences prompt >"),
+    (0, r"prompt \x1b\[32m.*> ", "preferences prompt $(foo)"),
+    (0, r"\$\(foo\) ", "preferences prompt"),
+    (0, r"\$\(foo\).*\$\(foo\) ", "preferences prompt $(time)>"),
+    (0, "[0-9]> ", "preferences prompt >"),
     (2, "> ", "preferences loglevel 0"),
     (2, "> ", "preferences"),
     (2, r"loglevel \x1b\[32m0\x1b\[0m.*> ", "preferences loglevel zero"),
@@ -214,6 +215,12 @@ test_admin_help = (
     (2, "This will save all active accounts", ""),
 )
 
+test_abbrev = (
+    (0, "> ", "help mov"),
+    (0, r"Move in a specific direction\.", "mov north"),
+    (0, r"You exit to the north\.", ""),
+)
+
 test_reload = (
     (2, "> ", "reload"),
     (2, r"Reloading all code modules, configs and data\."
@@ -238,6 +245,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:.*'
@@ -272,6 +284,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 "
@@ -333,15 +351,18 @@ dialogue = (
     (test_telnet_unknown_option, "log unknown telnet option"),
     (test_admin_restriction, "restricted admin commands"),
     (test_admin_help, "admin help"),
+    (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"),