test-template-engine.t
71 lines
| 2.1 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 | > | ||
Yuya Nishihara
|
r36463 | > def symbol(self, mapping, key): | ||
> return mapping[key] | ||||
> | ||||
> def resource(self, mapping, key): | ||||
> v = self._resources[key] | ||||
> if v is None: | ||||
> v = mapping[key] | ||||
> return v | ||||
> | ||||
Matt Mackall
|
r12493 | > def process(self, t, map): | ||
> tmpl = self.loader(t) | ||||
Yuya Nishihara
|
r35499 | > props = self._defaults.copy() | ||
> props.update(map) | ||||
Pulkit Goyal
|
r36345 | > for k, v in props.items(): | ||
Boris Feld
|
r33675 | > if k in ('templ', 'ctx', 'repo', 'revcache', 'cache', 'troubles'): | ||
Matt Mackall
|
r12493 | > continue | ||
Yuya Nishihara
|
r36463 | > if callable(v) and getattr(v, '_requires', None) is None: | ||
Yuya Nishihara
|
r35484 | > props = self._resources.copy() | ||
> props.update(map) | ||||
> v = v(**props) | ||||
Yuya Nishihara
|
r36463 | > elif callable(v): | ||
> v = v(self, 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 .. | ||