Replace show result with debug evaluate command
[mudpy.git] / mudpy / tests / selftest.py
index 0bd2dd9..c6f3398 100644 (file)
@@ -340,17 +340,32 @@ 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.*> ",
-     "show result mudpy"),
-    (2, r"<module 'mudpy' from.*> ", "show result re"),
-    (2, r"Your expression raised an exception.*name 're' is not defined.*> ",
-     "show result universe"),
-    (2, r"<mudpy\.misc\.Universe object at 0x.*> ", "show result actor"),
-    (2, r"Your expression raised an exception.*name 'actor' is not "
-        r"defined.*> ", ""),
+test_evaluate = (
+    (2, "> ", "evaluate 12345*67890"),
+    (2, r"\r\n838102050\r\n.*> ", "evaluate 1/0"),
+    (2, "Your expression raised an exception.*division by zero.*> ",
+     "evaluate mudpy"),
+    (2, "<module 'mudpy' from.*> ", "evaluate re"),
+    (2, "Your expression raised an exception.*name 're' is not defined.*> ",
+     "evaluate universe"),
+    (2, r"<mudpy\.misc\.Universe object at 0x.*> ", "evaluate actor"),
+    (2, "Your expression raised an exception.*name 'actor' is not defined.*> ",
+        "evaluate dir(mudpy)"),
+    (2, "__builtins__.*> ", "evaluate mudpy.__builtins__.open"),
+    (2, "not allowed.*> ", "evaluate (lambda x: x + 1)(2)"),
+    (2, "not allowed.*> ", ""),
+)
+
+test_debug_restricted = (
+    (0, "> ", "help evaluate"),
+    (0, r"That is not an available command\.", "evaluate"),
+    (0, '(not sure what "evaluate" means|Arglebargle, glop-glyf)', ""),
+)
+
+test_debug_disabled = (
+    (2, "> ", "help evaluate"),
+    (2, r"That is not an available command\.", "evaluate"),
+    (2, '(not sure what "evaluate" means|Arglebargle, glop-glyf)', ""),
 )
 
 test_show_log = (
@@ -426,7 +441,9 @@ dialogue = odict((
     (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_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"),
@@ -435,9 +452,11 @@ dialogue = odict((
 ))
 
 debug_tests = (
+    test_evaluate,
 )
 
 nondebug_tests = (
+    test_debug_disabled,
 )