tests/test-template-functions.t
changeset 44597 fc1fa3a07af6
parent 44591 967e2e81f762
child 44603 7333e8bb9781
equal deleted inserted replaced
44596:2a98b0cd4995 44597:fc1fa3a07af6
   818   ["a"]
   818   ["a"]
   819   $ hg log -r0 -T '{extras|json}\n'
   819   $ hg log -r0 -T '{extras|json}\n'
   820   {"branch": "default"}
   820   {"branch": "default"}
   821   $ hg log -r0 -T '{date|json}\n'
   821   $ hg log -r0 -T '{date|json}\n'
   822   [0, 0]
   822   [0, 0]
       
   823   $ hg log -r0 -T '{revset(":")|json}\n'
       
   824   [0, 1]
   823 
   825 
   824 Test json filter applied to map result:
   826 Test json filter applied to map result:
   825 
   827 
   826   $ hg log -r0 -T '{json(extras % "{key}")}\n'
   828   $ hg log -r0 -T '{json(extras % "{key}")}\n'
   827   ["branch"]
   829   ["branch"]
  1261 
  1263 
  1262   $ hg log -R ../a -T '{join(parents, ",\n")}\n' -r6 --debug
  1264   $ hg log -R ../a -T '{join(parents, ",\n")}\n' -r6 --debug
  1263   5:13207e5a10d9fd28ec424934298e176197f2c67f,
  1265   5:13207e5a10d9fd28ec424934298e176197f2c67f,
  1264   4:bbe44766e73d5f11ed2177f1838de10c53ef3e74
  1266   4:bbe44766e73d5f11ed2177f1838de10c53ef3e74
  1265 
  1267 
       
  1268 for historical reasons, revset() supports old-style list template
       
  1269 
       
  1270   $ hg log -T '{revset(":")}\n' -l1 \
       
  1271   >        --config templates.start_revisions='"["' \
       
  1272   >        --config templates.end_revisions='"]"' \
       
  1273   >        --config templates.revision='"{revision}, "' \
       
  1274   >        --config templates.last_revision='"{revision}"'
       
  1275   [0, 1, 2]
       
  1276   $ hg log -T '{revset(":") % " {revision}"}\n' -l1
       
  1277    0 1 2
       
  1278 
       
  1279 but a filtered one doesn't
       
  1280 
       
  1281   $ hg log -T '{filter(revset(":"), ifeq(rev, 1, "", "y"))}\n' -l1 \
       
  1282   >        --config templates.start_revisions='"["' \
       
  1283   >        --config templates.end_revisions='"]"' \
       
  1284   >        --config templates.revision='"{revision}, "' \
       
  1285   >        --config templates.last_revision='"{revision}"'
       
  1286   0 2
       
  1287   $ hg log -T '{filter(revset(":"), ifeq(rev, 1, "", "y")) % "x{revision}"}\n' -l1
       
  1288   xx
       
  1289 
  1266 %d parameter handling:
  1290 %d parameter handling:
  1267 
  1291 
  1268   $ hg log -T '{revset("%d", rev)}\n' -r'wdir()'
  1292   $ hg log -T '{revset("%d", rev)}\n' -r'wdir()'
  1269   2147483647
  1293   2147483647
  1270   $ hg log -T '{revset("%d", rev)}\n' -r'null'
  1294   $ hg log -T '{revset("%d", rev)}\n' -r'null'
  1314   $ hg log -T '{revset("%lb", files)}\n'
  1338   $ hg log -T '{revset("%lb", files)}\n'
  1315   hg: parse error: invalid argument for revspec
  1339   hg: parse error: invalid argument for revspec
  1316   [255]
  1340   [255]
  1317   $ hg log -T '{revset("%r", 0)}\n'
  1341   $ hg log -T '{revset("%r", 0)}\n'
  1318   hg: parse error: invalid argument for revspec
  1342   hg: parse error: invalid argument for revspec
       
  1343   [255]
       
  1344 
       
  1345 Invalid operation on revset()
       
  1346 
       
  1347   $ hg log -T '{get(revset(":"), "foo")}\n'
       
  1348   hg: parse error: not a dictionary
       
  1349   (get() expects a dict as first argument)
  1319   [255]
  1350   [255]
  1320 
  1351 
  1321 Test files function
  1352 Test files function
  1322 
  1353 
  1323   $ hg log -T "{rev}\n{join(files('*'), '\n')}\n"
  1354   $ hg log -T "{rev}\n{join(files('*'), '\n')}\n"
  1564   $ hg log -T "{extras|cbor}" -R a -l1 | "$PYTHON" "$TESTTMP/decodecbor.py"
  1595   $ hg log -T "{extras|cbor}" -R a -l1 | "$PYTHON" "$TESTTMP/decodecbor.py"
  1565   [
  1596   [
  1566    {
  1597    {
  1567     'branch': 'default'
  1598     'branch': 'default'
  1568    }
  1599    }
       
  1600   ]
       
  1601 
       
  1602   $ hg log -T "{revset(':')|cbor}" -R a -l1 | "$PYTHON" "$TESTTMP/decodecbor.py"
       
  1603   [
       
  1604    [
       
  1605     0,
       
  1606     1,
       
  1607     2,
       
  1608     3,
       
  1609     4,
       
  1610     5,
       
  1611     6,
       
  1612     7,
       
  1613     8,
       
  1614     9,
       
  1615     10
       
  1616    ]
  1569   ]
  1617   ]
  1570 
  1618 
  1571 json filter should escape HTML tags so that the output can be embedded in hgweb:
  1619 json filter should escape HTML tags so that the output can be embedded in hgweb:
  1572 
  1620 
  1573   $ hg log -T "{'<foo@example.org>'|json}\n" -R a -l1
  1621   $ hg log -T "{'<foo@example.org>'|json}\n" -R a -l1