Mercurial > hg
annotate tests/test-phabricator.t @ 41566:eb7ce452e0fb
branchmap: updating triggers a write
Rather than separate updating and writing, create a subclass that doesn't write
on update. This minimises chances we forget to write out updates somewhere.
This also makes refactoring and improving the branchmap functionality easier.
Differential Revision: https://phab.mercurial-scm.org/D5636
author | Martijn Pieters <mj@octobus.net> |
---|---|
date | Mon, 21 Jan 2019 16:37:23 +0000 |
parents | 43fd1947301d |
children | c340a8ac7ef3 |
rev | line source |
---|---|
39651
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
1 #require vcr |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
2 $ cat >> $HGRCPATH <<EOF |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
3 > [extensions] |
39652
d2c81e83de2a
phabricator: move extension from contrib to hgext
Augie Fackler <raf@durin42.com>
parents:
39651
diff
changeset
|
4 > phabricator = |
39651
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
5 > EOF |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
6 $ hg init repo |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
7 $ cd repo |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
8 $ cat >> .hg/hgrc <<EOF |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
9 > [phabricator] |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
10 > url = https://phab.mercurial-scm.org/ |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
11 > callsign = HG |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
12 > |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
13 > [auth] |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
14 > hgphab.schemes = https |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
15 > hgphab.prefix = phab.mercurial-scm.org |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
16 > # When working on the extension and making phabricator interaction |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
17 > # changes, edit this to be a real phabricator token. When done, edit |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
18 > # it back, and make sure to also edit your VCR transcripts to match |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
19 > # whatever value you put here. |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
20 > hgphab.phabtoken = cli-hahayouwish |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
21 > EOF |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
22 $ VCR="$TESTDIR/phabricator" |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
23 |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
24 Error is handled reasonably. We override the phabtoken here so that |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
25 when you're developing changes to phabricator.py you can edit the |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
26 above config and have a real token in the test but not have to edit |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
27 this test. |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
28 $ hg phabread --config auth.hgphab.phabtoken=cli-notavalidtoken \ |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
29 > --test-vcr "$VCR/phabread-conduit-error.json" D4480 | head |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
30 abort: Conduit Error (ERR-INVALID-AUTH): API token "cli-notavalidtoken" has the wrong length. API tokens should be 32 characters long. |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
31 |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
32 Basic phabread: |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
33 $ hg phabread --test-vcr "$VCR/phabread-4480.json" D4480 | head |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
34 # HG changeset patch |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
35 exchangev2: start to implement pull with wire protocol v2 |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
36 |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
37 Wire protocol version 2 will take a substantially different |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
38 approach to exchange than version 1 (at least as far as pulling |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
39 is concerned). |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
40 |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
41 This commit establishes a new exchangev2 module for holding |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
42 code related to exchange using wire protocol v2. I could have |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
43 added things to the existing exchange module. But it is already |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
44 |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
45 phabupdate with an accept: |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
46 $ hg phabupdate --accept D4564 \ |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
47 > -m 'I think I like where this is headed. Will read rest of series later.'\ |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
48 > --test-vcr "$VCR/accept-4564.json" |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
49 |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
50 Create a differential diff: |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
51 $ echo alpha > alpha |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
52 $ hg ci --addremove -m 'create alpha for phabricator test' |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
53 adding alpha |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
54 $ hg phabsend -r . --test-vcr "$VCR/phabsend-create-alpha.json" |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
55 D4596 - created - 5206a4fa1e6c: create alpha for phabricator test |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
56 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/5206a4fa1e6c-dec9e777-phabsend.hg |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
57 $ echo more >> alpha |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
58 $ HGEDITOR=true hg ci --amend |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
59 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/d8f232f7d799-c573510a-amend.hg |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
60 $ echo beta > beta |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
61 $ hg ci --addremove -m 'create beta for phabricator test' |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
62 adding beta |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
63 $ hg phabsend -r ".^::" --test-vcr "$VCR/phabsend-update-alpha-create-beta.json" |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
64 D4596 - updated - f70265671c65: create alpha for phabricator test |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
65 D4597 - created - 1a5640df7bbf: create beta for phabricator test |
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
66 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/1a5640df7bbf-6daf3e6e-phabsend.hg |
39653
10c53b2e9d52
phabricator: add tests of templatekeyword
Augie Fackler <raf@durin42.com>
parents:
39652
diff
changeset
|
67 |
41163
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
68 The amend won't explode after posting a public commit. The local tag is left |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
69 behind to identify it. |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
70 |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
71 $ echo 'public change' > beta |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
72 $ hg ci -m 'create public change for phabricator testing' |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
73 $ hg phase --public . |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
74 $ echo 'draft change' > alpha |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
75 $ hg ci -m 'create draft change for phabricator testing' |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
76 $ hg phabsend --amend -r '.^::' --test-vcr "$VCR/phabsend-create-public.json" |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
77 D5544 - created - 540a21d3fbeb: create public change for phabricator testing |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
78 D5545 - created - 6bca752686cd: create draft change for phabricator testing |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
79 warning: not updating public commit 2:540a21d3fbeb |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
80 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/6bca752686cd-41faefb4-phabsend.hg |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
81 $ hg tags -v |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
82 tip 3:620a50fd6ed9 |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
83 D5544 2:540a21d3fbeb local |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
84 |
41017
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
85 $ hg debugcallconduit user.search --test-vcr "$VCR/phab-conduit.json" <<EOF |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
86 > { |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
87 > "constraints": { |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
88 > "isBot": true |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
89 > } |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
90 > } |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
91 > EOF |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
92 { |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
93 "cursor": { |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
94 "after": null, |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
95 "before": null, |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
96 "limit": 100, |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
97 "order": null |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
98 }, |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
99 "data": [], |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
100 "maps": {}, |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
101 "query": { |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
102 "queryKey": null |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
103 } |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
104 } |
d7d3164e6a31
phabricator: properly encode boolean types in the request body
Matt Harbison <matt_harbison@yahoo.com>
parents:
39654
diff
changeset
|
105 |
39653
10c53b2e9d52
phabricator: add tests of templatekeyword
Augie Fackler <raf@durin42.com>
parents:
39652
diff
changeset
|
106 Template keywords |
10c53b2e9d52
phabricator: add tests of templatekeyword
Augie Fackler <raf@durin42.com>
parents:
39652
diff
changeset
|
107 $ hg log -T'{rev} {phabreview|json}\n' |
41163
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
108 3 {"id": "D5545", "url": "https://phab.mercurial-scm.org/D5545"} |
41164
43fd1947301d
phabricator: teach {phabreview} to work without --amend
Matt Harbison <matt_harbison@yahoo.com>
parents:
41163
diff
changeset
|
109 2 {"id": "D5544", "url": "https://phab.mercurial-scm.org/D5544"} |
39653
10c53b2e9d52
phabricator: add tests of templatekeyword
Augie Fackler <raf@durin42.com>
parents:
39652
diff
changeset
|
110 1 {"id": "D4597", "url": "https://phab.mercurial-scm.org/D4597"} |
10c53b2e9d52
phabricator: add tests of templatekeyword
Augie Fackler <raf@durin42.com>
parents:
39652
diff
changeset
|
111 0 {"id": "D4596", "url": "https://phab.mercurial-scm.org/D4596"} |
10c53b2e9d52
phabricator: add tests of templatekeyword
Augie Fackler <raf@durin42.com>
parents:
39652
diff
changeset
|
112 |
41163
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
113 $ hg log -T'{rev} {if(phabreview, "{phabreview.url} {phabreview.id}")}\n' |
0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
Matt Harbison <matt_harbison@yahoo.com>
parents:
41017
diff
changeset
|
114 3 https://phab.mercurial-scm.org/D5545 D5545 |
41164
43fd1947301d
phabricator: teach {phabreview} to work without --amend
Matt Harbison <matt_harbison@yahoo.com>
parents:
41163
diff
changeset
|
115 2 https://phab.mercurial-scm.org/D5544 D5544 |
39654
4057e38bba76
phabricator: fix templating bug by using hybriddict
Augie Fackler <raf@durin42.com>
parents:
39653
diff
changeset
|
116 1 https://phab.mercurial-scm.org/D4597 D4597 |
4057e38bba76
phabricator: fix templating bug by using hybriddict
Augie Fackler <raf@durin42.com>
parents:
39653
diff
changeset
|
117 0 https://phab.mercurial-scm.org/D4596 D4596 |
39653
10c53b2e9d52
phabricator: add tests of templatekeyword
Augie Fackler <raf@durin42.com>
parents:
39652
diff
changeset
|
118 |
39651
a641fd1a1196
tests: add some basic tests of phabricator interactions
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
119 $ cd .. |