annotate tests/test-template-engine.t @ 12765:5eed9ceebd64

merge: when --tool is specified, disable HGMERGE by setting to empty string HGMERGE has different semantics than ui.merge. HGMERGE should hold the name on an executable in your path, or an absolute tool path. As such, it's not safe to simply copy the user's specified --tool value into HGMERGE. Instead, we disable HGMERGE by setting it to an empty string.
author Steve Borho <steve@borho.org>
date Mon, 18 Oct 2010 23:20:14 -0500
parents dc6b9b3bf63e
children f2719b387380
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8361
d8c5a7f25a40 templater: make the templating engine pluggable to some extent
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
1
12493
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
2 $ cat > engine.py << EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
3 >
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
4 > from mercurial import templater
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
5 >
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
6 > class mytemplater(object):
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
7 > def __init__(self, loader, filters, defaults):
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
8 > self.loader = loader
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
9 >
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
10 > def process(self, t, map):
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
11 > tmpl = self.loader(t)
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
12 > for k, v in map.iteritems():
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
13 > if k in ('templ', 'ctx', 'repo', 'revcache', 'cache'):
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
14 > continue
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
15 > if hasattr(v, '__call__'):
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
16 > v = v(**map)
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
17 > v = templater.stringify(v)
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
18 > tmpl = tmpl.replace('{{%s}}' % k, v)
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
19 > yield tmpl
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
20 >
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
21 > templater.engines['my'] = mytemplater
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
22 > EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
23 $ hg init test
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
24 $ echo '[extensions]' > test/.hg/hgrc
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
25 $ echo "engine = `pwd`/engine.py" >> test/.hg/hgrc
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
26 $ cd test
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
27 $ cat > mymap << EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
28 > changeset = my:changeset.txt
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
29 > EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
30 $ cat > changeset.txt << EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
31 > {{rev}} {{node}} {{author}}
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
32 > EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
33 $ hg ci -Ama
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
34 adding changeset.txt
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
35 adding mymap
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
36 $ hg log --style=./mymap
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
37 0 97e5f848f0936960273bbf75be6388cd0350a32b test