Add version command and diagnostic logging
[mudpy.git] / mudpy / tests / selftest.py
index 766f01d..b859484 100644 (file)
@@ -151,6 +151,13 @@ test_telnet_iac = (
     (2, r"Non-UTF-8 sequence from admin: b'say argle\\xffbargle'.*> ", ""),
 )
 
+test_telnet_unknown = (
+    # Send an unsupported negotiation command #127 which should get filtered
+    # from the line of input
+    (2, "> ", b"say glop\xff\x7fglyf\r\n"),
+    (2, r'Unknown Telnet IAC command 127 ignored\..*"Glopglyf\.".*> ', ""),
+)
+
 test_admin_restriction = (
     (0, "> ", "help halt"),
     (0, r"That is not an available command\.", "halt"),
@@ -179,6 +186,11 @@ test_set_refused = (
     (2, r'The "mudpy\.limit" element is kept in read-only file', ""),
 )
 
+test_show_version = (
+    (2, "> ", "show version"),
+    (2, r"Running mudpy .* on .* Python 3.*with.*pyyaml.*> ", ""),
+)
+
 test_show_files = (
     (2, "> ", "show files"),
     (2, r'These are the current files containing the universe:.*'
@@ -250,11 +262,13 @@ dialogue = (
     (test_account1_teardown, "second account teardown"),
     (test_admin_setup, "admin account setup"),
     (test_telnet_iac, "escape stray telnet iac bytes"),
+    (test_telnet_unknown, "strip unknown telnet command"),
     (test_admin_restriction, "restricted admin commands"),
     (test_admin_help, "admin help"),
     (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_files, "show a list of loaded files"),
     (test_show_file, "show nodes from a specific file"),
     (test_show_groups, "show groups"),