OLD | NEW |
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 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 expected_args, result = self.calls.pop(0) | 86 expected_args, result = self.calls.pop(0) |
87 self.assertEquals( | 87 self.assertEquals( |
88 expected_args, | 88 expected_args, |
89 args, | 89 args, |
90 '@%d Expected: %r Actual: %r' % ( | 90 '@%d Expected: %r Actual: %r' % ( |
91 self._calls_done, expected_args, args)) | 91 self._calls_done, expected_args, args)) |
92 self._calls_done += 1 | 92 self._calls_done += 1 |
93 return result | 93 return result |
94 | 94 |
95 @classmethod | 95 @classmethod |
96 def _upload_calls(cls, similarity): | 96 def _upload_calls(cls, similarity, find_copies): |
97 return cls._git_base_calls(similarity) + cls._git_upload_calls() | 97 return (cls._git_base_calls(similarity, find_copies) + |
| 98 cls._git_upload_calls()) |
98 | 99 |
99 @staticmethod | 100 @staticmethod |
100 def _git_base_calls(similarity): | 101 def _git_base_calls(similarity, find_copies): |
101 if similarity is None: | 102 if similarity is None: |
102 similarity = '50' | 103 similarity = '50' |
103 similarity_call = ((['git', 'config', '--int', '--get', | 104 similarity_call = ((['git', 'config', '--int', '--get', |
104 'branch.master.git-cl-similarity'],), '') | 105 'branch.master.git-cl-similarity'],), '') |
105 else: | 106 else: |
106 similarity_call = ((['git', 'config', '--int', | 107 similarity_call = ((['git', 'config', '--int', |
107 'branch.master.git-cl-similarity', similarity],), '') | 108 'branch.master.git-cl-similarity', similarity],), '') |
| 109 |
| 110 if find_copies is None: |
| 111 find_copies = True |
| 112 find_copies_call = ((['git', 'config', '--int', '--get', |
| 113 'branch.master.git-find-copies'],), '') |
| 114 else: |
| 115 val = str(int(find_copies)) |
| 116 find_copies_call = ((['git', 'config', '--int', |
| 117 'branch.master.git-find-copies', val],), '') |
| 118 |
| 119 if find_copies: |
| 120 stat_call = ((['git', 'diff', '--no-ext-diff', '--stat', |
| 121 '--find-copies-harder', '-l100000', '-C'+similarity, |
| 122 'master...'],), '+dat') |
| 123 else: |
| 124 stat_call = ((['git', 'diff', '--no-ext-diff', '--stat', |
| 125 '-M'+similarity, 'master...'],), '+dat') |
| 126 |
108 return [ | 127 return [ |
109 ((['git', 'config', 'gerrit.host'],), ''), | 128 ((['git', 'config', 'gerrit.host'],), ''), |
110 ((['git', 'config', 'rietveld.server'],), 'codereview.example.com'), | 129 ((['git', 'config', 'rietveld.server'],), 'codereview.example.com'), |
111 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), | 130 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), |
112 similarity_call, | 131 similarity_call, |
| 132 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), |
| 133 find_copies_call, |
113 ((['git', 'update-index', '--refresh', '-q'],), ''), | 134 ((['git', 'update-index', '--refresh', '-q'],), ''), |
114 ((['git', 'diff-index', 'HEAD'],), ''), | 135 ((['git', 'diff-index', 'HEAD'],), ''), |
115 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), | 136 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), |
116 ((['git', 'config', 'branch.master.merge'],), 'master'), | 137 ((['git', 'config', 'branch.master.merge'],), 'master'), |
117 ((['git', 'config', 'branch.master.remote'],), 'origin'), | 138 ((['git', 'config', 'branch.master.remote'],), 'origin'), |
118 ((['git', 'rev-parse', '--show-cdup'],), ''), | 139 ((['git', 'rev-parse', '--show-cdup'],), ''), |
119 ((['git', 'rev-parse', 'HEAD'],), '12345'), | 140 ((['git', 'rev-parse', 'HEAD'],), '12345'), |
120 ((['git', 'diff', '--name-status', '-r', 'master...', '.'],), | 141 ((['git', 'diff', '--name-status', '-r', 'master...', '.'],), |
121 'M\t.gitignore\n'), | 142 'M\t.gitignore\n'), |
122 ((['git', 'config', 'branch.master.rietveldissue'],), ''), | 143 ((['git', 'config', 'branch.master.rietveldissue'],), ''), |
123 ((['git', 'config', 'branch.master.rietveldpatchset'],), ''), | 144 ((['git', 'config', 'branch.master.rietveldpatchset'],), ''), |
124 ((['git', 'log', '--pretty=format:%s%n%n%b', 'master...'],), 'foo'), | 145 ((['git', 'log', '--pretty=format:%s%n%n%b', 'master...'],), 'foo'), |
125 ((['git', 'config', 'user.email'],), 'me@example.com'), | 146 ((['git', 'config', 'user.email'],), 'me@example.com'), |
126 ((['git', 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', | 147 stat_call, |
127 '-C'+similarity, '-l100000', 'master...'],), | |
128 '+dat'), | |
129 ((['git', 'log', '--pretty=format:%s\n\n%b', 'master..'],), 'desc\n'), | 148 ((['git', 'log', '--pretty=format:%s\n\n%b', 'master..'],), 'desc\n'), |
130 ] | 149 ] |
131 | 150 |
132 @staticmethod | 151 @staticmethod |
133 def _git_upload_calls(): | 152 def _git_upload_calls(): |
134 return [ | 153 return [ |
135 ((['git', 'config', 'rietveld.cc'],), ''), | 154 ((['git', 'config', 'rietveld.cc'],), ''), |
136 ((['git', 'config', 'branch.master.base-url'],), ''), | 155 ((['git', 'config', 'branch.master.base-url'],), ''), |
137 ((['git', 'config', '--get-regexp', '^svn-remote\\.'],), | 156 ((['git', 'config', '--get-regexp', '^svn-remote\\.'],), |
138 (('', None), 0)), | 157 (('', None), 0)), |
(...skipping 11 matching lines...) Expand all Loading... |
150 ((['git', 'config', '--get-regexp', '^svn-remote\\.'],), | 169 ((['git', 'config', '--get-regexp', '^svn-remote\\.'],), |
151 ((('svn-remote.svn.url svn://svn.chromium.org/chrome\n' | 170 ((('svn-remote.svn.url svn://svn.chromium.org/chrome\n' |
152 'svn-remote.svn.fetch trunk/src:refs/remotes/origin/master'), | 171 'svn-remote.svn.fetch trunk/src:refs/remotes/origin/master'), |
153 None), | 172 None), |
154 0)), | 173 0)), |
155 ((['git', 'config', 'rietveld.server'],), 'codereview.example.com'), | 174 ((['git', 'config', 'rietveld.server'],), 'codereview.example.com'), |
156 ((['git', 'symbolic-ref', 'HEAD'],), 'refs/heads/working'), | 175 ((['git', 'symbolic-ref', 'HEAD'],), 'refs/heads/working'), |
157 ((['git', 'config', '--int', '--get', | 176 ((['git', 'config', '--int', '--get', |
158 'branch.working.git-cl-similarity'],), ''), | 177 'branch.working.git-cl-similarity'],), ''), |
159 ((['git', 'symbolic-ref', 'HEAD'],), 'refs/heads/working'), | 178 ((['git', 'symbolic-ref', 'HEAD'],), 'refs/heads/working'), |
| 179 ((['git', 'config', '--int', '--get', |
| 180 'branch.working.git-find-copies'],), ''), |
| 181 ((['git', 'symbolic-ref', 'HEAD'],), 'refs/heads/working'), |
160 ((['git', 'config', 'branch.working.merge'],), 'refs/heads/master'), | 182 ((['git', 'config', 'branch.working.merge'],), 'refs/heads/master'), |
161 ((['git', 'config', 'branch.working.remote'],), 'origin'), | 183 ((['git', 'config', 'branch.working.remote'],), 'origin'), |
162 ((['git', 'rev-list', '--merges', | 184 ((['git', 'rev-list', '--merges', |
163 '--grep=^SVN changes up to revision [0-9]*$', | 185 '--grep=^SVN changes up to revision [0-9]*$', |
164 'refs/remotes/origin/master^!'],), ''), | 186 'refs/remotes/origin/master^!'],), ''), |
165 ((['git', 'update-index', '--refresh', '-q'],), ''), | 187 ((['git', 'update-index', '--refresh', '-q'],), ''), |
166 ((['git', 'diff-index', 'HEAD'],), ''), | 188 ((['git', 'diff-index', 'HEAD'],), ''), |
167 ((['git', 'rev-list', '^refs/heads/working', | 189 ((['git', 'rev-list', '^refs/heads/working', |
168 'refs/remotes/origin/master'],), | 190 'refs/remotes/origin/master'],), |
169 ''), | 191 ''), |
(...skipping 28 matching lines...) Expand all Loading... |
198 'codereview.example.com'), | 220 'codereview.example.com'), |
199 (('GitClHooksBypassedCommit', | 221 (('GitClHooksBypassedCommit', |
200 'Issue https://codereview.example.com/12345 bypassed hook when ' | 222 'Issue https://codereview.example.com/12345 bypassed hook when ' |
201 'committing'), None), | 223 'committing'), None), |
202 ] | 224 ] |
203 | 225 |
204 @classmethod | 226 @classmethod |
205 def _dcommit_calls_3(cls): | 227 def _dcommit_calls_3(cls): |
206 return [ | 228 return [ |
207 ((['git', 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', | 229 ((['git', 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', |
208 '-C50', '-l100000', 'refs/remotes/origin/master', | 230 '-l100000', '-C50', 'refs/remotes/origin/master', |
209 'refs/heads/working'],), | 231 'refs/heads/working'],), |
210 (' PRESUBMIT.py | 2 +-\n' | 232 (' PRESUBMIT.py | 2 +-\n' |
211 ' 1 files changed, 1 insertions(+), 1 deletions(-)\n')), | 233 ' 1 files changed, 1 insertions(+), 1 deletions(-)\n')), |
212 (('About to commit; enter to confirm.',), None), | 234 (('About to commit; enter to confirm.',), None), |
213 ((['git', 'show-ref', '--quiet', '--verify', | 235 ((['git', 'show-ref', '--quiet', '--verify', |
214 'refs/heads/git-cl-commit'],), | 236 'refs/heads/git-cl-commit'],), |
215 (('', None), 0)), | 237 (('', None), 0)), |
216 ((['git', 'branch', '-D', 'git-cl-commit'],), ''), | 238 ((['git', 'branch', '-D', 'git-cl-commit'],), ''), |
217 ((['git', 'show-ref', '--quiet', '--verify', | 239 ((['git', 'show-ref', '--quiet', '--verify', |
218 'refs/heads/git-cl-cherry-pick'],), ''), | 240 'refs/heads/git-cl-cherry-pick'],), ''), |
219 ((['git', 'rev-parse', '--show-cdup'],), '\n'), | 241 ((['git', 'rev-parse', '--show-cdup'],), '\n'), |
220 ((['git', 'checkout', '-q', '-b', 'git-cl-commit'],), ''), | 242 ((['git', 'checkout', '-q', '-b', 'git-cl-commit'],), ''), |
221 ((['git', 'reset', '--soft', 'refs/remotes/origin/master'],), ''), | 243 ((['git', 'reset', '--soft', 'refs/remotes/origin/master'],), ''), |
222 ((['git', 'commit', '-m', | 244 ((['git', 'commit', '-m', |
223 'Issue: 12345\n\nReview URL: https://codereview.example.com/12345'],), | 245 'Issue: 12345\n\nReview URL: https://codereview.example.com/12345'],), |
224 ''), | 246 ''), |
225 ((['git', 'svn', 'dcommit', '-C50', '--no-rebase', '--rmdir'],), | 247 ((['git', 'svn', 'dcommit', '-C50', '--no-rebase', '--rmdir'],), |
226 (('', None), 0)), | 248 (('', None), 0)), |
227 ((['git', 'checkout', '-q', 'working'],), ''), | 249 ((['git', 'checkout', '-q', 'working'],), ''), |
228 ((['git', 'branch', '-D', 'git-cl-commit'],), ''), | 250 ((['git', 'branch', '-D', 'git-cl-commit'],), ''), |
229 ] | 251 ] |
230 | 252 |
231 @staticmethod | 253 @staticmethod |
232 def _cmd_line(description, args, similarity): | 254 def _cmd_line(description, args, similarity, find_copies): |
233 """Returns the upload command line passed to upload.RealMain().""" | 255 """Returns the upload command line passed to upload.RealMain().""" |
234 return [ | 256 return [ |
235 'upload', '--assume_yes', '--server', | 257 'upload', '--assume_yes', '--server', |
236 'https://codereview.example.com', | 258 'https://codereview.example.com', |
237 '--message', description | 259 '--message', description |
238 ] + args + [ | 260 ] + args + [ |
239 '--cc', 'joe@example.com', | 261 '--cc', 'joe@example.com', |
240 '--git_similarity', similarity or '50', | 262 '--git_similarity', similarity or '50' |
| 263 ] + (['--git_no_find_copies'] if find_copies == False else []) + [ |
241 'master...' | 264 'master...' |
242 ] | 265 ] |
243 | 266 |
244 def _run_reviewer_test( | 267 def _run_reviewer_test( |
245 self, | 268 self, |
246 upload_args, | 269 upload_args, |
247 expected_description, | 270 expected_description, |
248 returned_description, | 271 returned_description, |
249 final_description, | 272 final_description, |
250 reviewers): | 273 reviewers): |
251 """Generic reviewer test framework.""" | 274 """Generic reviewer test framework.""" |
252 try: | 275 try: |
253 similarity = upload_args[upload_args.index('--similarity')+1] | 276 similarity = upload_args[upload_args.index('--similarity')+1] |
254 except ValueError: | 277 except ValueError: |
255 similarity = None | 278 similarity = None |
256 self.calls = self._upload_calls(similarity) | 279 |
| 280 if '--find-copies' in upload_args: |
| 281 find_copies = True |
| 282 elif '--no-find-copies' in upload_args: |
| 283 find_copies = False |
| 284 else: |
| 285 find_copies = None |
| 286 |
| 287 self.calls = self._upload_calls(similarity, find_copies) |
257 def RunEditor(desc, _): | 288 def RunEditor(desc, _): |
258 self.assertEquals( | 289 self.assertEquals( |
259 '# Enter a description of the change.\n' | 290 '# Enter a description of the change.\n' |
260 '# This will displayed on the codereview site.\n' | 291 '# This will displayed on the codereview site.\n' |
261 '# The first line will also be used as the subject of the review.\n' + | 292 '# The first line will also be used as the subject of the review.\n' + |
262 expected_description, | 293 expected_description, |
263 desc) | 294 desc) |
264 return returned_description | 295 return returned_description |
265 self.mock(git_cl.gclient_utils, 'RunEditor', RunEditor) | 296 self.mock(git_cl.gclient_utils, 'RunEditor', RunEditor) |
266 def check_upload(args): | 297 def check_upload(args): |
267 cmd_line = self._cmd_line(final_description, reviewers, similarity) | 298 cmd_line = self._cmd_line(final_description, reviewers, similarity, |
| 299 find_copies) |
268 self.assertEquals(cmd_line, args) | 300 self.assertEquals(cmd_line, args) |
269 return 1, 2 | 301 return 1, 2 |
270 self.mock(git_cl.upload, 'RealMain', check_upload) | 302 self.mock(git_cl.upload, 'RealMain', check_upload) |
271 git_cl.main(['upload'] + upload_args) | 303 git_cl.main(['upload'] + upload_args) |
272 | 304 |
273 def test_no_reviewer(self): | 305 def test_no_reviewer(self): |
274 self._run_reviewer_test( | 306 self._run_reviewer_test( |
275 [], | 307 [], |
276 'desc\n\nBUG=\n', | 308 'desc\n\nBUG=\n', |
277 '# Blah blah comment.\ndesc\n\nBUG=\n', | 309 '# Blah blah comment.\ndesc\n\nBUG=\n', |
278 'desc\n\nBUG=\n', | 310 'desc\n\nBUG=\n', |
279 []) | 311 []) |
280 | 312 |
281 def test_keep_similarity(self): | 313 def test_keep_similarity(self): |
282 self._run_reviewer_test( | 314 self._run_reviewer_test( |
283 ['--similarity', '70'], | 315 ['--similarity', '70'], |
284 'desc\n\nBUG=\n', | 316 'desc\n\nBUG=\n', |
285 '# Blah blah comment.\ndesc\n\nBUG=\n', | 317 '# Blah blah comment.\ndesc\n\nBUG=\n', |
286 'desc\n\nBUG=\n', | 318 'desc\n\nBUG=\n', |
287 []) | 319 []) |
288 | 320 |
| 321 def test_keep_find_copies(self): |
| 322 self._run_reviewer_test( |
| 323 ['--no-find-copies'], |
| 324 'desc\n\nBUG=\n', |
| 325 '# Blah blah comment.\ndesc\n\nBUG=\n', |
| 326 'desc\n\nBUG=\n', |
| 327 []) |
| 328 |
289 def test_reviewers_cmd_line(self): | 329 def test_reviewers_cmd_line(self): |
290 # Reviewer is passed as-is | 330 # Reviewer is passed as-is |
291 description = 'desc\n\nR=foo@example.com\nBUG=\n' | 331 description = 'desc\n\nR=foo@example.com\nBUG=\n' |
292 self._run_reviewer_test( | 332 self._run_reviewer_test( |
293 ['-r' 'foo@example.com'], | 333 ['-r' 'foo@example.com'], |
294 description, | 334 description, |
295 '\n%s\n' % description, | 335 '\n%s\n' % description, |
296 description, | 336 description, |
297 ['--reviewers', 'foo@example.com']) | 337 ['--reviewers', 'foo@example.com']) |
298 | 338 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
330 | 370 |
331 def test_reviewer_send_mail_no_rev(self): | 371 def test_reviewer_send_mail_no_rev(self): |
332 # Fails without a reviewer. | 372 # Fails without a reviewer. |
333 class FileMock(object): | 373 class FileMock(object): |
334 buf = StringIO.StringIO() | 374 buf = StringIO.StringIO() |
335 def write(self, content): | 375 def write(self, content): |
336 self.buf.write(content) | 376 self.buf.write(content) |
337 | 377 |
338 mock = FileMock() | 378 mock = FileMock() |
339 try: | 379 try: |
340 self.calls = self._git_base_calls(None) | 380 self.calls = self._git_base_calls(None, None) |
341 def RunEditor(desc, _): | 381 def RunEditor(desc, _): |
342 return desc | 382 return desc |
343 self.mock(git_cl.gclient_utils, 'RunEditor', RunEditor) | 383 self.mock(git_cl.gclient_utils, 'RunEditor', RunEditor) |
344 self.mock(sys, 'stderr', mock) | 384 self.mock(sys, 'stderr', mock) |
345 git_cl.main(['upload', '--send-mail']) | 385 git_cl.main(['upload', '--send-mail']) |
346 self.fail() | 386 self.fail() |
347 except SystemExit: | 387 except SystemExit: |
348 self.assertEquals( | 388 self.assertEquals( |
349 'Must specify reviewers to send email.\n', mock.buf.getvalue()) | 389 'Must specify reviewers to send email.\n', mock.buf.getvalue()) |
350 | 390 |
(...skipping 13 matching lines...) Expand all Loading... |
364 | 404 |
365 | 405 |
366 @staticmethod | 406 @staticmethod |
367 def _gerrit_base_calls(): | 407 def _gerrit_base_calls(): |
368 return [ | 408 return [ |
369 ((['git', 'config', 'gerrit.host'],), 'gerrit.example.com'), | 409 ((['git', 'config', 'gerrit.host'],), 'gerrit.example.com'), |
370 ((['git', 'config', 'rietveld.server'],), 'codereview.example.com'), | 410 ((['git', 'config', 'rietveld.server'],), 'codereview.example.com'), |
371 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), | 411 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), |
372 ((['git', 'config', '--int', '--get', | 412 ((['git', 'config', '--int', '--get', |
373 'branch.master.git-cl-similarity'],), ''), | 413 'branch.master.git-cl-similarity'],), ''), |
| 414 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), |
| 415 ((['git', 'config', '--int', '--get', |
| 416 'branch.master.git-find-copies'],), ''), |
374 ((['git', 'update-index', '--refresh', '-q'],), ''), | 417 ((['git', 'update-index', '--refresh', '-q'],), ''), |
375 ((['git', 'diff-index', 'HEAD'],), ''), | 418 ((['git', 'diff-index', 'HEAD'],), ''), |
376 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), | 419 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), |
377 ((['git', 'config', 'branch.master.merge'],), 'master'), | 420 ((['git', 'config', 'branch.master.merge'],), 'master'), |
378 ((['git', 'config', 'branch.master.remote'],), 'origin'), | 421 ((['git', 'config', 'branch.master.remote'],), 'origin'), |
379 ((['git', 'rev-parse', '--show-cdup'],), ''), | 422 ((['git', 'rev-parse', '--show-cdup'],), ''), |
380 ((['git', 'rev-parse', 'HEAD'],), '12345'), | 423 ((['git', 'rev-parse', 'HEAD'],), '12345'), |
381 ((['git', 'diff', '--name-status', '-r', 'master...', '.'],), | 424 ((['git', 'diff', '--name-status', '-r', 'master...', '.'],), |
382 'M\t.gitignore\n'), | 425 'M\t.gitignore\n'), |
383 ((['git', 'config', 'branch.master.rietveldissue'],), ''), | 426 ((['git', 'config', 'branch.master.rietveldissue'],), ''), |
384 ((['git', 'config', 'branch.master.rietveldpatchset'],), ''), | 427 ((['git', 'config', 'branch.master.rietveldpatchset'],), ''), |
385 ((['git', 'log', '--pretty=format:%s%n%n%b', 'master...'],), 'foo'), | 428 ((['git', 'log', '--pretty=format:%s%n%n%b', 'master...'],), 'foo'), |
386 ((['git', 'config', 'user.email'],), 'me@example.com'), | 429 ((['git', 'config', 'user.email'],), 'me@example.com'), |
387 ((['git', 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', | 430 ((['git', 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', |
388 '-C50', '-l100000', 'master...'],), | 431 '-l100000', '-C50', 'master...'],), |
389 '+dat'), | 432 '+dat'), |
390 ] | 433 ] |
391 | 434 |
392 @staticmethod | 435 @staticmethod |
393 def _gerrit_upload_calls(description, reviewers): | 436 def _gerrit_upload_calls(description, reviewers): |
394 calls = [ | 437 calls = [ |
395 ((['git', 'log', '--pretty=format:%s\n\n%b', 'master..'],), | 438 ((['git', 'log', '--pretty=format:%s\n\n%b', 'master..'],), |
396 description), | 439 description), |
397 ((['git', 'config', 'rietveld.cc'],), '') | 440 ((['git', 'config', 'rietveld.cc'],), '') |
398 ] | 441 ] |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
489 ((['git', 'config', 'rietveld.viewvc-url'],), ''), | 532 ((['git', 'config', 'rietveld.viewvc-url'],), ''), |
490 (('ViewVC URL:',), ''), | 533 (('ViewVC URL:',), ''), |
491 # DownloadHooks(True) | 534 # DownloadHooks(True) |
492 ((commit_msg_path, os.X_OK,), True), | 535 ((commit_msg_path, os.X_OK,), True), |
493 ] | 536 ] |
494 git_cl.main(['config']) | 537 git_cl.main(['config']) |
495 | 538 |
496 | 539 |
497 if __name__ == '__main__': | 540 if __name__ == '__main__': |
498 unittest.main() | 541 unittest.main() |
OLD | NEW |