Display flags in show files output
authorJeremy Stanley <fungi@yuggoth.org>
Wed, 27 Sep 2017 16:48:47 +0000 (16:48 +0000)
committerJeremy Stanley <fungi@yuggoth.org>
Wed, 27 Sep 2017 16:48:47 +0000 (16:48 +0000)
When the "show files" command is issued, any optional file flags
such as "private" are displayed after the filename.

Also add a selftest to exercise this command.

mudpy/misc.py
mudpy/tests/selftest.py

index d43a7e2..32c0d68 100644 (file)
@@ -2133,15 +2133,17 @@ def command_show(actor, parameters):
             message += "$(eol)   $(grn)" + category + "$(nrm)"
     elif arguments[0] == "files":
         message = "These are the current files containing the universe:$(eol)"
-        filenames = list(universe.files.keys())
-        filenames.sort()
+        filenames = sorted(universe.files)
         for filename in filenames:
             if universe.files[filename].is_writeable():
                 status = "rw"
             else:
                 status = "ro"
-            message += ("$(eol)   $(red)(" + status + ") $(grn)" + filename
-                        + "$(nrm)")
+            message += ("$(eol)   $(red)(%s) $(grn)%s$(nrm)" %
+                        (status, filename))
+            if universe.files[filename].flags:
+                message += (" $(yel)[%s]$(nrm)" %
+                            ",".join(universe.files[filename].flags))
     elif arguments[0] == "category":
         if len(arguments) != 2:
             message = "You must specify one category."
index 5da058c..261fa06 100644 (file)
@@ -170,6 +170,13 @@ test_set_refused = (
     (2, r'The "mudpy\.limit" element is kept in read-only file', ""),
 )
 
+test_show_files = (
+    (2, "> ", "show files"),
+    (2, r'These are the current files containing the universe:.*'
+        r'  \x1b\[31m\(rw\) \x1b\[32m/.*/account.yaml\x1b\[0m'
+        r' \x1b\[33m\[private\]\x1b\[0m.*> ', ""),
+)
+
 test_show_element = (
     (2, "> ", "show element mudpy.limit"),
     (2, r'These are the properties of the "mudpy\.limit" element.*'
@@ -220,6 +227,7 @@ dialogue = (
     (test_reload, "reload"),
     (test_set_facet, "set facet"),
     (test_set_refused, "refuse altering read-only element"),
+    (test_show_files, "show a list of loaded files"),
     (test_show_element, "show element"),
     (test_show_log, "show log"),
     (test_custom_loglevel, "custom loglevel"),