Index: tests/git_cl_test.py |
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py |
index 3ca0f2b330a50b15a86d67c7cdd836114982944d..56b9b30d7e6543b2bf47d2f744c6e4bad3df69fc 100755 |
--- a/tests/git_cl_test.py |
+++ b/tests/git_cl_test.py |
@@ -93,11 +93,12 @@ class TestGitCl(TestCase): |
return result |
@classmethod |
- def _upload_calls(cls, similarity): |
- return cls._git_base_calls(similarity) + cls._git_upload_calls() |
+ def _upload_calls(cls, similarity, find_copies): |
+ return (cls._git_base_calls(similarity, find_copies) + |
+ cls._git_upload_calls()) |
@staticmethod |
- def _git_base_calls(similarity): |
+ def _git_base_calls(similarity, find_copies): |
if similarity is None: |
similarity = '50' |
similarity_call = ((['git', 'config', '--int', '--get', |
@@ -105,11 +106,31 @@ class TestGitCl(TestCase): |
else: |
similarity_call = ((['git', 'config', '--int', |
'branch.master.git-cl-similarity', similarity],), '') |
+ |
+ if find_copies is None: |
+ find_copies = True |
+ find_copies_call = ((['git', 'config', '--int', '--get', |
+ 'branch.master.git-find-copies'],), '') |
+ else: |
+ val = str(int(find_copies)) |
+ find_copies_call = ((['git', 'config', '--int', |
+ 'branch.master.git-find-copies', val],), '') |
+ |
+ if find_copies: |
+ stat_call = ((['git', 'diff', '--no-ext-diff', '--stat', |
+ '--find-copies-harder', '-l100000', '-C'+similarity, |
+ 'master...'],), '+dat') |
+ else: |
+ stat_call = ((['git', 'diff', '--no-ext-diff', '--stat', |
+ '-M'+similarity, 'master...'],), '+dat') |
+ |
return [ |
((['git', 'config', 'gerrit.host'],), ''), |
((['git', 'config', 'rietveld.server'],), 'codereview.example.com'), |
((['git', 'symbolic-ref', 'HEAD'],), 'master'), |
similarity_call, |
+ ((['git', 'symbolic-ref', 'HEAD'],), 'master'), |
+ find_copies_call, |
((['git', 'update-index', '--refresh', '-q'],), ''), |
((['git', 'diff-index', 'HEAD'],), ''), |
((['git', 'symbolic-ref', 'HEAD'],), 'master'), |
@@ -123,9 +144,7 @@ class TestGitCl(TestCase): |
((['git', 'config', 'branch.master.rietveldpatchset'],), ''), |
((['git', 'log', '--pretty=format:%s%n%n%b', 'master...'],), 'foo'), |
((['git', 'config', 'user.email'],), 'me@example.com'), |
- ((['git', 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', |
- '-C'+similarity, '-l100000', 'master...'],), |
- '+dat'), |
+ stat_call, |
((['git', 'log', '--pretty=format:%s\n\n%b', 'master..'],), 'desc\n'), |
] |
@@ -157,6 +176,9 @@ class TestGitCl(TestCase): |
((['git', 'config', '--int', '--get', |
'branch.working.git-cl-similarity'],), ''), |
((['git', 'symbolic-ref', 'HEAD'],), 'refs/heads/working'), |
+ ((['git', 'config', '--int', '--get', |
+ 'branch.working.git-find-copies'],), ''), |
+ ((['git', 'symbolic-ref', 'HEAD'],), 'refs/heads/working'), |
((['git', 'config', 'branch.working.merge'],), 'refs/heads/master'), |
((['git', 'config', 'branch.working.remote'],), 'origin'), |
((['git', 'rev-list', '--merges', |
@@ -205,7 +227,7 @@ class TestGitCl(TestCase): |
def _dcommit_calls_3(cls): |
return [ |
((['git', 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', |
- '-C50', '-l100000', 'refs/remotes/origin/master', |
+ '-l100000', '-C50', 'refs/remotes/origin/master', |
'refs/heads/working'],), |
(' PRESUBMIT.py | 2 +-\n' |
' 1 files changed, 1 insertions(+), 1 deletions(-)\n')), |
@@ -229,7 +251,7 @@ class TestGitCl(TestCase): |
] |
@staticmethod |
- def _cmd_line(description, args, similarity): |
+ def _cmd_line(description, args, similarity, find_copies): |
"""Returns the upload command line passed to upload.RealMain().""" |
return [ |
'upload', '--assume_yes', '--server', |
@@ -237,7 +259,8 @@ class TestGitCl(TestCase): |
'--message', description |
] + args + [ |
'--cc', 'joe@example.com', |
- '--git_similarity', similarity or '50', |
+ '--git_similarity', similarity or '50' |
+ ] + (['--git_no_find_copies'] if find_copies == False else []) + [ |
'master...' |
] |
@@ -253,7 +276,15 @@ class TestGitCl(TestCase): |
similarity = upload_args[upload_args.index('--similarity')+1] |
except ValueError: |
similarity = None |
- self.calls = self._upload_calls(similarity) |
+ |
+ if '--find-copies' in upload_args: |
+ find_copies = True |
+ elif '--no-find-copies' in upload_args: |
+ find_copies = False |
+ else: |
+ find_copies = None |
+ |
+ self.calls = self._upload_calls(similarity, find_copies) |
def RunEditor(desc, _): |
self.assertEquals( |
'# Enter a description of the change.\n' |
@@ -264,7 +295,8 @@ class TestGitCl(TestCase): |
return returned_description |
self.mock(git_cl.gclient_utils, 'RunEditor', RunEditor) |
def check_upload(args): |
- cmd_line = self._cmd_line(final_description, reviewers, similarity) |
+ cmd_line = self._cmd_line(final_description, reviewers, similarity, |
+ find_copies) |
self.assertEquals(cmd_line, args) |
return 1, 2 |
self.mock(git_cl.upload, 'RealMain', check_upload) |
@@ -286,6 +318,14 @@ class TestGitCl(TestCase): |
'desc\n\nBUG=\n', |
[]) |
+ def test_keep_find_copies(self): |
+ self._run_reviewer_test( |
+ ['--no-find-copies'], |
+ 'desc\n\nBUG=\n', |
+ '# Blah blah comment.\ndesc\n\nBUG=\n', |
+ 'desc\n\nBUG=\n', |
+ []) |
+ |
def test_reviewers_cmd_line(self): |
# Reviewer is passed as-is |
description = 'desc\n\nR=foo@example.com\nBUG=\n' |
@@ -337,7 +377,7 @@ class TestGitCl(TestCase): |
mock = FileMock() |
try: |
- self.calls = self._git_base_calls(None) |
+ self.calls = self._git_base_calls(None, None) |
def RunEditor(desc, _): |
return desc |
self.mock(git_cl.gclient_utils, 'RunEditor', RunEditor) |
@@ -371,6 +411,9 @@ class TestGitCl(TestCase): |
((['git', 'symbolic-ref', 'HEAD'],), 'master'), |
((['git', 'config', '--int', '--get', |
'branch.master.git-cl-similarity'],), ''), |
+ ((['git', 'symbolic-ref', 'HEAD'],), 'master'), |
+ ((['git', 'config', '--int', '--get', |
+ 'branch.master.git-find-copies'],), ''), |
((['git', 'update-index', '--refresh', '-q'],), ''), |
((['git', 'diff-index', 'HEAD'],), ''), |
((['git', 'symbolic-ref', 'HEAD'],), 'master'), |
@@ -385,7 +428,7 @@ class TestGitCl(TestCase): |
((['git', 'log', '--pretty=format:%s%n%n%b', 'master...'],), 'foo'), |
((['git', 'config', 'user.email'],), 'me@example.com'), |
((['git', 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', |
- '-C50', '-l100000', 'master...'],), |
+ '-l100000', '-C50', 'master...'],), |
'+dat'), |
] |