logtoprocess: fix message formatting
authorBoris Feld <boris.feld@octobus.net>
Mon, 22 Oct 2018 15:47:30 +0200
changeset 40401 6bd477ee7294
parent 40400 db0dba2d157d
child 40402 106adc261492
logtoprocess: fix message formatting The logtoprocess used to try formatting the message using keyword options instead of always using the rest of the arguments. Update it to match blackbox behavior. Differential Revision: https://phab.mercurial-scm.org/D5180
hgext/logtoprocess.py
tests/test-logtoprocess.t
--- a/hgext/logtoprocess.py	Sat Aug 18 01:44:38 2018 +0200
+++ b/hgext/logtoprocess.py	Mon Oct 22 15:47:30 2018 +0200
@@ -113,10 +113,8 @@
                     # try to format the log message given the remaining
                     # arguments
                     try:
-                        # Python string formatting with % either uses a
-                        # dictionary *or* tuple, but not both. If we have
-                        # keyword options, assume we need a mapping.
-                        formatted = msg[0] % (opts or msg[1:])
+                        # Format the message as blackbox does
+                        formatted = msg[0] % msg[1:]
                     except (TypeError, KeyError):
                         # Failed to apply the arguments, ignore
                         formatted = msg[0]
--- a/tests/test-logtoprocess.t	Sat Aug 18 01:44:38 2018 +0200
+++ b/tests/test-logtoprocess.t	Mon Oct 22 15:47:30 2018 +0200
@@ -19,7 +19,7 @@
   > )
   > @command(b'foo', [])
   > def foo(ui, repo):
-  >     ui.log('foo', 'a message: %(bar)s\n', bar='spam')
+  >     ui.log('foo', 'a message: %s\n', 'spam')
   > EOF
   $ cp $HGRCPATH $HGRCPATH.bak
   $ cat >> $HGRCPATH << EOF
@@ -39,7 +39,7 @@
   > foo=(echo 'logtoprocess foo output:';
   >     echo "\$EVENT";
   >     echo "\$MSG1";
-  >     echo "\$OPT_BAR") > $TESTTMP/foo.log
+  >     echo "\$MSG2") > $TESTTMP/foo.log
   > EOF
 
 Running a command triggers both a ui.log('command') and a