annotate tests/test-template-engine.t @ 37132:a54113fcc8c9

lfs: move the 'supportedoutgoingversions' handling to changegroup.py This handling already exists here for the narrow extension. We still need to either figure out how to enable changegroup v3 without the extension, or figure out how to let the server detect that the client doesn't have it loaded, and emit a user friendly error[1]. I can't tell if D1944 is the appropriate vehicle for the latter. [1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2018-January/109550.html
author Matt Harbison <matt_harbison@yahoo.com>
date Mon, 26 Mar 2018 23:02:50 -0400
parents ff9cb7067329
children 7d3bc1d4e871
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 >
36920
6ff6e1d6b5b8 templater: move stringify() to templateutil module
Yuya Nishihara <yuya@tcha.org>
parents: 36445
diff changeset
4 > from mercurial import (
36970
e55d80804ace py3: make test-template-engine.t bytes-safe
Yuya Nishihara <yuya@tcha.org>
parents: 36969
diff changeset
5 > pycompat,
36920
6ff6e1d6b5b8 templater: move stringify() to templateutil module
Yuya Nishihara <yuya@tcha.org>
parents: 36445
diff changeset
6 > templater,
6ff6e1d6b5b8 templater: move stringify() to templateutil module
Yuya Nishihara <yuya@tcha.org>
parents: 36445
diff changeset
7 > templateutil,
6ff6e1d6b5b8 templater: move stringify() to templateutil module
Yuya Nishihara <yuya@tcha.org>
parents: 36445
diff changeset
8 > )
12493
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
9 >
36969
452696bf3e60 test-template-engine: deduplicate methods of custom template engine
Yuya Nishihara <yuya@tcha.org>
parents: 36920
diff changeset
10 > class mytemplater(templater.engine):
452696bf3e60 test-template-engine: deduplicate methods of custom template engine
Yuya Nishihara <yuya@tcha.org>
parents: 36920
diff changeset
11 > def _load(self, t):
452696bf3e60 test-template-engine: deduplicate methods of custom template engine
Yuya Nishihara <yuya@tcha.org>
parents: 36920
diff changeset
12 > return self._loader(t)
36445
e8d37838f5df templatekw: add 'requires' flag to switch to exception-safe interface
Yuya Nishihara <yuya@tcha.org>
parents: 36327
diff changeset
13 >
12493
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
14 > def process(self, t, map):
36969
452696bf3e60 test-template-engine: deduplicate methods of custom template engine
Yuya Nishihara <yuya@tcha.org>
parents: 36920
diff changeset
15 > tmpl = self._load(t)
35483
817a3d20dd01 templater: register keywords to defaults table
Yuya Nishihara <yuya@tcha.org>
parents: 35468
diff changeset
16 > props = self._defaults.copy()
817a3d20dd01 templater: register keywords to defaults table
Yuya Nishihara <yuya@tcha.org>
parents: 35468
diff changeset
17 > props.update(map)
36327
58c1368ab629 py3: use dict.items() instead of dict.iteritems() in tests
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35483
diff changeset
18 > for k, v in props.items():
36971
ff9cb7067329 test-template-engine: do not evaluate unused keywords by custom engine
Yuya Nishihara <yuya@tcha.org>
parents: 36970
diff changeset
19 > if b'{{%s}}' % k not in tmpl:
12493
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
20 > continue
36445
e8d37838f5df templatekw: add 'requires' flag to switch to exception-safe interface
Yuya Nishihara <yuya@tcha.org>
parents: 36327
diff changeset
21 > if callable(v) and getattr(v, '_requires', None) is None:
35468
32c278eb876f templater: keep default resources per template engine (API)
Yuya Nishihara <yuya@tcha.org>
parents: 33709
diff changeset
22 > props = self._resources.copy()
32c278eb876f templater: keep default resources per template engine (API)
Yuya Nishihara <yuya@tcha.org>
parents: 33709
diff changeset
23 > props.update(map)
36970
e55d80804ace py3: make test-template-engine.t bytes-safe
Yuya Nishihara <yuya@tcha.org>
parents: 36969
diff changeset
24 > v = v(**pycompat.strkwargs(props))
36445
e8d37838f5df templatekw: add 'requires' flag to switch to exception-safe interface
Yuya Nishihara <yuya@tcha.org>
parents: 36327
diff changeset
25 > elif callable(v):
e8d37838f5df templatekw: add 'requires' flag to switch to exception-safe interface
Yuya Nishihara <yuya@tcha.org>
parents: 36327
diff changeset
26 > v = v(self, props)
36920
6ff6e1d6b5b8 templater: move stringify() to templateutil module
Yuya Nishihara <yuya@tcha.org>
parents: 36445
diff changeset
27 > v = templateutil.stringify(v)
36970
e55d80804ace py3: make test-template-engine.t bytes-safe
Yuya Nishihara <yuya@tcha.org>
parents: 36969
diff changeset
28 > tmpl = tmpl.replace(b'{{%s}}' % k, v)
12493
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
29 > yield tmpl
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
30 >
36970
e55d80804ace py3: make test-template-engine.t bytes-safe
Yuya Nishihara <yuya@tcha.org>
parents: 36969
diff changeset
31 > templater.engines[b'my'] = mytemplater
12493
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 init test
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
34 $ echo '[extensions]' > test/.hg/hgrc
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
35 $ echo "engine = `pwd`/engine.py" >> test/.hg/hgrc
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
36 $ cd test
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
37 $ cat > mymap << EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
38 > changeset = my:changeset.txt
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
39 > EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
40 $ cat > changeset.txt << EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
41 > {{rev}} {{node}} {{author}}
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
42 > EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
43 $ hg ci -Ama
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
44 adding changeset.txt
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
45 adding mymap
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
46 $ hg log --style=./mymap
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
47 0 97e5f848f0936960273bbf75be6388cd0350a32b test
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12493
diff changeset
48
17355
c25531ed58b0 templatekw: add parent1, parent1node, parent2, parent2node keywords
epriestley <hg@yghe.net>
parents: 16913
diff changeset
49 $ cat > changeset.txt << EOF
17358
2917f82f6040 templatekw: merge, preferring the second implementation
Bryan O'Sullivan <bryano@fb.com>
parents: 17355
diff changeset
50 > {{p1rev}} {{p1node}} {{p2rev}} {{p2node}}
17355
c25531ed58b0 templatekw: add parent1, parent1node, parent2, parent2node keywords
epriestley <hg@yghe.net>
parents: 16913
diff changeset
51 > EOF
c25531ed58b0 templatekw: add parent1, parent1node, parent2, parent2node keywords
epriestley <hg@yghe.net>
parents: 16913
diff changeset
52 $ hg ci -Ama
c25531ed58b0 templatekw: add parent1, parent1node, parent2, parent2node keywords
epriestley <hg@yghe.net>
parents: 16913
diff changeset
53 $ hg log --style=./mymap
c25531ed58b0 templatekw: add parent1, parent1node, parent2, parent2node keywords
epriestley <hg@yghe.net>
parents: 16913
diff changeset
54 0 97e5f848f0936960273bbf75be6388cd0350a32b -1 0000000000000000000000000000000000000000
c25531ed58b0 templatekw: add parent1, parent1node, parent2, parent2node keywords
epriestley <hg@yghe.net>
parents: 16913
diff changeset
55 -1 0000000000000000000000000000000000000000 -1 0000000000000000000000000000000000000000
c25531ed58b0 templatekw: add parent1, parent1node, parent2, parent2node keywords
epriestley <hg@yghe.net>
parents: 16913
diff changeset
56
28831
6b86ce3e3576 templater: give better error message for invalid engine type
Yuya Nishihara <yuya@tcha.org>
parents: 28213
diff changeset
57 invalid engine type:
6b86ce3e3576 templater: give better error message for invalid engine type
Yuya Nishihara <yuya@tcha.org>
parents: 28213
diff changeset
58
6b86ce3e3576 templater: give better error message for invalid engine type
Yuya Nishihara <yuya@tcha.org>
parents: 28213
diff changeset
59 $ echo 'changeset = unknown:changeset.txt' > unknownenginemap
6b86ce3e3576 templater: give better error message for invalid engine type
Yuya Nishihara <yuya@tcha.org>
parents: 28213
diff changeset
60 $ hg log --style=./unknownenginemap
6b86ce3e3576 templater: give better error message for invalid engine type
Yuya Nishihara <yuya@tcha.org>
parents: 28213
diff changeset
61 abort: invalid template engine: unknown
6b86ce3e3576 templater: give better error message for invalid engine type
Yuya Nishihara <yuya@tcha.org>
parents: 28213
diff changeset
62 [255]
6b86ce3e3576 templater: give better error message for invalid engine type
Yuya Nishihara <yuya@tcha.org>
parents: 28213
diff changeset
63
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12493
diff changeset
64 $ cd ..