| 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 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 find_copies_call = ((['git', 'config', '--int', '--get', | 113 find_copies_call = ((['git', 'config', '--int', '--get', |
| 114 'branch.master.git-find-copies'],), '') | 114 'branch.master.git-find-copies'],), '') |
| 115 else: | 115 else: |
| 116 val = str(int(find_copies)) | 116 val = str(int(find_copies)) |
| 117 find_copies_call = ((['git', 'config', '--int', | 117 find_copies_call = ((['git', 'config', '--int', |
| 118 'branch.master.git-find-copies', val],), '') | 118 'branch.master.git-find-copies', val],), '') |
| 119 | 119 |
| 120 if find_copies: | 120 if find_copies: |
| 121 stat_call = ((['git', 'diff', '--no-ext-diff', '--stat', | 121 stat_call = ((['git', 'diff', '--no-ext-diff', '--stat', |
| 122 '--find-copies-harder', '-l100000', '-C'+similarity, | 122 '--find-copies-harder', '-l100000', '-C'+similarity, |
| 123 'fake_ancestor_sha'],), '+dat') | 123 'fake_ancestor_sha', 'HEAD'],), '+dat') |
| 124 else: | 124 else: |
| 125 stat_call = ((['git', 'diff', '--no-ext-diff', '--stat', | 125 stat_call = ((['git', 'diff', '--no-ext-diff', '--stat', |
| 126 '-M'+similarity, 'fake_ancestor_sha'],), '+dat') | 126 '-M'+similarity, 'fake_ancestor_sha', 'HEAD'],), '+dat') |
| 127 | 127 |
| 128 return [ | 128 return [ |
| 129 ((['git', 'config', 'rietveld.server'],), 'codereview.example.com'), | 129 ((['git', 'config', 'rietveld.server'],), 'codereview.example.com'), |
| 130 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), | 130 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), |
| 131 similarity_call, | 131 similarity_call, |
| 132 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), | 132 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), |
| 133 find_copies_call, | 133 find_copies_call, |
| 134 ((['git', 'update-index', '--refresh', '-q'],), ''), | 134 ((['git', 'update-index', '--refresh', '-q'],), ''), |
| 135 ((['git', 'diff-index', '--name-status', 'HEAD'],), ''), | 135 ((['git', 'diff-index', '--name-status', 'HEAD'],), ''), |
| 136 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), | 136 ((['git', 'symbolic-ref', 'HEAD'],), 'master'), |
| 137 ((['git', 'config', 'branch.master.merge'],), 'master'), | 137 ((['git', 'config', 'branch.master.merge'],), 'master'), |
| 138 ((['git', 'config', 'branch.master.remote'],), 'origin'), | 138 ((['git', 'config', 'branch.master.remote'],), 'origin'), |
| 139 ((['git', 'merge-base', 'master', 'HEAD'],), 'fake_ancestor_sha'), | 139 ((['git', 'merge-base', 'master', 'HEAD'],), 'fake_ancestor_sha'), |
| 140 ] + cls._git_sanity_checks('fake_ancestor_sha', 'master') + [ | 140 ] + cls._git_sanity_checks('fake_ancestor_sha', 'master') + [ |
| 141 ((['git', 'rev-parse', '--show-cdup'],), ''), | 141 ((['git', 'rev-parse', '--show-cdup'],), ''), |
| 142 ((['git', 'rev-parse', 'HEAD'],), '12345'), | 142 ((['git', 'rev-parse', 'HEAD'],), '12345'), |
| 143 ((['git', 'diff', '--name-status', '-r', 'fake_ancestor_sha...', '.'],), | 143 ((['git', 'diff', '--name-status', '-r', 'fake_ancestor_sha...', '.'],), |
| 144 'M\t.gitignore\n'), | 144 'M\t.gitignore\n'), |
| 145 ((['git', 'config', 'branch.master.rietveldissue'],), ''), | 145 ((['git', 'config', 'branch.master.rietveldissue'],), ''), |
| 146 ((['git', 'config', 'branch.master.rietveldpatchset'],), ''), | 146 ((['git', 'config', 'branch.master.rietveldpatchset'],), ''), |
| 147 ((['git', 'log', '--pretty=format:%s%n%n%b', 'fake_ancestor_sha...'],), | 147 ((['git', 'log', '--pretty=format:%s%n%n%b', 'fake_ancestor_sha...'],), |
| 148 'foo'), | 148 'foo'), |
| 149 ((['git', 'config', 'user.email'],), 'me@example.com'), | 149 ((['git', 'config', 'user.email'],), 'me@example.com'), |
| 150 stat_call, | 150 stat_call, |
| 151 ((['git', 'config', 'gerrit.host'],), ''), | 151 ((['git', 'config', 'gerrit.host'],), ''), |
| 152 ((['git', 'log', '--pretty=format:%s\n\n%b', 'fake_ancestor_sha..'],), | 152 ((['git', 'log', '--pretty=format:%s\n\n%b', 'fake_ancestor_sha..HEAD'],), |
| 153 'desc\n'), | 153 'desc\n'), |
| 154 ] | 154 ] |
| 155 | 155 |
| 156 @classmethod | 156 @classmethod |
| 157 def _git_upload_calls(cls): | 157 def _git_upload_calls(cls): |
| 158 return [ | 158 return [ |
| 159 ((['git', 'config', 'rietveld.cc'],), ''), | 159 ((['git', 'config', 'rietveld.cc'],), ''), |
| 160 ((['git', 'config', 'branch.master.base-url'],), ''), | 160 ((['git', 'config', 'branch.master.base-url'],), ''), |
| 161 ((['git', 'config', '--get-regexp', '^svn-remote\\.'],), | 161 ((['git', 'config', '--get-regexp', '^svn-remote\\.'],), |
| 162 (('', None), 0)), | 162 (('', None), 0)), |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 280 def _cmd_line(description, args, similarity, find_copies): | 280 def _cmd_line(description, args, similarity, find_copies): |
| 281 """Returns the upload command line passed to upload.RealMain().""" | 281 """Returns the upload command line passed to upload.RealMain().""" |
| 282 return [ | 282 return [ |
| 283 'upload', '--assume_yes', '--server', | 283 'upload', '--assume_yes', '--server', |
| 284 'https://codereview.example.com', | 284 'https://codereview.example.com', |
| 285 '--message', description | 285 '--message', description |
| 286 ] + args + [ | 286 ] + args + [ |
| 287 '--cc', 'joe@example.com', | 287 '--cc', 'joe@example.com', |
| 288 '--git_similarity', similarity or '50' | 288 '--git_similarity', similarity or '50' |
| 289 ] + (['--git_no_find_copies'] if find_copies == False else []) + [ | 289 ] + (['--git_no_find_copies'] if find_copies == False else []) + [ |
| 290 'fake_ancestor_sha' | 290 'fake_ancestor_sha', 'HEAD' |
| 291 ] | 291 ] |
| 292 | 292 |
| 293 def _run_reviewer_test( | 293 def _run_reviewer_test( |
| 294 self, | 294 self, |
| 295 upload_args, | 295 upload_args, |
| 296 expected_description, | 296 expected_description, |
| 297 returned_description, | 297 returned_description, |
| 298 final_description, | 298 final_description, |
| 299 reviewers): | 299 reviewers): |
| 300 """Generic reviewer test framework.""" | 300 """Generic reviewer test framework.""" |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 450 ((['git', 'rev-parse', '--show-cdup'],), ''), | 450 ((['git', 'rev-parse', '--show-cdup'],), ''), |
| 451 ((['git', 'rev-parse', 'HEAD'],), '12345'), | 451 ((['git', 'rev-parse', 'HEAD'],), '12345'), |
| 452 ((['git', 'diff', '--name-status', '-r', 'fake_ancestor_sha...', '.'],), | 452 ((['git', 'diff', '--name-status', '-r', 'fake_ancestor_sha...', '.'],), |
| 453 'M\t.gitignore\n'), | 453 'M\t.gitignore\n'), |
| 454 ((['git', 'config', 'branch.master.rietveldissue'],), ''), | 454 ((['git', 'config', 'branch.master.rietveldissue'],), ''), |
| 455 ((['git', 'config', 'branch.master.rietveldpatchset'],), ''), | 455 ((['git', 'config', 'branch.master.rietveldpatchset'],), ''), |
| 456 ((['git', 'log', '--pretty=format:%s%n%n%b', 'fake_ancestor_sha...'],), | 456 ((['git', 'log', '--pretty=format:%s%n%n%b', 'fake_ancestor_sha...'],), |
| 457 'foo'), | 457 'foo'), |
| 458 ((['git', 'config', 'user.email'],), 'me@example.com'), | 458 ((['git', 'config', 'user.email'],), 'me@example.com'), |
| 459 ((['git', 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', | 459 ((['git', 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', |
| 460 '-l100000', '-C50', 'fake_ancestor_sha'],), | 460 '-l100000', '-C50', 'fake_ancestor_sha', 'HEAD'],), |
| 461 '+dat'), | 461 '+dat'), |
| 462 ] | 462 ] |
| 463 | 463 |
| 464 @staticmethod | 464 @staticmethod |
| 465 def _gerrit_upload_calls(description, reviewers): | 465 def _gerrit_upload_calls(description, reviewers): |
| 466 calls = [ | 466 calls = [ |
| 467 ((['git', 'config', 'gerrit.host'],), 'gerrit.example.com'), | 467 ((['git', 'config', 'gerrit.host'],), 'gerrit.example.com'), |
| 468 ((['git', 'log', '--pretty=format:%s\n\n%b', 'fake_ancestor_sha..'],), | 468 ((['git', 'log', '--pretty=format:%s\n\n%b', |
| 469 'fake_ancestor_sha..HEAD'],), |
| 469 description) | 470 description) |
| 470 ] | 471 ] |
| 471 if git_cl.CHANGE_ID not in description: | 472 if git_cl.CHANGE_ID not in description: |
| 472 calls += [ | 473 calls += [ |
| 473 ((['git', 'log', '--pretty=format:%s\n\n%b', 'fake_ancestor_sha..'],), | 474 ((['git', 'log', '--pretty=format:%s\n\n%b', |
| 475 'fake_ancestor_sha..HEAD'],), |
| 474 description), | 476 description), |
| 475 ((['git', 'commit', '--amend', '-m', description],), | 477 ((['git', 'commit', '--amend', '-m', description],), |
| 476 ''), | 478 ''), |
| 477 ((['git', 'log', '--pretty=format:%s\n\n%b', 'fake_ancestor_sha..'],), | 479 ((['git', 'log', '--pretty=format:%s\n\n%b', |
| 480 'fake_ancestor_sha..HEAD'],), |
| 478 description) | 481 description) |
| 479 ] | 482 ] |
| 480 calls += [ | 483 calls += [ |
| 481 ((['git', 'config', 'rietveld.cc'],), '') | 484 ((['git', 'config', 'rietveld.cc'],), '') |
| 482 ] | 485 ] |
| 483 receive_pack = '--receive-pack=git receive-pack ' | 486 receive_pack = '--receive-pack=git receive-pack ' |
| 484 receive_pack += '--cc=joe@example.com' # from watch list | 487 receive_pack += '--cc=joe@example.com' # from watch list |
| 485 if reviewers: | 488 if reviewers: |
| 486 receive_pack += ' ' | 489 receive_pack += ' ' |
| 487 receive_pack += ' '.join(['--reviewer=' + email for email in reviewers]) | 490 receive_pack += ' '.join(['--reviewer=' + email for email in reviewers]) |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 580 ((['git', 'config', 'rietveld.viewvc-url'],), ''), | 583 ((['git', 'config', 'rietveld.viewvc-url'],), ''), |
| 581 (('ViewVC URL:',), ''), | 584 (('ViewVC URL:',), ''), |
| 582 # DownloadHooks(True) | 585 # DownloadHooks(True) |
| 583 ((commit_msg_path, os.X_OK,), True), | 586 ((commit_msg_path, os.X_OK,), True), |
| 584 ] | 587 ] |
| 585 git_cl.main(['config']) | 588 git_cl.main(['config']) |
| 586 | 589 |
| 587 | 590 |
| 588 if __name__ == '__main__': | 591 if __name__ == '__main__': |
| 589 unittest.main() | 592 unittest.main() |
| OLD | NEW |