Mercurial > hg
changeset 20857:6eb55310fcbc stable
templater: raise error for unknown func
Previously, if a template '{foo()}' was given, the buildfunc would not be able
to match it and hit a code path that would not return so it would error out
later in the templater stating that NoneType was not iterable. This patch makes
sure that a proper error is raised so that the user can be informed.
Tests have been updated.
author | Sean Farley <sean.michael.farley@gmail.com> |
---|---|
date | Thu, 27 Mar 2014 17:21:27 -0500 |
parents | dd2e25e49862 |
children | bc56ec9e64df |
files | mercurial/templater.py tests/test-command-template.t |
diffstat | 2 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/templater.py Fri Mar 07 14:06:52 2014 -0500 +++ b/mercurial/templater.py Thu Mar 27 17:21:27 2014 -0500 @@ -212,6 +212,7 @@ raise error.ParseError(_("filter %s expects one argument") % n) f = context._filters[n] return (runfilter, (args[0][0], args[0][1], f)) + raise error.ParseError(_("unknown function '%s'") % n) def date(context, mapping, args): if not (1 <= len(args) <= 2):
--- a/tests/test-command-template.t Fri Mar 07 14:06:52 2014 -0500 +++ b/tests/test-command-template.t Thu Mar 27 17:21:27 2014 -0500 @@ -1416,6 +1416,12 @@ abort: template filter 'datefilter' is not compatible with keyword 'author' [255] +Thrown an error if a template function doesn't exist + + $ hg tip --template '{foo()}\n' + hg: parse error: unknown function 'foo' + [255] + $ cd ..