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 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 self.mock(git_cl.gclient_utils, 'RunEditor', RunEditor) | 246 self.mock(git_cl.gclient_utils, 'RunEditor', RunEditor) |
247 def check_upload(args): | 247 def check_upload(args): |
248 self.assertEquals(self._cmd_line(final_description, reviewers), args) | 248 self.assertEquals(self._cmd_line(final_description, reviewers), args) |
249 return 1, 2 | 249 return 1, 2 |
250 self.mock(git_cl.upload, 'RealMain', check_upload) | 250 self.mock(git_cl.upload, 'RealMain', check_upload) |
251 git_cl.main(['upload'] + upload_args) | 251 git_cl.main(['upload'] + upload_args) |
252 | 252 |
253 def test_no_reviewer(self): | 253 def test_no_reviewer(self): |
254 self._run_reviewer_test( | 254 self._run_reviewer_test( |
255 [], | 255 [], |
256 'desc\n\nBUG=\nTEST=\n', | 256 'desc\n\nBUG=\n', |
257 '# Blah blah comment.\ndesc\n\nBUG=\nTEST=\n', | 257 '# Blah blah comment.\ndesc\n\nBUG=\n', |
258 'desc\n\nBUG=\nTEST=\n', | 258 'desc\n\nBUG=\n', |
259 []) | 259 []) |
260 | 260 |
261 def test_reviewers_cmd_line(self): | 261 def test_reviewers_cmd_line(self): |
262 # Reviewer is passed as-is | 262 # Reviewer is passed as-is |
263 description = 'desc\n\nR=foo@example.com\nBUG=\nTEST=\n' | 263 description = 'desc\n\nR=foo@example.com\nBUG=\n' |
264 self._run_reviewer_test( | 264 self._run_reviewer_test( |
265 ['-r' 'foo@example.com'], | 265 ['-r' 'foo@example.com'], |
266 description, | 266 description, |
267 '\n%s\n' % description, | 267 '\n%s\n' % description, |
268 description, | 268 description, |
269 ['--reviewers', 'foo@example.com']) | 269 ['--reviewers', 'foo@example.com']) |
270 | 270 |
271 def test_reviewer_tbr_overriden(self): | 271 def test_reviewer_tbr_overriden(self): |
272 # Reviewer is overriden with TBR | 272 # Reviewer is overriden with TBR |
273 # Also verifies the regexp work without a trailing LF | 273 # Also verifies the regexp work without a trailing LF |
274 description = 'Foo Bar\nTBR=reviewer@example.com\n' | 274 description = 'Foo Bar\nTBR=reviewer@example.com\n' |
275 self._run_reviewer_test( | 275 self._run_reviewer_test( |
276 ['-r' 'foo@example.com'], | 276 ['-r' 'foo@example.com'], |
277 'desc\n\nR=foo@example.com\nBUG=\nTEST=\n', | 277 'desc\n\nR=foo@example.com\nBUG=\n', |
278 description.strip('\n'), | 278 description.strip('\n'), |
279 description, | 279 description, |
280 ['--reviewers', 'reviewer@example.com']) | 280 ['--reviewers', 'reviewer@example.com']) |
281 | 281 |
282 def test_reviewer_multiple(self): | 282 def test_reviewer_multiple(self): |
283 # Handles multiple R= or TBR= lines. | 283 # Handles multiple R= or TBR= lines. |
284 description = ( | 284 description = ( |
285 'Foo Bar\nTBR=reviewer@example.com\nBUG=\nR=another@example.com\n') | 285 'Foo Bar\nTBR=reviewer@example.com\nBUG=\nR=another@example.com\n') |
286 self._run_reviewer_test( | 286 self._run_reviewer_test( |
287 [], | 287 [], |
288 'desc\n\nBUG=\nTEST=\n', | 288 'desc\n\nBUG=\n', |
289 description, | 289 description, |
290 description, | 290 description, |
291 ['--reviewers', 'reviewer@example.com,another@example.com']) | 291 ['--reviewers', 'reviewer@example.com,another@example.com']) |
292 | 292 |
293 def test_reviewer_send_mail(self): | 293 def test_reviewer_send_mail(self): |
294 # --send-mail can be used without -r if R= is used | 294 # --send-mail can be used without -r if R= is used |
295 description = 'Foo Bar\nR=reviewer@example.com\n' | 295 description = 'Foo Bar\nR=reviewer@example.com\n' |
296 self._run_reviewer_test( | 296 self._run_reviewer_test( |
297 ['--send-mail'], | 297 ['--send-mail'], |
298 'desc\n\nBUG=\nTEST=\n', | 298 'desc\n\nBUG=\n', |
299 description.strip('\n'), | 299 description.strip('\n'), |
300 description, | 300 description, |
301 ['--reviewers', 'reviewer@example.com', '--send_mail']) | 301 ['--reviewers', 'reviewer@example.com', '--send_mail']) |
302 | 302 |
303 def test_reviewer_send_mail_no_rev(self): | 303 def test_reviewer_send_mail_no_rev(self): |
304 # Fails without a reviewer. | 304 # Fails without a reviewer. |
305 class FileMock(object): | 305 class FileMock(object): |
306 buf = StringIO.StringIO() | 306 buf = StringIO.StringIO() |
307 def write(self, content): | 307 def write(self, content): |
308 self.buf.write(content) | 308 self.buf.write(content) |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
383 description, | 383 description, |
384 reviewers): | 384 reviewers): |
385 """Generic gerrit reviewer test framework.""" | 385 """Generic gerrit reviewer test framework.""" |
386 self.calls = self._gerrit_base_calls() | 386 self.calls = self._gerrit_base_calls() |
387 self.calls += self._gerrit_upload_calls(description, reviewers) | 387 self.calls += self._gerrit_upload_calls(description, reviewers) |
388 git_cl.main(['upload'] + upload_args) | 388 git_cl.main(['upload'] + upload_args) |
389 | 389 |
390 def test_gerrit_no_reviewer(self): | 390 def test_gerrit_no_reviewer(self): |
391 self._run_gerrit_reviewer_test( | 391 self._run_gerrit_reviewer_test( |
392 [], | 392 [], |
393 'desc\n\nBUG=\nTEST=\n', | 393 'desc\n\nBUG=\n', |
394 []) | 394 []) |
395 | 395 |
396 def test_gerrit_reviewers_cmd_line(self): | 396 def test_gerrit_reviewers_cmd_line(self): |
397 self._run_gerrit_reviewer_test( | 397 self._run_gerrit_reviewer_test( |
398 ['-r', 'foo@example.com'], | 398 ['-r', 'foo@example.com'], |
399 'desc\n\nBUG=\nTEST=\n', | 399 'desc\n\nBUG=\n', |
400 ['foo@example.com']) | 400 ['foo@example.com']) |
401 | 401 |
402 def test_gerrit_reviewer_multiple(self): | 402 def test_gerrit_reviewer_multiple(self): |
403 self._run_gerrit_reviewer_test( | 403 self._run_gerrit_reviewer_test( |
404 [], | 404 [], |
405 'desc\nTBR=reviewer@example.com\nBUG=\nR=another@example.com\n', | 405 'desc\nTBR=reviewer@example.com\nBUG=\nR=another@example.com\n', |
406 ['reviewer@example.com', 'another@example.com']) | 406 ['reviewer@example.com', 'another@example.com']) |
407 | 407 |
408 | 408 |
409 def test_config_gerrit_download_hook(self): | 409 def test_config_gerrit_download_hook(self): |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
458 ((['git', 'config', 'rietveld.viewvc-url'],), ''), | 458 ((['git', 'config', 'rietveld.viewvc-url'],), ''), |
459 (('ViewVC URL:',), ''), | 459 (('ViewVC URL:',), ''), |
460 # DownloadHooks(True) | 460 # DownloadHooks(True) |
461 ((commit_msg_path, os.X_OK,), True), | 461 ((commit_msg_path, os.X_OK,), True), |
462 ] | 462 ] |
463 git_cl.main(['config']) | 463 git_cl.main(['config']) |
464 | 464 |
465 | 465 |
466 if __name__ == '__main__': | 466 if __name__ == '__main__': |
467 unittest.main() | 467 unittest.main() |
OLD | NEW |