Patchwork [4,of,4,V2] templater: add symbol to error

login
register
mail settings
Submitter Ryan McElroy
Date June 30, 2014, 8:16 a.m.
Message ID <fb64043de7c4ffc79ad3.1404116182@nexus.gateway.2wire.net>
Download mbox | patch
Permalink /patch/5081/
State Accepted
Commit 028a481051919e3c985261ac62606704435f9c6a
Headers show

Comments

Ryan McElroy - June 30, 2014, 8:16 a.m.
# HG changeset patch
# User Ryan McElroy <rmcelroy@fb.com>
# Date 1402621641 25200
#      Thu Jun 12 18:07:21 2014 -0700
# Node ID fb64043de7c4ffc79ad3639d2061e1861522c084
# Parent  ef4d286cea6073a99bc1b6196dc35627ee89ad8e
templater: add symbol to error

This patch makes it easier to debug writing templater functions by
telling the user exactly what was sent to the templater.
Sean Farley - June 30, 2014, 11:18 p.m.
Ryan McElroy writes:

> # HG changeset patch
> # User Ryan McElroy <rmcelroy@fb.com>
> # Date 1402621641 25200
> #      Thu Jun 12 18:07:21 2014 -0700
> # Node ID fb64043de7c4ffc79ad3639d2061e1861522c084
> # Parent  ef4d286cea6073a99bc1b6196dc35627ee89ad8e
> templater: add symbol to error
>
> This patch makes it easier to debug writing templater functions by
> telling the user exactly what was sent to the templater.

These look good to me.

Patch

diff -r ef4d286cea60 -r fb64043de7c4 mercurial/templater.py
--- a/mercurial/templater.py	Thu Jun 12 18:02:23 2014 -0700
+++ b/mercurial/templater.py	Thu Jun 12 18:07:21 2014 -0700
@@ -111,7 +111,7 @@ 
 def getsymbol(exp):
     if exp[0] == 'symbol':
         return exp[1]
-    raise error.ParseError(_("expected a symbol"))
+    raise error.ParseError(_("expected a symbol, got '%s'") % exp[0])
 
 def getlist(x):
     if not x:
diff -r ef4d286cea60 -r fb64043de7c4 tests/test-command-template.t
--- a/tests/test-command-template.t	Thu Jun 12 18:02:23 2014 -0700
+++ b/tests/test-command-template.t	Thu Jun 12 18:07:21 2014 -0700
@@ -1959,3 +1959,9 @@ 
   |
   o  line 1
      line 2
+
+Test bad template with better error message
+
+  $ hg log -Gv -R a --template '{desc|user()}'
+  hg: parse error: expected a symbol, got 'func'
+  [255]