test-template-engine.t
60 lines
| 1.8 KiB
| text/troff
|
Tads3Lexer
/ tests / test-template-engine.t
Matt Mackall
|
r12493 | |||
$ cat > engine.py << EOF | ||||
> | ||||
> from mercurial import templater | ||||
> | ||||
> class mytemplater(object): | ||||
Yuya Nishihara
|
r35484 | > def __init__(self, loader, filters, defaults, resources, aliases): | ||
Matt Mackall
|
r12493 | > self.loader = loader | ||
Yuya Nishihara
|
r35499 | > self._defaults = defaults | ||
Yuya Nishihara
|
r35484 | > self._resources = resources | ||
Matt Mackall
|
r12493 | > | ||
> def process(self, t, map): | ||||
> tmpl = self.loader(t) | ||||
Yuya Nishihara
|
r35499 | > props = self._defaults.copy() | ||
> props.update(map) | ||||
> for k, v in props.iteritems(): | ||||
Boris Feld
|
r33675 | > if k in ('templ', 'ctx', 'repo', 'revcache', 'cache', 'troubles'): | ||
Matt Mackall
|
r12493 | > continue | ||
> if hasattr(v, '__call__'): | ||||
Yuya Nishihara
|
r35484 | > props = self._resources.copy() | ||
> props.update(map) | ||||
> v = v(**props) | ||||
Matt Mackall
|
r12493 | > v = templater.stringify(v) | ||
> tmpl = tmpl.replace('{{%s}}' % k, v) | ||||
> yield tmpl | ||||
> | ||||
> templater.engines['my'] = mytemplater | ||||
> EOF | ||||
$ hg init test | ||||
$ echo '[extensions]' > test/.hg/hgrc | ||||
$ echo "engine = `pwd`/engine.py" >> test/.hg/hgrc | ||||
$ cd test | ||||
$ cat > mymap << EOF | ||||
> changeset = my:changeset.txt | ||||
> EOF | ||||
$ cat > changeset.txt << EOF | ||||
> {{rev}} {{node}} {{author}} | ||||
> EOF | ||||
$ hg ci -Ama | ||||
adding changeset.txt | ||||
adding mymap | ||||
$ hg log --style=./mymap | ||||
0 97e5f848f0936960273bbf75be6388cd0350a32b test | ||||
Mads Kiilerich
|
r16913 | |||
epriestley
|
r17355 | $ cat > changeset.txt << EOF | ||
Bryan O'Sullivan
|
r17358 | > {{p1rev}} {{p1node}} {{p2rev}} {{p2node}} | ||
epriestley
|
r17355 | > EOF | ||
$ hg ci -Ama | ||||
$ hg log --style=./mymap | ||||
0 97e5f848f0936960273bbf75be6388cd0350a32b -1 0000000000000000000000000000000000000000 | ||||
-1 0000000000000000000000000000000000000000 -1 0000000000000000000000000000000000000000 | ||||
Yuya Nishihara
|
r28831 | invalid engine type: | ||
$ echo 'changeset = unknown:changeset.txt' > unknownenginemap | ||||
$ hg log --style=./unknownenginemap | ||||
abort: invalid template engine: unknown | ||||
[255] | ||||
Mads Kiilerich
|
r16913 | $ cd .. | ||