[PATCH 1 of 2] tests: add test that @commands in debugcommands.py are sorted

Gregory Szorc gregory.szorc at gmail.com
Fri Nov 25 18:04:47 UTC 2016


# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1480096505 28800
#      Fri Nov 25 09:55:05 2016 -0800
# Node ID 7b8444ec642e29b1a8cb3e63909d5caf9e4166d7
# Parent  906a7d8e969552536fffe0df7a5e63bf5d79b34b
tests: add test that @commands in debugcommands.py are sorted

I felt like inline Python in test-check-code.t was the most
appropriate place for this, as other linters in contrib/ seem to
be source file agnostic.

The test currently fails.

diff --git a/tests/test-check-code.t b/tests/test-check-code.t
--- a/tests/test-check-code.t
+++ b/tests/test-check-code.t
@@ -18,3 +18,20 @@ New errors are not allowed. Warnings are
   Skipping mercurial/httpclient/__init__.py it has no-che?k-code (glob)
   Skipping mercurial/httpclient/_readers.py it has no-che?k-code (glob)
   Skipping mercurial/statprof.py it has no-che?k-code (glob)
+
+ at commands in debugcommands.py should be in alphabetical order.
+
+  >>> import re
+  >>> commands = []
+  >>> with open('mercurial/debugcommands.py', 'rb') as fh:
+  ...     for line in fh:
+  ...         m = re.match("^@command\('([a-z]+)", line)
+  ...         if m:
+  ...             commands.append(m.group(1))
+  >>> scommands = list(sorted(commands))
+  >>> for i, command in enumerate(scommands):
+  ...     if command != commands[i]:
+  ...         print('commands in debugcommands.py not sorted; first differing '
+  ...               'command is %s; expected %s' % (commands[i], command))
+  ...         break
+  commands in debugcommands.py not sorted; first differing command is debugbuilddag; expected debugapplystreamclonebundle


More information about the Mercurial-devel mailing list