tests/test-template-engine.t
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Fri, 06 Jul 2012 18:45:27 +0900
changeset 17157 87e8440964a0
parent 16913 f2719b387380
child 17355 c25531ed58b0
permissions -rw-r--r--
localrepo: use path expansion API via vfs As a part of migration to vfs, this patch moves path expansion API invocations in the constructor of "localrepository" to the constructor of "opener", because the root path to the repository is very important to handle paths using non-ASCII characters correctly. This patch also rearrange initialization order of "wvfs" field, because it is required to initialize "self.root".
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
  > 
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
     4
  > from mercurial import templater
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
     5
  > 
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
     6
  > class mytemplater(object):
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
     7
  >     def __init__(self, loader, filters, defaults):
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
     8
  >         self.loader = loader
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
     9
  > 
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    10
  >     def process(self, t, map):
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    11
  >         tmpl = self.loader(t)
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    12
  >         for k, v in map.iteritems():
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    13
  >             if k in ('templ', 'ctx', 'repo', 'revcache', 'cache'):
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    14
  >                 continue
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    15
  >             if hasattr(v, '__call__'):
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    16
  >                 v = v(**map)
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    17
  >             v = templater.stringify(v)
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    18
  >             tmpl = tmpl.replace('{{%s}}' % k, v)
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    19
  >         yield tmpl
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    20
  > 
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    21
  > templater.engines['my'] = mytemplater
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    22
  > EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    23
  $ hg init test
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    24
  $ echo '[extensions]' > test/.hg/hgrc
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    25
  $ echo "engine = `pwd`/engine.py" >> test/.hg/hgrc
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    26
  $ cd test
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    27
  $ cat > mymap << EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    28
  > changeset = my:changeset.txt
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    29
  > EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    30
  $ cat > changeset.txt << EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    31
  > {{rev}} {{node}} {{author}}
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 ci -Ama
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    34
  adding changeset.txt
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    35
  adding mymap
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    36
  $ hg log --style=./mymap
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
    37
  0 97e5f848f0936960273bbf75be6388cd0350a32b test
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12493
diff changeset
    38
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12493
diff changeset
    39
  $ cd ..