| 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 re |
| 9 import StringIO | 10 import StringIO |
| 10 import stat | 11 import stat |
| 11 import sys | 12 import sys |
| 12 import unittest | 13 import unittest |
| 13 | 14 |
| 14 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | 15 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
| 15 | 16 |
| 16 from testing_support.auto_stub import TestCase | 17 from testing_support.auto_stub import TestCase |
| 17 | 18 |
| 18 import git_cl | 19 import git_cl |
| (...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 386 ((['git', 'config', 'user.email'],), 'me@example.com'), | 387 ((['git', 'config', 'user.email'],), 'me@example.com'), |
| 387 ((['git', 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', | 388 ((['git', 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', |
| 388 '-C50', '-l100000', 'master...'],), | 389 '-C50', '-l100000', 'master...'],), |
| 389 '+dat'), | 390 '+dat'), |
| 390 ] | 391 ] |
| 391 | 392 |
| 392 @staticmethod | 393 @staticmethod |
| 393 def _gerrit_upload_calls(description, reviewers): | 394 def _gerrit_upload_calls(description, reviewers): |
| 394 calls = [ | 395 calls = [ |
| 395 ((['git', 'log', '--pretty=format:%s\n\n%b', 'master..'],), | 396 ((['git', 'log', '--pretty=format:%s\n\n%b', 'master..'],), |
| 396 description), | 397 description) |
| 398 ] |
| 399 if not re.search(git_cl.CHANGE_ID_STR, description): |
| 400 calls += [ |
| 401 ((['git', 'commit', '-a', '--amend', '-m %s' % description],), |
| 402 '') |
| 403 ] |
| 404 calls += [ |
| 397 ((['git', 'config', 'rietveld.cc'],), '') | 405 ((['git', 'config', 'rietveld.cc'],), '') |
| 398 ] | 406 ] |
| 399 receive_pack = '--receive-pack=git receive-pack ' | 407 receive_pack = '--receive-pack=git receive-pack ' |
| 400 receive_pack += '--cc=joe@example.com' # from watch list | 408 receive_pack += '--cc=joe@example.com' # from watch list |
| 401 if reviewers: | 409 if reviewers: |
| 402 receive_pack += ' ' | 410 receive_pack += ' ' |
| 403 receive_pack += ' '.join(['--reviewer=' + email for email in reviewers]) | 411 receive_pack += ' '.join(['--reviewer=' + email for email in reviewers]) |
| 404 receive_pack += '' | 412 receive_pack += '' |
| 405 calls += [ | 413 calls += [ |
| 406 ((['git', 'push', receive_pack, 'origin', 'HEAD:refs/for/master'],), | 414 ((['git', 'push', receive_pack, 'origin', 'HEAD:refs/for/master'],), |
| 407 '') | 415 '') |
| 408 ] | 416 ] |
| 409 return calls | 417 return calls |
| 410 | 418 |
| 411 def _run_gerrit_reviewer_test( | 419 def _run_gerrit_upload_test( |
| 412 self, | 420 self, |
| 413 upload_args, | 421 upload_args, |
| 414 description, | 422 description, |
| 415 reviewers): | 423 reviewers): |
| 416 """Generic gerrit reviewer test framework.""" | 424 """Generic gerrit upload test framework.""" |
| 417 self.calls = self._gerrit_base_calls() | 425 self.calls = self._gerrit_base_calls() |
| 418 self.calls += self._gerrit_upload_calls(description, reviewers) | 426 self.calls += self._gerrit_upload_calls(description, reviewers) |
| 419 git_cl.main(['upload'] + upload_args) | 427 git_cl.main(['upload'] + upload_args) |
| 420 | 428 |
| 421 def test_gerrit_no_reviewer(self): | 429 def test_gerrit_upload_without_change_id(self): |
| 422 self._run_gerrit_reviewer_test( | 430 self._run_gerrit_upload_test( |
| 423 [], | 431 [], |
| 424 'desc\n\nBUG=\n', | 432 'desc\n\nBUG=\n', |
| 425 []) | 433 []) |
| 426 | 434 |
| 435 def test_gerrit_no_reviewer(self): |
| 436 self._run_gerrit_upload_test( |
| 437 [], |
| 438 'desc\n\nBUG=\nChange-Id:123456789\n', |
| 439 []) |
| 440 |
| 427 def test_gerrit_reviewers_cmd_line(self): | 441 def test_gerrit_reviewers_cmd_line(self): |
| 428 self._run_gerrit_reviewer_test( | 442 self._run_gerrit_upload_test( |
| 429 ['-r', 'foo@example.com'], | 443 ['-r', 'foo@example.com'], |
| 430 'desc\n\nBUG=\n', | 444 'desc\n\nBUG=\nChange-Id:123456789', |
| 431 ['foo@example.com']) | 445 ['foo@example.com']) |
| 432 | 446 |
| 433 def test_gerrit_reviewer_multiple(self): | 447 def test_gerrit_reviewer_multiple(self): |
| 434 self._run_gerrit_reviewer_test( | 448 self._run_gerrit_upload_test( |
| 435 [], | 449 [], |
| 436 'desc\nTBR=reviewer@example.com\nBUG=\nR=another@example.com\n', | 450 'desc\nTBR=reviewer@example.com\nBUG=\nR=another@example.com\n' |
| 451 'Change-Id:123456789\n', |
| 437 ['reviewer@example.com', 'another@example.com']) | 452 ['reviewer@example.com', 'another@example.com']) |
| 438 | 453 |
| 439 | 454 |
| 440 def test_config_gerrit_download_hook(self): | 455 def test_config_gerrit_download_hook(self): |
| 441 self.mock(git_cl, 'FindCodereviewSettingsFile', CodereviewSettingsFileMock) | 456 self.mock(git_cl, 'FindCodereviewSettingsFile', CodereviewSettingsFileMock) |
| 442 def ParseCodereviewSettingsContent(content): | 457 def ParseCodereviewSettingsContent(content): |
| 443 keyvals = {} | 458 keyvals = {} |
| 444 keyvals['CODE_REVIEW_SERVER'] = 'gerrit.chromium.org' | 459 keyvals['CODE_REVIEW_SERVER'] = 'gerrit.chromium.org' |
| 445 keyvals['GERRIT_HOST'] = 'gerrit.chromium.org' | 460 keyvals['GERRIT_HOST'] = 'gerrit.chromium.org' |
| 446 keyvals['GERRIT_PORT'] = '29418' | 461 keyvals['GERRIT_PORT'] = '29418' |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 489 ((['git', 'config', 'rietveld.viewvc-url'],), ''), | 504 ((['git', 'config', 'rietveld.viewvc-url'],), ''), |
| 490 (('ViewVC URL:',), ''), | 505 (('ViewVC URL:',), ''), |
| 491 # DownloadHooks(True) | 506 # DownloadHooks(True) |
| 492 ((commit_msg_path, os.X_OK,), True), | 507 ((commit_msg_path, os.X_OK,), True), |
| 493 ] | 508 ] |
| 494 git_cl.main(['config']) | 509 git_cl.main(['config']) |
| 495 | 510 |
| 496 | 511 |
| 497 if __name__ == '__main__': | 512 if __name__ == '__main__': |
| 498 unittest.main() | 513 unittest.main() |
| OLD | NEW |