tests/test-command-template.t
changeset 28548 b7a31068cc80
parent 28546 1987ed32efca
child 28628 ed1d90f6e921
equal deleted inserted replaced
28547:73d01cba5810 28548:b7a31068cc80
  2859   hg: parse error: date expects a date information
  2859   hg: parse error: date expects a date information
  2860   [255]
  2860   [255]
  2861 
  2861 
  2862 Test integer literal:
  2862 Test integer literal:
  2863 
  2863 
  2864   $ hg log -Ra -r0 -T '{(0)}\n'
  2864   $ hg debugtemplate -v '{(0)}\n'
       
  2865   (template
       
  2866     (group
       
  2867       ('integer', '0'))
       
  2868     ('string', '\n'))
  2865   0
  2869   0
  2866   $ hg log -Ra -r0 -T '{(123)}\n'
  2870   $ hg debugtemplate -v '{(123)}\n'
       
  2871   (template
       
  2872     (group
       
  2873       ('integer', '123'))
       
  2874     ('string', '\n'))
  2867   123
  2875   123
  2868   $ hg log -Ra -r0 -T '{(-4)}\n'
  2876   $ hg debugtemplate -v '{(-4)}\n'
       
  2877   (template
       
  2878     (group
       
  2879       ('integer', '-4'))
       
  2880     ('string', '\n'))
  2869   -4
  2881   -4
  2870   $ hg log -Ra -r0 -T '{(-)}\n'
  2882   $ hg debugtemplate '{(-)}\n'
  2871   hg: parse error at 2: integer literal without digits
  2883   hg: parse error at 2: integer literal without digits
  2872   [255]
  2884   [255]
  2873   $ hg log -Ra -r0 -T '{(-a)}\n'
  2885   $ hg debugtemplate '{(-a)}\n'
  2874   hg: parse error at 2: integer literal without digits
  2886   hg: parse error at 2: integer literal without digits
  2875   [255]
  2887   [255]
  2876 
  2888 
  2877 top-level integer literal is interpreted as symbol (i.e. variable name):
  2889 top-level integer literal is interpreted as symbol (i.e. variable name):
  2878 
  2890 
  2879   $ hg log -Ra -r0 -T '{1}\n'
  2891   $ hg debugtemplate -D 1=one -v '{1}\n'
  2880   
  2892   (template
  2881   $ hg log -Ra -r0 -T '{if("t", "{1}")}\n'
  2893     ('integer', '1')
  2882   
  2894     ('string', '\n'))
  2883   $ hg log -Ra -r0 -T '{1|stringify}\n'
  2895   one
  2884   
  2896   $ hg debugtemplate -D 1=one -v '{if("t", "{1}")}\n'
       
  2897   (template
       
  2898     (func
       
  2899       ('symbol', 'if')
       
  2900       (list
       
  2901         ('string', 't')
       
  2902         (template
       
  2903           ('integer', '1'))))
       
  2904     ('string', '\n'))
       
  2905   one
       
  2906   $ hg debugtemplate -D 1=one -v '{1|stringify}\n'
       
  2907   (template
       
  2908     (|
       
  2909       ('integer', '1')
       
  2910       ('symbol', 'stringify'))
       
  2911     ('string', '\n'))
       
  2912   one
  2885 
  2913 
  2886 unless explicit symbol is expected:
  2914 unless explicit symbol is expected:
  2887 
  2915 
  2888   $ hg log -Ra -r0 -T '{desc|1}\n'
  2916   $ hg log -Ra -r0 -T '{desc|1}\n'
  2889   hg: parse error: expected a symbol, got 'integer'
  2917   hg: parse error: expected a symbol, got 'integer'
  2892   hg: parse error: expected a symbol, got 'integer'
  2920   hg: parse error: expected a symbol, got 'integer'
  2893   [255]
  2921   [255]
  2894 
  2922 
  2895 Test string literal:
  2923 Test string literal:
  2896 
  2924 
  2897   $ hg log -Ra -r0 -T '{"string with no template fragment"}\n'
  2925   $ hg debugtemplate -Ra -r0 -v '{"string with no template fragment"}\n'
       
  2926   (template
       
  2927     ('string', 'string with no template fragment')
       
  2928     ('string', '\n'))
  2898   string with no template fragment
  2929   string with no template fragment
  2899   $ hg log -Ra -r0 -T '{"template: {rev}"}\n'
  2930   $ hg debugtemplate -Ra -r0 -v '{"template: {rev}"}\n'
       
  2931   (template
       
  2932     (template
       
  2933       ('string', 'template: ')
       
  2934       ('symbol', 'rev'))
       
  2935     ('string', '\n'))
  2900   template: 0
  2936   template: 0
  2901   $ hg log -Ra -r0 -T '{r"rawstring: {rev}"}\n'
  2937   $ hg debugtemplate -Ra -r0 -v '{r"rawstring: {rev}"}\n'
       
  2938   (template
       
  2939     ('string', 'rawstring: {rev}')
       
  2940     ('string', '\n'))
  2902   rawstring: {rev}
  2941   rawstring: {rev}
  2903   $ hg log -Ra -r0 -T '{files % r"rawstring: {file}"}\n'
  2942   $ hg debugtemplate -Ra -r0 -v '{files % r"rawstring: {file}"}\n'
       
  2943   (template
       
  2944     (%
       
  2945       ('symbol', 'files')
       
  2946       ('string', 'rawstring: {file}'))
       
  2947     ('string', '\n'))
  2904   rawstring: {file}
  2948   rawstring: {file}
  2905 
  2949 
  2906 Test string escaping:
  2950 Test string escaping:
  2907 
  2951 
  2908   $ hg log -R latesttag -r 0 --template '>\n<>\\n<{if(rev, "[>\n<>\\n<]")}>\n<>\\n<\n'
  2952   $ hg log -R latesttag -r 0 --template '>\n<>\\n<{if(rev, "[>\n<>\\n<]")}>\n<>\\n<\n'