Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(94)

Side by Side Diff: tests/git_cl_test.py

Issue 18173003: Replace --no-pager with GIT_PAGER=cat (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Code review comments addressed Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « scm.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Unit tests for git_cl.py.""" 6 """Unit tests for git_cl.py."""
7 7
8 import os 8 import os
9 import StringIO 9 import StringIO
10 import stat 10 import stat
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 115
116 @classmethod 116 @classmethod
117 def _upload_no_rev_calls(cls, similarity, find_copies): 117 def _upload_no_rev_calls(cls, similarity, find_copies):
118 return (cls._git_base_calls(similarity, find_copies) + 118 return (cls._git_base_calls(similarity, find_copies) +
119 cls._git_upload_no_rev_calls()) 119 cls._git_upload_no_rev_calls())
120 120
121 @classmethod 121 @classmethod
122 def _git_base_calls(cls, similarity, find_copies): 122 def _git_base_calls(cls, similarity, find_copies):
123 if similarity is None: 123 if similarity is None:
124 similarity = '50' 124 similarity = '50'
125 similarity_call = ((['git', '--no-pager', 'config', '--int', '--get', 125 similarity_call = ((['git', 'config', '--int', '--get',
126 'branch.master.git-cl-similarity'],), '') 126 'branch.master.git-cl-similarity'],), '')
127 else: 127 else:
128 similarity_call = ((['git', '--no-pager', 'config', '--int', 128 similarity_call = ((['git', 'config', '--int',
129 'branch.master.git-cl-similarity', similarity],), '') 129 'branch.master.git-cl-similarity', similarity],), '')
130 130
131 if find_copies is None: 131 if find_copies is None:
132 find_copies = True 132 find_copies = True
133 find_copies_call = ((['git', '--no-pager', 'config', '--int', '--get', 133 find_copies_call = ((['git', 'config', '--int', '--get',
134 'branch.master.git-find-copies'],), '') 134 'branch.master.git-find-copies'],), '')
135 else: 135 else:
136 val = str(int(find_copies)) 136 val = str(int(find_copies))
137 find_copies_call = ((['git', '--no-pager', 'config', '--int', 137 find_copies_call = ((['git', 'config', '--int',
138 'branch.master.git-find-copies', val],), '') 138 'branch.master.git-find-copies', val],), '')
139 139
140 if find_copies: 140 if find_copies:
141 stat_call = ((['git', '--no-pager', 'diff', '--no-ext-diff', '--stat', 141 stat_call = ((['git', 'diff', '--no-ext-diff', '--stat',
142 '--find-copies-harder', '-l100000', '-C'+similarity, 142 '--find-copies-harder', '-l100000', '-C'+similarity,
143 'fake_ancestor_sha', 'HEAD'],), '+dat') 143 'fake_ancestor_sha', 'HEAD'],), '+dat')
144 else: 144 else:
145 stat_call = ((['git', '--no-pager', 'diff', '--no-ext-diff', '--stat', 145 stat_call = ((['git', 'diff', '--no-ext-diff', '--stat',
146 '-M'+similarity, 'fake_ancestor_sha', 'HEAD'],), '+dat') 146 '-M'+similarity, 'fake_ancestor_sha', 'HEAD'],), '+dat')
147 147
148 return [ 148 return [
149 ((['git', '--no-pager', 'config', 'rietveld.server'],), 149 ((['git', 'config', 'rietveld.server'],),
150 'codereview.example.com'), 150 'codereview.example.com'),
151 ((['git', '--no-pager', 'symbolic-ref', 'HEAD'],), 'master'), 151 ((['git', 'symbolic-ref', 'HEAD'],), 'master'),
152 similarity_call, 152 similarity_call,
153 ((['git', '--no-pager', 'symbolic-ref', 'HEAD'],), 'master'), 153 ((['git', 'symbolic-ref', 'HEAD'],), 'master'),
154 find_copies_call, 154 find_copies_call,
155 ((['git', '--no-pager', 'update-index', '--refresh', '-q'],), ''), 155 ((['git', 'update-index', '--refresh', '-q'],), ''),
156 ((['git', '--no-pager', 'diff-index', '--name-status', 'HEAD'],), ''), 156 ((['git', 'diff-index', '--name-status', 'HEAD'],), ''),
157 ((['git', '--no-pager', 'symbolic-ref', 'HEAD'],), 'master'), 157 ((['git', 'symbolic-ref', 'HEAD'],), 'master'),
158 ((['git', '--no-pager', 'config', 'branch.master.merge'],), 'master'), 158 ((['git', 'config', 'branch.master.merge'],), 'master'),
159 ((['git', '--no-pager', 'config', 'branch.master.remote'],), 'origin'), 159 ((['git', 'config', 'branch.master.remote'],), 'origin'),
160 ((['git', '--no-pager', 'merge-base', 'master', 'HEAD'],), 160 ((['git', 'merge-base', 'master', 'HEAD'],),
161 'fake_ancestor_sha'), 161 'fake_ancestor_sha'),
162 ] + cls._git_sanity_checks('fake_ancestor_sha', 'master') + [ 162 ] + cls._git_sanity_checks('fake_ancestor_sha', 'master') + [
163 ((['git', '--no-pager', 'rev-parse', '--show-cdup'],), ''), 163 ((['git', 'rev-parse', '--show-cdup'],), ''),
164 ((['git', '--no-pager', 'rev-parse', 'HEAD'],), '12345'), 164 ((['git', 'rev-parse', 'HEAD'],), '12345'),
165 ((['git', '--no-pager', 'diff', '--name-status', '--no-renames', '-r', 165 ((['git', 'diff', '--name-status', '--no-renames', '-r',
166 'fake_ancestor_sha...', '.'],), 166 'fake_ancestor_sha...', '.'],),
167 'M\t.gitignore\n'), 167 'M\t.gitignore\n'),
168 ((['git', '--no-pager', 'config', 'branch.master.rietveldissue'],), ''), 168 ((['git', 'config', 'branch.master.rietveldissue'],), ''),
169 ((['git', '--no-pager', 'config', 'branch.master.rietveldpatchset'],), 169 ((['git', 'config', 'branch.master.rietveldpatchset'],),
170 ''), 170 ''),
171 ((['git', '--no-pager', 'log', '--pretty=format:%s%n%n%b', 171 ((['git', 'log', '--pretty=format:%s%n%n%b',
172 'fake_ancestor_sha...'],), 172 'fake_ancestor_sha...'],),
173 'foo'), 173 'foo'),
174 ((['git', '--no-pager', 'config', 'user.email'],), 'me@example.com'), 174 ((['git', 'config', 'user.email'],), 'me@example.com'),
175 stat_call, 175 stat_call,
176 ((['git', '--no-pager', 'config', 'gerrit.host'],), ''), 176 ((['git', 'config', 'gerrit.host'],), ''),
177 ((['git', '--no-pager', 'log', '--pretty=format:%s\n\n%b', 177 ((['git', 'log', '--pretty=format:%s\n\n%b',
178 'fake_ancestor_sha..HEAD'],), 178 'fake_ancestor_sha..HEAD'],),
179 'desc\n'), 179 'desc\n'),
180 ] 180 ]
181 181
182 @classmethod 182 @classmethod
183 def _git_upload_no_rev_calls(cls): 183 def _git_upload_no_rev_calls(cls):
184 return [ 184 return [
185 ((['git', '--no-pager', 'config', 'core.editor'],), ''), 185 ((['git', 'config', 'core.editor'],), ''),
186 ] 186 ]
187 187
188 @classmethod 188 @classmethod
189 def _git_upload_calls(cls, private): 189 def _git_upload_calls(cls, private):
190 if private: 190 if private:
191 private_call = [] 191 private_call = []
192 else: 192 else:
193 private_call = [ 193 private_call = [
194 ((['git', '--no-pager', 'config', 'rietveld.private'],), '')] 194 ((['git', 'config', 'rietveld.private'],), '')]
195 195
196 return [ 196 return [
197 ((['git', '--no-pager', 'config', 'core.editor'],), ''), 197 ((['git', 'config', 'core.editor'],), ''),
198 ((['git', '--no-pager', 'config', 'rietveld.cc'],), '') 198 ((['git', 'config', 'rietveld.cc'],), '')
199 ] + private_call + [ 199 ] + private_call + [
200 ((['git', '--no-pager', 'config', 'branch.master.base-url'],), ''), 200 ((['git', 'config', 'branch.master.base-url'],), ''),
201 ((['git', '--no-pager', 201 ((['git',
202 'config', '--local', '--get-regexp', '^svn-remote\\.'],), 202 'config', '--local', '--get-regexp', '^svn-remote\\.'],),
203 (('', None), 0)), 203 (('', None), 0)),
204 ((['git', '--no-pager', 'rev-parse', '--show-cdup'],), ''), 204 ((['git', 'rev-parse', '--show-cdup'],), ''),
205 ((['git', '--no-pager', 'svn', 'info'],), ''), 205 ((['git', 'svn', 'info'],), ''),
206 ((['git', '--no-pager', 206 ((['git',
207 'config', 'branch.master.rietveldissue', '1'],), ''), 207 'config', 'branch.master.rietveldissue', '1'],), ''),
208 ((['git', '--no-pager', 'config', 'branch.master.rietveldserver', 208 ((['git', 'config', 'branch.master.rietveldserver',
209 'https://codereview.example.com'],), ''), 209 'https://codereview.example.com'],), ''),
210 ((['git', '--no-pager', 210 ((['git',
211 'config', 'branch.master.rietveldpatchset', '2'],), ''), 211 'config', 'branch.master.rietveldpatchset', '2'],), ''),
212 ((['git', '--no-pager', 'rev-parse', 'HEAD'],), 'hash'), 212 ((['git', 'rev-parse', 'HEAD'],), 'hash'),
213 ((['git', '--no-pager', 'symbolic-ref', 'HEAD'],), 'hash'), 213 ((['git', 'symbolic-ref', 'HEAD'],), 'hash'),
214 ((['git', '--no-pager', 214 ((['git',
215 'config', 'branch.hash.last-upload-hash', 'hash'],), ''), 215 'config', 'branch.hash.last-upload-hash', 'hash'],), ''),
216 ] 216 ]
217 217
218 @staticmethod 218 @staticmethod
219 def _git_sanity_checks(diff_base, working_branch): 219 def _git_sanity_checks(diff_base, working_branch):
220 fake_ancestor = 'fake_ancestor' 220 fake_ancestor = 'fake_ancestor'
221 fake_cl = 'fake_cl_for_patch' 221 fake_cl = 'fake_cl_for_patch'
222 return [ 222 return [
223 # Calls to verify branch point is ancestor 223 # Calls to verify branch point is ancestor
224 ((['git', '--no-pager', 224 ((['git',
225 'rev-parse', '--verify', diff_base],), fake_ancestor), 225 'rev-parse', '--verify', diff_base],), fake_ancestor),
226 ((['git', '--no-pager', 226 ((['git',
227 'merge-base', fake_ancestor, 'HEAD'],), fake_ancestor), 227 'merge-base', fake_ancestor, 'HEAD'],), fake_ancestor),
228 ((['git', '--no-pager', 228 ((['git',
229 'rev-list', '^' + fake_ancestor, 'HEAD'],), fake_cl), 229 'rev-list', '^' + fake_ancestor, 'HEAD'],), fake_cl),
230 # Mock a config miss (error code 1) 230 # Mock a config miss (error code 1)
231 ((['git', '--no-pager', 231 ((['git',
232 'config', 'gitcl.remotebranch'],), (('', None), 1)), 232 'config', 'gitcl.remotebranch'],), (('', None), 1)),
233 # Call to GetRemoteBranch() 233 # Call to GetRemoteBranch()
234 ((['git', '--no-pager', 234 ((['git',
235 'config', 'branch.%s.merge' % working_branch],), 235 'config', 'branch.%s.merge' % working_branch],),
236 'refs/heads/master'), 236 'refs/heads/master'),
237 ((['git', '--no-pager', 237 ((['git',
238 'config', 'branch.%s.remote' % working_branch],), 'origin'), 238 'config', 'branch.%s.remote' % working_branch],), 'origin'),
239 ((['git', '--no-pager', 'rev-list', '^' + fake_ancestor, 239 ((['git', 'rev-list', '^' + fake_ancestor,
240 'refs/remotes/origin/master'],), ''), 240 'refs/remotes/origin/master'],), ''),
241 ] 241 ]
242 242
243 @classmethod 243 @classmethod
244 def _dcommit_calls_1(cls): 244 def _dcommit_calls_1(cls):
245 return [ 245 return [
246 ((['git', '--no-pager', 246 ((['git',
247 'config', '--local', '--get-regexp', '^svn-remote\\.'],), 247 'config', '--local', '--get-regexp', '^svn-remote\\.'],),
248 ((('svn-remote.svn.url svn://svn.chromium.org/chrome\n' 248 ((('svn-remote.svn.url svn://svn.chromium.org/chrome\n'
249 'svn-remote.svn.fetch trunk/src:refs/remotes/origin/master'), 249 'svn-remote.svn.fetch trunk/src:refs/remotes/origin/master'),
250 None), 250 None),
251 0)), 251 0)),
252 ((['git', '--no-pager', 252 ((['git',
253 'config', 'rietveld.server'],), 'codereview.example.com'), 253 'config', 'rietveld.server'],), 'codereview.example.com'),
254 ((['git', '--no-pager', 'symbolic-ref', 'HEAD'],), 'refs/heads/working'), 254 ((['git', 'symbolic-ref', 'HEAD'],), 'refs/heads/working'),
255 ((['git', '--no-pager', 'config', '--int', '--get', 255 ((['git', 'config', '--int', '--get',
256 'branch.working.git-cl-similarity'],), ''), 256 'branch.working.git-cl-similarity'],), ''),
257 ((['git', '--no-pager', 'symbolic-ref', 'HEAD'],), 'refs/heads/working'), 257 ((['git', 'symbolic-ref', 'HEAD'],), 'refs/heads/working'),
258 ((['git', '--no-pager', 'config', '--int', '--get', 258 ((['git', 'config', '--int', '--get',
259 'branch.working.git-find-copies'],), ''), 259 'branch.working.git-find-copies'],), ''),
260 ((['git', '--no-pager', 'symbolic-ref', 'HEAD'],), 'refs/heads/working'), 260 ((['git', 'symbolic-ref', 'HEAD'],), 'refs/heads/working'),
261 ((['git', '--no-pager', 261 ((['git',
262 'config', 'branch.working.merge'],), 'refs/heads/master'), 262 'config', 'branch.working.merge'],), 'refs/heads/master'),
263 ((['git', '--no-pager', 'config', 'branch.working.remote'],), 'origin'), 263 ((['git', 'config', 'branch.working.remote'],), 'origin'),
264 ((['git', '--no-pager', 'rev-list', '--merges', 264 ((['git', 'rev-list', '--merges',
265 '--grep=^SVN changes up to revision [0-9]*$', 265 '--grep=^SVN changes up to revision [0-9]*$',
266 'refs/remotes/origin/master^!'],), ''), 266 'refs/remotes/origin/master^!'],), ''),
267 ((['git', '--no-pager', 'update-index', '--refresh', '-q'],), ''), 267 ((['git', 'update-index', '--refresh', '-q'],), ''),
268 ((['git', '--no-pager', 'diff-index', '--name-status', 'HEAD'],), ''), 268 ((['git', 'diff-index', '--name-status', 'HEAD'],), ''),
269 ((['git', '--no-pager', 'rev-list', '^refs/heads/working', 269 ((['git', 'rev-list', '^refs/heads/working',
270 'refs/remotes/origin/master'],), 270 'refs/remotes/origin/master'],),
271 ''), 271 ''),
272 ((['git', '--no-pager', 272 ((['git',
273 'log', '--grep=^git-svn-id:', '-1', '--pretty=format:%H'],), 273 'log', '--grep=^git-svn-id:', '-1', '--pretty=format:%H'],),
274 '3fc18b62c4966193eb435baabe2d18a3810ec82e'), 274 '3fc18b62c4966193eb435baabe2d18a3810ec82e'),
275 ((['git', '--no-pager', 275 ((['git',
276 'rev-list', '^3fc18b62c4966193eb435baabe2d18a3810ec82e', 276 'rev-list', '^3fc18b62c4966193eb435baabe2d18a3810ec82e',
277 'refs/remotes/origin/master'],), ''), 277 'refs/remotes/origin/master'],), ''),
278 ((['git', '--no-pager', 278 ((['git',
279 'merge-base', 'refs/remotes/origin/master', 'HEAD'],), 279 'merge-base', 'refs/remotes/origin/master', 'HEAD'],),
280 'fake_ancestor_sha'), 280 'fake_ancestor_sha'),
281 ] 281 ]
282 282
283 @classmethod 283 @classmethod
284 def _dcommit_calls_normal(cls): 284 def _dcommit_calls_normal(cls):
285 return [ 285 return [
286 ((['git', '--no-pager', 'rev-parse', '--show-cdup'],), ''), 286 ((['git', 'rev-parse', '--show-cdup'],), ''),
287 ((['git', '--no-pager', 'rev-parse', 'HEAD'],), 287 ((['git', 'rev-parse', 'HEAD'],),
288 '00ff397798ea57439712ed7e04ab96e13969ef40'), 288 '00ff397798ea57439712ed7e04ab96e13969ef40'),
289 ((['git', '--no-pager', 289 ((['git',
290 'diff', '--name-status', '--no-renames', '-r', 'fake_ancestor_sha...', 290 'diff', '--name-status', '--no-renames', '-r', 'fake_ancestor_sha...',
291 '.'],), 291 '.'],),
292 'M\tPRESUBMIT.py'), 292 'M\tPRESUBMIT.py'),
293 ((['git', '--no-pager', 293 ((['git',
294 'config', 'branch.working.rietveldissue'],), '12345'), 294 'config', 'branch.working.rietveldissue'],), '12345'),
295 ((['git', '--no-pager', 295 ((['git',
296 'config', 'branch.working.rietveldpatchset'],), '31137'), 296 'config', 'branch.working.rietveldpatchset'],), '31137'),
297 ((['git', '--no-pager', 'config', 'branch.working.rietveldserver'],), 297 ((['git', 'config', 'branch.working.rietveldserver'],),
298 'codereview.example.com'), 298 'codereview.example.com'),
299 ((['git', '--no-pager', 'config', 'user.email'],), 'author@example.com'), 299 ((['git', 'config', 'user.email'],), 'author@example.com'),
300 ((['git', '--no-pager', 'config', 'rietveld.tree-status-url'],), ''), 300 ((['git', 'config', 'rietveld.tree-status-url'],), ''),
301 ] 301 ]
302 302
303 @classmethod 303 @classmethod
304 def _dcommit_calls_bypassed(cls): 304 def _dcommit_calls_bypassed(cls):
305 return [ 305 return [
306 ((['git', '--no-pager', 306 ((['git',
307 'config', 'branch.working.rietveldissue'],), '12345'), 307 'config', 'branch.working.rietveldissue'],), '12345'),
308 ((['git', '--no-pager', 'config', 'branch.working.rietveldserver'],), 308 ((['git', 'config', 'branch.working.rietveldserver'],),
309 'codereview.example.com'), 309 'codereview.example.com'),
310 (('GitClHooksBypassedCommit', 310 (('GitClHooksBypassedCommit',
311 'Issue https://codereview.example.com/12345 bypassed hook when ' 311 'Issue https://codereview.example.com/12345 bypassed hook when '
312 'committing'), None), 312 'committing'), None),
313 ] 313 ]
314 314
315 @classmethod 315 @classmethod
316 def _dcommit_calls_3(cls): 316 def _dcommit_calls_3(cls):
317 return [ 317 return [
318 ((['git', '--no-pager', 318 ((['git',
319 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', 319 'diff', '--no-ext-diff', '--stat', '--find-copies-harder',
320 '-l100000', '-C50', 'fake_ancestor_sha', 320 '-l100000', '-C50', 'fake_ancestor_sha',
321 'refs/heads/working'],), 321 'refs/heads/working'],),
322 (' PRESUBMIT.py | 2 +-\n' 322 (' PRESUBMIT.py | 2 +-\n'
323 ' 1 files changed, 1 insertions(+), 1 deletions(-)\n')), 323 ' 1 files changed, 1 insertions(+), 1 deletions(-)\n')),
324 (('About to commit; enter to confirm.',), None), 324 (('About to commit; enter to confirm.',), None),
325 ((['git', '--no-pager', 'show-ref', '--quiet', '--verify', 325 ((['git', 'show-ref', '--quiet', '--verify',
326 'refs/heads/git-cl-commit'],), 326 'refs/heads/git-cl-commit'],),
327 (('', None), 0)), 327 (('', None), 0)),
328 ((['git', '--no-pager', 'branch', '-D', 'git-cl-commit'],), ''), 328 ((['git', 'branch', '-D', 'git-cl-commit'],), ''),
329 ((['git', '--no-pager', 'show-ref', '--quiet', '--verify', 329 ((['git', 'show-ref', '--quiet', '--verify',
330 'refs/heads/git-cl-cherry-pick'],), ''), 330 'refs/heads/git-cl-cherry-pick'],), ''),
331 ((['git', '--no-pager', 'rev-parse', '--show-cdup'],), '\n'), 331 ((['git', 'rev-parse', '--show-cdup'],), '\n'),
332 ((['git', '--no-pager', 'checkout', '-q', '-b', 'git-cl-commit'],), ''), 332 ((['git', 'checkout', '-q', '-b', 'git-cl-commit'],), ''),
333 ((['git', '--no-pager', 'reset', '--soft', 'fake_ancestor_sha'],), ''), 333 ((['git', 'reset', '--soft', 'fake_ancestor_sha'],), ''),
334 ((['git', '--no-pager', 'commit', '-m', 334 ((['git', 'commit', '-m',
335 'Issue: 12345\n\nR=john@chromium.org\n\n' 335 'Issue: 12345\n\nR=john@chromium.org\n\n'
336 'Review URL: https://codereview.example.com/12345'],), 336 'Review URL: https://codereview.example.com/12345'],),
337 ''), 337 ''),
338 ((['git', '--no-pager', 338 ((['git',
339 'svn', 'dcommit', '-C50', '--no-rebase', '--rmdir'],), 339 'svn', 'dcommit', '-C50', '--no-rebase', '--rmdir'],),
340 (('', None), 0)), 340 (('', None), 0)),
341 ((['git', '--no-pager', 'checkout', '-q', 'working'],), ''), 341 ((['git', 'checkout', '-q', 'working'],), ''),
342 ((['git', '--no-pager', 'branch', '-D', 'git-cl-commit'],), ''), 342 ((['git', 'branch', '-D', 'git-cl-commit'],), ''),
343 ] 343 ]
344 344
345 @staticmethod 345 @staticmethod
346 def _cmd_line(description, args, similarity, find_copies, private): 346 def _cmd_line(description, args, similarity, find_copies, private):
347 """Returns the upload command line passed to upload.RealMain().""" 347 """Returns the upload command line passed to upload.RealMain()."""
348 return [ 348 return [
349 'upload', '--assume_yes', '--server', 349 'upload', '--assume_yes', '--server',
350 'https://codereview.example.com', 350 'https://codereview.example.com',
351 '--message', description 351 '--message', description
352 ] + args + [ 352 ] + args + [
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 self.calls = ( 507 self.calls = (
508 self._dcommit_calls_1() + 508 self._dcommit_calls_1() +
509 self._dcommit_calls_bypassed() + 509 self._dcommit_calls_bypassed() +
510 self._dcommit_calls_3()) 510 self._dcommit_calls_3())
511 git_cl.main(['dcommit', '--bypass-hooks']) 511 git_cl.main(['dcommit', '--bypass-hooks'])
512 512
513 513
514 @classmethod 514 @classmethod
515 def _gerrit_base_calls(cls): 515 def _gerrit_base_calls(cls):
516 return [ 516 return [
517 ((['git', '--no-pager', 517 ((['git',
518 'config', 'rietveld.server'],), 'codereview.example.com'), 518 'config', 'rietveld.server'],), 'codereview.example.com'),
519 ((['git', '--no-pager', 'symbolic-ref', 'HEAD'],), 'master'), 519 ((['git', 'symbolic-ref', 'HEAD'],), 'master'),
520 ((['git', '--no-pager', 'config', '--int', '--get', 520 ((['git', 'config', '--int', '--get',
521 'branch.master.git-cl-similarity'],), ''), 521 'branch.master.git-cl-similarity'],), ''),
522 ((['git', '--no-pager', 'symbolic-ref', 'HEAD'],), 'master'), 522 ((['git', 'symbolic-ref', 'HEAD'],), 'master'),
523 ((['git', '--no-pager', 'config', '--int', '--get', 523 ((['git', 'config', '--int', '--get',
524 'branch.master.git-find-copies'],), ''), 524 'branch.master.git-find-copies'],), ''),
525 ((['git', '--no-pager', 'update-index', '--refresh', '-q'],), ''), 525 ((['git', 'update-index', '--refresh', '-q'],), ''),
526 ((['git', '--no-pager', 'diff-index', '--name-status', 'HEAD'],), ''), 526 ((['git', 'diff-index', '--name-status', 'HEAD'],), ''),
527 ((['git', '--no-pager', 'symbolic-ref', 'HEAD'],), 'master'), 527 ((['git', 'symbolic-ref', 'HEAD'],), 'master'),
528 ((['git', '--no-pager', 'config', 'branch.master.merge'],), 'master'), 528 ((['git', 'config', 'branch.master.merge'],), 'master'),
529 ((['git', '--no-pager', 'config', 'branch.master.remote'],), 'origin'), 529 ((['git', 'config', 'branch.master.remote'],), 'origin'),
530 ((['git', '--no-pager', 530 ((['git',
531 'merge-base', 'master', 'HEAD'],), 'fake_ancestor_sha'), 531 'merge-base', 'master', 'HEAD'],), 'fake_ancestor_sha'),
532 ] + cls._git_sanity_checks('fake_ancestor_sha', 'master') + [ 532 ] + cls._git_sanity_checks('fake_ancestor_sha', 'master') + [
533 ((['git', '--no-pager', 'rev-parse', '--show-cdup'],), ''), 533 ((['git', 'rev-parse', '--show-cdup'],), ''),
534 ((['git', '--no-pager', 'rev-parse', 'HEAD'],), '12345'), 534 ((['git', 'rev-parse', 'HEAD'],), '12345'),
535 ((['git', '--no-pager', 535 ((['git',
536 'diff', '--name-status', '--no-renames', '-r', 536 'diff', '--name-status', '--no-renames', '-r',
537 'fake_ancestor_sha...', '.'],), 537 'fake_ancestor_sha...', '.'],),
538 'M\t.gitignore\n'), 538 'M\t.gitignore\n'),
539 ((['git', '--no-pager', 'config', 'branch.master.rietveldissue'],), ''), 539 ((['git', 'config', 'branch.master.rietveldissue'],), ''),
540 ((['git', '--no-pager', 540 ((['git',
541 'config', 'branch.master.rietveldpatchset'],), ''), 541 'config', 'branch.master.rietveldpatchset'],), ''),
542 ((['git', '--no-pager', 542 ((['git',
543 'log', '--pretty=format:%s%n%n%b', 'fake_ancestor_sha...'],), 543 'log', '--pretty=format:%s%n%n%b', 'fake_ancestor_sha...'],),
544 'foo'), 544 'foo'),
545 ((['git', '--no-pager', 'config', 'user.email'],), 'me@example.com'), 545 ((['git', 'config', 'user.email'],), 'me@example.com'),
546 ((['git', '--no-pager', 546 ((['git',
547 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', 547 'diff', '--no-ext-diff', '--stat', '--find-copies-harder',
548 '-l100000', '-C50', 'fake_ancestor_sha', 'HEAD'],), 548 '-l100000', '-C50', 'fake_ancestor_sha', 'HEAD'],),
549 '+dat'), 549 '+dat'),
550 ] 550 ]
551 551
552 @staticmethod 552 @staticmethod
553 def _gerrit_upload_calls(description, reviewers): 553 def _gerrit_upload_calls(description, reviewers):
554 calls = [ 554 calls = [
555 ((['git', '--no-pager', 'config', 'gerrit.host'],), 555 ((['git', 'config', 'gerrit.host'],),
556 'gerrit.example.com'), 556 'gerrit.example.com'),
557 ((['git', '--no-pager', 'log', '--pretty=format:%s\n\n%b', 557 ((['git', 'log', '--pretty=format:%s\n\n%b',
558 'fake_ancestor_sha..HEAD'],), 558 'fake_ancestor_sha..HEAD'],),
559 description) 559 description)
560 ] 560 ]
561 if git_cl.CHANGE_ID not in description: 561 if git_cl.CHANGE_ID not in description:
562 calls += [ 562 calls += [
563 ((['git', '--no-pager', 'log', '--pretty=format:%s\n\n%b', 563 ((['git', 'log', '--pretty=format:%s\n\n%b',
564 'fake_ancestor_sha..HEAD'],), 564 'fake_ancestor_sha..HEAD'],),
565 description), 565 description),
566 ((['git', '--no-pager', 'commit', '--amend', '-m', description],), 566 ((['git', 'commit', '--amend', '-m', description],),
567 ''), 567 ''),
568 ((['git', '--no-pager', 'log', '--pretty=format:%s\n\n%b', 568 ((['git', 'log', '--pretty=format:%s\n\n%b',
569 'fake_ancestor_sha..HEAD'],), 569 'fake_ancestor_sha..HEAD'],),
570 description) 570 description)
571 ] 571 ]
572 calls += [ 572 calls += [
573 ((['git', '--no-pager', 'config', 'rietveld.cc'],), '') 573 ((['git', 'config', 'rietveld.cc'],), '')
574 ] 574 ]
575 receive_pack = '--receive-pack=git receive-pack ' 575 receive_pack = '--receive-pack=git receive-pack '
576 receive_pack += '--cc=joe@example.com' # from watch list 576 receive_pack += '--cc=joe@example.com' # from watch list
577 if reviewers: 577 if reviewers:
578 receive_pack += ' ' 578 receive_pack += ' '
579 receive_pack += ' '.join( 579 receive_pack += ' '.join(
580 '--reviewer=' + email for email in sorted(reviewers)) 580 '--reviewer=' + email for email in sorted(reviewers))
581 receive_pack += '' 581 receive_pack += ''
582 calls += [ 582 calls += [
583 ((['git', '--no-pager', 583 ((['git',
584 'push', receive_pack, 'origin', 'HEAD:refs/for/master'],), 584 'push', receive_pack, 'origin', 'HEAD:refs/for/master'],),
585 '') 585 '')
586 ] 586 ]
587 return calls 587 return calls
588 588
589 def _run_gerrit_upload_test( 589 def _run_gerrit_upload_test(
590 self, 590 self,
591 upload_args, 591 upload_args,
592 description, 592 description,
593 reviewers): 593 reviewers):
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 self.mock(git_cl.os.path, 'abspath', AbsPath) 642 self.mock(git_cl.os.path, 'abspath', AbsPath)
643 commit_msg_path = os.path.join(src_dir, '.git', 'hooks', 'commit-msg') 643 commit_msg_path = os.path.join(src_dir, '.git', 'hooks', 'commit-msg')
644 def Exists(path): 644 def Exists(path):
645 if path == commit_msg_path: 645 if path == commit_msg_path:
646 return False 646 return False
647 # others paths, such as /usr/share/locale/.... 647 # others paths, such as /usr/share/locale/....
648 return True 648 return True
649 self.mock(git_cl.os.path, 'exists', Exists) 649 self.mock(git_cl.os.path, 'exists', Exists)
650 self.mock(git_cl, 'urlretrieve', self._mocked_call) 650 self.mock(git_cl, 'urlretrieve', self._mocked_call)
651 self.calls = [ 651 self.calls = [
652 ((['git', '--no-pager', 'config', 'rietveld.server', 652 ((['git', 'config', 'rietveld.server',
653 'gerrit.chromium.org'],), ''), 653 'gerrit.chromium.org'],), ''),
654 ((['git', '--no-pager', 'config', '--unset-all', 'rietveld.cc'],), ''), 654 ((['git', 'config', '--unset-all', 'rietveld.cc'],), ''),
655 ((['git', '--no-pager', 'config', '--unset-all', 655 ((['git', 'config', '--unset-all',
656 'rietveld.private'],), ''), 656 'rietveld.private'],), ''),
657 ((['git', '--no-pager', 'config', '--unset-all', 657 ((['git', 'config', '--unset-all',
658 'rietveld.tree-status-url'],), ''), 658 'rietveld.tree-status-url'],), ''),
659 ((['git', '--no-pager', 'config', '--unset-all', 659 ((['git', 'config', '--unset-all',
660 'rietveld.viewvc-url'],), ''), 660 'rietveld.viewvc-url'],), ''),
661 ((['git', '--no-pager', 'config', 'gerrit.host', 661 ((['git', 'config', 'gerrit.host',
662 'gerrit.chromium.org'],), ''), 662 'gerrit.chromium.org'],), ''),
663 ((['git', '--no-pager', 'config', 'gerrit.port', '29418'],), ''), 663 ((['git', 'config', 'gerrit.port', '29418'],), ''),
664 # DownloadHooks(False) 664 # DownloadHooks(False)
665 ((['git', '--no-pager', 'config', 'gerrit.host'],), 665 ((['git', 'config', 'gerrit.host'],),
666 'gerrit.chromium.org'), 666 'gerrit.chromium.org'),
667 ((['git', '--no-pager', 'config', 'rietveld.server'],), 667 ((['git', 'config', 'rietveld.server'],),
668 'gerrit.chromium.org'), 668 'gerrit.chromium.org'),
669 ((['git', '--no-pager', 'rev-parse', '--show-cdup'],), ''), 669 ((['git', 'rev-parse', '--show-cdup'],), ''),
670 ((commit_msg_path, os.X_OK,), False), 670 ((commit_msg_path, os.X_OK,), False),
671 (('https://gerrit.chromium.org/tools/hooks/commit-msg', 671 (('https://gerrit.chromium.org/tools/hooks/commit-msg',
672 commit_msg_path,), ''), 672 commit_msg_path,), ''),
673 ((commit_msg_path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR,), ''), 673 ((commit_msg_path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR,), ''),
674 # GetCodereviewSettingsInteractively 674 # GetCodereviewSettingsInteractively
675 ((['git', '--no-pager', 'config', 'rietveld.server'],), 675 ((['git', 'config', 'rietveld.server'],),
676 'gerrit.chromium.org'), 676 'gerrit.chromium.org'),
677 (('Rietveld server (host[:port]) [https://gerrit.chromium.org]:',), 677 (('Rietveld server (host[:port]) [https://gerrit.chromium.org]:',),
678 ''), 678 ''),
679 ((['git', '--no-pager', 'config', 'rietveld.cc'],), ''), 679 ((['git', 'config', 'rietveld.cc'],), ''),
680 (('CC list:',), ''), 680 (('CC list:',), ''),
681 ((['git', '--no-pager', 'config', 'rietveld.private'],), ''), 681 ((['git', 'config', 'rietveld.private'],), ''),
682 (('Private flag (rietveld only):',), ''), 682 (('Private flag (rietveld only):',), ''),
683 ((['git', '--no-pager', 'config', 'rietveld.tree-status-url'],), ''), 683 ((['git', 'config', 'rietveld.tree-status-url'],), ''),
684 (('Tree status URL:',), ''), 684 (('Tree status URL:',), ''),
685 ((['git', '--no-pager', 'config', 'rietveld.viewvc-url'],), ''), 685 ((['git', 'config', 'rietveld.viewvc-url'],), ''),
686 (('ViewVC URL:',), ''), 686 (('ViewVC URL:',), ''),
687 # DownloadHooks(True) 687 # DownloadHooks(True)
688 ((commit_msg_path, os.X_OK,), True), 688 ((commit_msg_path, os.X_OK,), True),
689 ] 689 ]
690 git_cl.main(['config']) 690 git_cl.main(['config'])
691 691
692 def test_update_reviewers(self): 692 def test_update_reviewers(self):
693 data = [ 693 data = [
694 ('foo', [], 'foo'), 694 ('foo', [], 'foo'),
695 ('foo', ['a@c'], 'foo\n\nR=a@c'), 695 ('foo', ['a@c'], 'foo\n\nR=a@c'),
(...skipping 16 matching lines...) Expand all
712 obj = git_cl.ChangeDescription(orig) 712 obj = git_cl.ChangeDescription(orig)
713 obj.update_reviewers(reviewers) 713 obj.update_reviewers(reviewers)
714 actual.append(obj.description) 714 actual.append(obj.description)
715 self.assertEqual(expected, actual) 715 self.assertEqual(expected, actual)
716 716
717 717
718 if __name__ == '__main__': 718 if __name__ == '__main__':
719 git_cl.logging.basicConfig( 719 git_cl.logging.basicConfig(
720 level=git_cl.logging.DEBUG if '-v' in sys.argv else git_cl.logging.ERROR) 720 level=git_cl.logging.DEBUG if '-v' in sys.argv else git_cl.logging.ERROR)
721 unittest.main() 721 unittest.main()
OLDNEW
« no previous file with comments | « scm.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698