Patchwork D6327: gendoc: guarantee that all commands were processed

login
register
mail settings
Submitter phabricator
Date May 5, 2019, 5:12 a.m.
Message ID <3c5609f256a47fe54d657998a76c8ce3@localhost.localdomain>
Download mbox | patch
Permalink /patch/39956/
State Not Applicable
Headers show

Comments

phabricator - May 5, 2019, 5:12 a.m.
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG037a97d62625: gendoc: guarantee that all commands were processed (authored by Sietse, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D6327?vs=14999&id=15013

REVISION DETAIL
  https://phab.mercurial-scm.org/D6327

AFFECTED FILES
  doc/gendoc.py

CHANGE DETAILS




To: Sietse, #hg-reviewers, martinvonz
Cc: martinvonz, mercurial-devel

Patch

diff --git a/doc/gendoc.py b/doc/gendoc.py
--- a/doc/gendoc.py
+++ b/doc/gendoc.py
@@ -194,13 +194,19 @@ 
         helpcategory = details[0].helpcategory
         return helpcategory or help.registrar.command.CATEGORY_NONE
 
+    cmdsbycategory = {category: [] for category in help.CATEGORY_ORDER}
+    for cmd in cmds:
+        # If a command category wasn't registered, the command won't get
+        # rendered below, so we raise an AssertionError.
+        if helpcategory(cmd) not in cmdsbycategory:
+            raise AssertionError(
+                "The following command did not register its (category) in "
+                "help.CATEGORY_ORDER: %s (%s)" % (cmd, helpcategory(cmd)))
+        cmdsbycategory[helpcategory(cmd)].append(cmd)
+
     # Print the help for each command. We present the commands grouped by
     # category, and we use help.CATEGORY_ORDER as a guide for a helpful order
     # in which to present the categories.
-    cmdsbycategory = {category: [] for category in help.CATEGORY_ORDER}
-    for cmd in cmds:
-        cmdsbycategory[helpcategory(cmd)].append(cmd)
-
     for category in help.CATEGORY_ORDER:
         categorycmds = cmdsbycategory[category]
         if not categorycmds:
@@ -250,7 +256,6 @@ 
             if d[b'aliases']:
                 ui.write(_(b"    aliases: %s\n\n") % b" ".join(d[b'aliases']))
 
-
 def allextensionnames():
     return set(extensions.enabled().keys()) | set(extensions.disabled().keys())