comparison tests/test-phabricator.t @ 44125:a5e3f38407cb

tests: restore phabricator tests and regenerate the recordings These contain the new API chatter. Most of the changes are because some new commits were created, but they're pretty obviously equivalent. I have no idea why the last recording contains real data, whereas it previously looked fake. Differential Revision: https://phab.mercurial-scm.org/D7920
author Matt Harbison <matt_harbison@yahoo.com>
date Thu, 16 Jan 2020 19:48:01 -0500
parents ec4dfcc39638
children 59b3fe1e2021
comparison
equal deleted inserted replaced
44124:d56a2d6f34f0 44125:a5e3f38407cb
18 > # it back. The VCR transcripts will be auto-sanitised to replace your real 18 > # it back. The VCR transcripts will be auto-sanitised to replace your real
19 > # token with this value. 19 > # token with this value.
20 > hgphab.phabtoken = cli-hahayouwish 20 > hgphab.phabtoken = cli-hahayouwish
21 > EOF 21 > EOF
22 $ VCR="$TESTDIR/phabricator" 22 $ VCR="$TESTDIR/phabricator"
23
24 Error is handled reasonably. We override the phabtoken here so that
25 when you're developing changes to phabricator.py you can edit the
26 above config and have a real token in the test but not have to edit
27 this test.
28 $ hg phabread --config auth.hgphab.phabtoken=cli-notavalidtoken \
29 > --test-vcr "$VCR/phabread-conduit-error.json" D4480 | head
30 abort: Conduit Error (ERR-INVALID-AUTH): API token "cli-notavalidtoken" has the wrong length. API tokens should be 32 characters long.
31
32 Basic phabread:
33 $ hg phabread --test-vcr "$VCR/phabread-4480.json" D4480 | head
34 # HG changeset patch
35 # Date 1536771503 0
36 # Parent a5de21c9e3703f8e8eb064bd7d893ff2f703c66a
37 exchangev2: start to implement pull with wire protocol v2
38
39 Wire protocol version 2 will take a substantially different
40 approach to exchange than version 1 (at least as far as pulling
41 is concerned).
42
43 This commit establishes a new exchangev2 module for holding
44
45 phabupdate with an accept:
46 $ hg phabupdate --accept D4564 \
47 > -m 'I think I like where this is headed. Will read rest of series later.'\
48 > --test-vcr "$VCR/accept-4564.json"
49 abort: Conduit Error (ERR-CONDUIT-CORE): Validation errors:
50 - You can not accept this revision because it has already been closed. Only open revisions can be accepted.
51 [255]
52 $ hg phabupdate --accept D7913 -m 'LGTM' --test-vcr "$VCR/accept-7913.json"
53
54 Create a differential diff:
55 $ HGENCODING=utf-8; export HGENCODING
56 $ echo alpha > alpha
57 $ hg ci --addremove -m 'create alpha for phabricator test €'
58 adding alpha
59 $ hg phabsend -r . --test-vcr "$VCR/phabsend-create-alpha.json"
60 D7915 - created - d386117f30e6: create alpha for phabricator test \xe2\x82\xac (esc)
61 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/d386117f30e6-24ffe649-phabsend.hg
62 $ echo more >> alpha
63 $ HGEDITOR=true hg ci --amend
64 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/347bf67801e5-3bf313e4-amend.hg
65 $ echo beta > beta
66 $ hg ci --addremove -m 'create beta for phabricator test'
67 adding beta
68 $ hg phabsend -r ".^::" --test-vcr "$VCR/phabsend-update-alpha-create-beta.json"
69 D7915 - updated - c44b38f24a45: create alpha for phabricator test \xe2\x82\xac (esc)
70 D7916 - created - 9e6901f21d5b: create beta for phabricator test
71 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/9e6901f21d5b-1fcd4f0e-phabsend.hg
72 $ unset HGENCODING
73
74 The amend won't explode after posting a public commit. The local tag is left
75 behind to identify it.
76
77 $ echo 'public change' > beta
78 $ hg ci -m 'create public change for phabricator testing'
79 $ hg phase --public .
80 $ echo 'draft change' > alpha
81 $ hg ci -m 'create draft change for phabricator testing'
82 $ hg phabsend --amend -r '.^::' --test-vcr "$VCR/phabsend-create-public.json"
83 D7917 - created - 7b4185ab5d16: create public change for phabricator testing
84 D7918 - created - 251c1c333fc6: create draft change for phabricator testing
85 warning: not updating public commit 2:7b4185ab5d16
86 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/251c1c333fc6-41cb7c3b-phabsend.hg
87 $ hg tags -v
88 tip 3:3244dc4a3334
89 D7917 2:7b4185ab5d16 local
90
91 $ hg debugcallconduit user.search --test-vcr "$VCR/phab-conduit.json" <<EOF
92 > {
93 > "constraints": {
94 > "isBot": true
95 > }
96 > }
97 > EOF
98 {
99 "cursor": {
100 "after": null,
101 "before": null,
102 "limit": 100,
103 "order": null
104 },
105 "data": [],
106 "maps": {},
107 "query": {
108 "queryKey": null
109 }
110 }
111
112 Template keywords
113 $ hg log -T'{rev} {phabreview|json}\n'
114 3 {"id": "D7918", "url": "https://phab.mercurial-scm.org/D7918"}
115 2 {"id": "D7917", "url": "https://phab.mercurial-scm.org/D7917"}
116 1 {"id": "D7916", "url": "https://phab.mercurial-scm.org/D7916"}
117 0 {"id": "D7915", "url": "https://phab.mercurial-scm.org/D7915"}
118
119 $ hg log -T'{rev} {if(phabreview, "{phabreview.url} {phabreview.id}")}\n'
120 3 https://phab.mercurial-scm.org/D7918 D7918
121 2 https://phab.mercurial-scm.org/D7917 D7917
122 1 https://phab.mercurial-scm.org/D7916 D7916
123 0 https://phab.mercurial-scm.org/D7915 D7915
124
125 Commenting when phabsending:
126 $ echo comment > comment
127 $ hg ci --addremove -m "create comment for phabricator test"
128 adding comment
129 $ hg phabsend -r . -m "For default branch" --test-vcr "$VCR/phabsend-comment-created.json"
130 D7919 - created - d5dddca9023d: create comment for phabricator test
131 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/d5dddca9023d-adf673ba-phabsend.hg
132 $ echo comment2 >> comment
133 $ hg ci --amend
134 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/f7db812bbe1d-8fcded77-amend.hg
135 $ hg phabsend -r . -m "Address review comments" --test-vcr "$VCR/phabsend-comment-updated.json"
136 D7919 - updated - 1849d7828727: create comment for phabricator test
137
138 Phabsending a skipped commit:
139 $ hg phabsend --no-amend -r . --test-vcr "$VCR/phabsend-skipped.json"
140 D7919 - skipped - 1849d7828727: create comment for phabricator test
141
142 Phabreading a DREV with a local:commits time as a string:
143 $ hg phabread --test-vcr "$VCR/phabread-str-time.json" D1285
144 # HG changeset patch
145 # User Pulkit Goyal <7895pulkit@gmail.com>
146 # Date 1509404054 -19800
147 # Node ID 44fc1c1f1774a76423b9c732af6938435099bcc5
148 # Parent 8feef8ef8389a3b544e0a74624f1efc3a8d85d35
149 repoview: add a new attribute _visibilityexceptions and related API
150
151 Currently we don't have a defined way in core to make some hidden revisions
152 visible in filtered repo. Extensions to achieve the purpose of unhiding some
153 hidden commits, wrap repoview.pinnedrevs() function.
154
155 To make the above task simple and have well defined API, this patch adds a new
156 attribute '_visibilityexceptions' to repoview class which will contains
157 the hidden revs which should be exception.
158 This will allow to set different exceptions for different repoview objects
159 backed by the same unfiltered repo.
160
161 This patch also adds API to add revs to the attribute set and get them.
162
163 Thanks to Jun for suggesting the use of repoview class instead of localrepo.
164
165 Differential Revision: https://phab.mercurial-scm.org/D1285
166 diff --git a/mercurial/repoview.py b/mercurial/repoview.py
167 --- a/mercurial/repoview.py
168 +++ b/mercurial/repoview.py
169 @@ * @@ (glob)
170 subclasses of `localrepo`. Eg: `bundlerepo` or `statichttprepo`.
171 """
172
173 + # hidden revs which should be visible
174 + _visibilityexceptions = set()
175 +
176 def __init__(self, repo, filtername):
177 object.__setattr__(self, r'_unfilteredrepo', repo)
178 object.__setattr__(self, r'filtername', filtername)
179 @@ -231,6 +234,14 @@
180 return self
181 return self.unfiltered().filtered(name)
182
183 + def addvisibilityexceptions(self, revs):
184 + """adds hidden revs which should be visible to set of exceptions"""
185 + self._visibilityexceptions.update(revs)
186 +
187 + def getvisibilityexceptions(self):
188 + """returns the set of hidden revs which should be visible"""
189 + return self._visibilityexceptions
190 +
191 # everything access are forwarded to the proxied repo
192 def __getattr__(self, attr):
193 return getattr(self._unfilteredrepo, attr)
194 diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
195 --- a/mercurial/localrepo.py
196 +++ b/mercurial/localrepo.py
197 @@ -570,6 +570,14 @@
198 def close(self):
199 self._writecaches()
200
201 + def addvisibilityexceptions(self, exceptions):
202 + # should be called on a filtered repository
203 + pass
204 +
205 + def getvisibilityexceptions(self):
206 + # should be called on a filtered repository
207 + return set()
208 +
209 def _loadextensions(self):
210 extensions.loadall(self.ui)
211
212
213
214 $ cd ..