annotate tests/test-histedit-templates.t @ 40093:726cfc47f17a

contrib: add an utility module to parse test scripts This patch centralizes the logic to pick up code fragments embedded in *.t script, in order to: - apply checking with patterns in check-code.py on such embedded code fragments Now, check-code.py completely ignores embedded code fragments. I'll post another patch series to check them. - replace similar code path in contrib/import-checker.py Current import-checker.py has problems below. Fixing each of them is a little difficult, because parsing logic and pattern strings are tightly coupled. - overlook (or mis-detect) the end of inline script in doctest style 8a8dd6e4a97a fixed a part of this issue, but not enough. - it overlooks inline script in doctest style at the end of file (and ignores invalid un-closed heredoc at the end of file, too) - it overlooks code fragment in styles below - "python <<EOF" (heredoc should be "cat > file <<EOF" style) - "cat > foobar.py << ANYLIMIT" (limit mark should be "EOF") - "cat << EOF > foobar.py" (filename should be placed before limit mark) - "cat >> foobar.py << EOF" (appending is ignored) - it is not extensible for other than python code fragments (e.g. shell script, hgrc file, and so on) This new module can detect python code fragments in styles below: - inline script in doctest style (starting by " >>> " line) - python invocation with heredoc script ("python <<EOF") - python script in heredoc style (redirected into ".py" file) As an example of extensibility of new module, this patch also contains implementation to pick up code fragment below. This will be useful to add additional restriction for them, for example. - shell script in heredoc style (redirected into ".sh" file) - hgrc configuration in heredoc style (redirected into hgrc or $HGRCPATH)
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Thu, 23 Aug 2018 12:25:54 +0900
parents a9cc233de513
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
35126
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
1 Testing templating for histedit command
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
2
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
3 Setup
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
4
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
5 $ cat >> $HGRCPATH <<EOF
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
6 > [extensions]
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
7 > histedit=
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
8 > [experimental]
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
9 > evolution=createmarkers
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
10 > EOF
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
11
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
12 $ hg init repo
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
13 $ cd repo
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
14 $ for ch in a b c d; do echo foo > $ch; hg commit -Aqm "Added "$ch; done
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
15
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
16 $ hg log -G -T "{rev}:{node|short} {desc}"
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
17 @ 3:62615734edd5 Added d
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
18 |
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
19 o 2:28ad74487de9 Added c
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
20 |
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
21 o 1:29becc82797a Added b
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
22 |
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
23 o 0:18d04c59bb5d Added a
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
24
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
25 Getting the JSON output for nodechanges
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
26
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
27 $ hg histedit -Tjson --commands - 2>&1 <<EOF
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
28 > pick 28ad74487de9 Added c
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
29 > pick 62615734edd5 Added d
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
30 > pick 18d04c59bb5d Added a
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
31 > pick 29becc82797a Added b
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
32 > EOF
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
33 [
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
34 {
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
35 "nodechanges": {"18d04c59bb5d2d4090ad9a5b59bd6274adb63add": ["109f8ec895447f81b380ba8d4d8b66539ccdcb94"], "28ad74487de9599d00d81085be739c61fc340652": ["bff9e07c1807942b161dab768aa793b48e9a7f9d"], "29becc82797a4bc11ec8880b58eaecd2ab3e7760": ["f5dcf3b4db23f31f1aacf46c33d1393de303d26f"], "62615734edd52f06b6fb9c2beb429e4fe30d57b8": ["201423b441c84d9e6858daed653e0d22485c1cfa"]}
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
36 }
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
37 ]
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
38
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
39 $ hg log -G -T "{rev}:{node|short} {desc}"
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
40 @ 7:f5dcf3b4db23 Added b
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
41 |
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
42 o 6:109f8ec89544 Added a
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
43 |
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
44 o 5:201423b441c8 Added d
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
45 |
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
46 o 4:bff9e07c1807 Added c
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
47
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
48 $ hg histedit -T "{nodechanges|json}" --commands - 2>&1 <<EOF
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
49 > pick bff9e07c1807 Added c
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
50 > pick 201423b441c8 Added d
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
51 > pick 109f8ec89544 Added a
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
52 > roll f5dcf3b4db23 Added b
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
53 > EOF
a9cc233de513 histedit: add support to output nodechanges using formatter
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
54 {"109f8ec895447f81b380ba8d4d8b66539ccdcb94": ["8d01470bfeab64d3de13c49adb79d88790d38396"], "f3ec56a374bdbdf1953cacca505161442c6f3a3e": [], "f5dcf3b4db23f31f1aacf46c33d1393de303d26f": ["8d01470bfeab64d3de13c49adb79d88790d38396"]} (no-eol)