test-template-engine.t
64 lines
| 1.8 KiB
| text/troff
|
Tads3Lexer
/ tests / test-template-engine.t
Matt Mackall
|
r12493 | |||
$ cat > engine.py << EOF | ||||
> | ||||
Yuya Nishihara
|
r36938 | > from mercurial import ( | ||
Yuya Nishihara
|
r36988 | > pycompat, | ||
Yuya Nishihara
|
r36938 | > templater, | ||
> templateutil, | ||||
> ) | ||||
Matt Mackall
|
r12493 | > | ||
Yuya Nishihara
|
r36987 | > class mytemplater(templater.engine): | ||
> def _load(self, t): | ||||
> return self._loader(t) | ||||
Yuya Nishihara
|
r36463 | > | ||
Matt Mackall
|
r12493 | > def process(self, t, map): | ||
Yuya Nishihara
|
r36987 | > tmpl = self._load(t) | ||
Yuya Nishihara
|
r35499 | > props = self._defaults.copy() | ||
> props.update(map) | ||||
Pulkit Goyal
|
r36345 | > for k, v in props.items(): | ||
Yuya Nishihara
|
r36989 | > if b'{{%s}}' % k not in tmpl: | ||
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) | ||||
Yuya Nishihara
|
r36988 | > v = v(**pycompat.strkwargs(props)) | ||
Yuya Nishihara
|
r36463 | > elif callable(v): | ||
> v = v(self, props) | ||||
Yuya Nishihara
|
r37290 | > v = templateutil.stringify(self, props, v) | ||
Yuya Nishihara
|
r36988 | > tmpl = tmpl.replace(b'{{%s}}' % k, v) | ||
Matt Mackall
|
r12493 | > yield tmpl | ||
> | ||||
Yuya Nishihara
|
r36988 | > templater.engines[b'my'] = mytemplater | ||
Matt Mackall
|
r12493 | > 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 .. | ||