##// END OF EJS Templates
tests: unify test-template-engine
Matt Mackall -
r12493:dc6b9b3b default
parent child Browse files
Show More
@@ -1,39 +1,37 b''
1 #!/bin/sh
2
1
3 cat > engine.py << EOF
2 $ cat > engine.py << EOF
4
3 >
5 from mercurial import templater
4 > from mercurial import templater
6
5 >
7 class mytemplater(object):
6 > class mytemplater(object):
8 def __init__(self, loader, filters, defaults):
7 > def __init__(self, loader, filters, defaults):
9 self.loader = loader
8 > self.loader = loader
10
9 >
11 def process(self, t, map):
10 > def process(self, t, map):
12 tmpl = self.loader(t)
11 > tmpl = self.loader(t)
13 for k, v in map.iteritems():
12 > for k, v in map.iteritems():
14 if k in ('templ', 'ctx', 'repo', 'revcache', 'cache'):
13 > if k in ('templ', 'ctx', 'repo', 'revcache', 'cache'):
15 continue
14 > continue
16 if hasattr(v, '__call__'):
15 > if hasattr(v, '__call__'):
17 v = v(**map)
16 > v = v(**map)
18 v = templater.stringify(v)
17 > v = templater.stringify(v)
19 tmpl = tmpl.replace('{{%s}}' % k, v)
18 > tmpl = tmpl.replace('{{%s}}' % k, v)
20 yield tmpl
19 > yield tmpl
21
20 >
22 templater.engines['my'] = mytemplater
21 > templater.engines['my'] = mytemplater
23 EOF
22 > EOF
24
23 $ hg init test
25 hg init test
24 $ echo '[extensions]' > test/.hg/hgrc
26 echo '[extensions]' > test/.hg/hgrc
25 $ echo "engine = `pwd`/engine.py" >> test/.hg/hgrc
27 echo "engine = `pwd`/engine.py" >> test/.hg/hgrc
26 $ cd test
28
27 $ cat > mymap << EOF
29 cd test
28 > changeset = my:changeset.txt
30 cat > mymap << EOF
29 > EOF
31 changeset = my:changeset.txt
30 $ cat > changeset.txt << EOF
32 EOF
31 > {{rev}} {{node}} {{author}}
33
32 > EOF
34 cat > changeset.txt << EOF
33 $ hg ci -Ama
35 {{rev}} {{node}} {{author}}
34 adding changeset.txt
36 EOF
35 adding mymap
37
36 $ hg log --style=./mymap
38 hg ci -Ama
37 0 97e5f848f0936960273bbf75be6388cd0350a32b test
39 hg log --style=./mymap
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now