Index: tests/git_cl_test.py |
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py |
index 23488ce516764f427b5ef59f10b4b5230d35646a..58508bf45275405f8362232dcaf02acc01024454 100755 |
--- a/tests/git_cl_test.py |
+++ b/tests/git_cl_test.py |
@@ -30,10 +30,23 @@ class PresubmitMock(object): |
class RietveldMock(object): |
def __init__(self, *args, **kwargs): |
pass |
+ |
@staticmethod |
def get_description(issue): |
return 'Issue: %d' % issue |
+ @staticmethod |
+ def get_issue_properties(_issue, _messages): |
+ return { |
+ 'reviewers': ['joe@chromium.org', 'john@chromium.org'], |
+ 'messages': [ |
+ { |
+ 'approval': True, |
+ 'sender': 'john@chromium.org', |
+ }, |
+ ], |
+ } |
+ |
class WatchlistsMock(object): |
def __init__(self, _): |
@@ -271,7 +284,8 @@ class TestGitCl(TestCase): |
((['git', 'checkout', '-q', '-b', 'git-cl-commit'],), ''), |
((['git', 'reset', '--soft', 'fake_ancestor_sha'],), ''), |
((['git', 'commit', '-m', |
- 'Issue: 12345\n\nReview URL: https://codereview.example.com/12345'],), |
+ 'Issue: 12345\n\n' |
+ 'Review URL: https://codereview.example.com/12345'],), |
''), |
((['git', 'svn', 'dcommit', '-C50', '--no-rebase', '--rmdir'],), |
(('', None), 0)), |
@@ -334,68 +348,68 @@ class TestGitCl(TestCase): |
def test_no_reviewer(self): |
self._run_reviewer_test( |
[], |
- 'desc\n\nBUG=\n', |
- '# Blah blah comment.\ndesc\n\nBUG=\n', |
- 'desc\n\nBUG=\n', |
+ 'desc\n\nBUG=', |
+ '# Blah blah comment.\ndesc\n\nBUG=', |
+ 'desc\n\nBUG=', |
[]) |
def test_keep_similarity(self): |
self._run_reviewer_test( |
['--similarity', '70'], |
- 'desc\n\nBUG=\n', |
- '# Blah blah comment.\ndesc\n\nBUG=\n', |
- 'desc\n\nBUG=\n', |
+ 'desc\n\nBUG=', |
+ '# Blah blah comment.\ndesc\n\nBUG=', |
+ 'desc\n\nBUG=', |
[]) |
def test_keep_find_copies(self): |
self._run_reviewer_test( |
['--no-find-copies'], |
- 'desc\n\nBUG=\n', |
+ 'desc\n\nBUG=', |
'# Blah blah comment.\ndesc\n\nBUG=\n', |
- 'desc\n\nBUG=\n', |
+ 'desc\n\nBUG=', |
[]) |
def test_reviewers_cmd_line(self): |
# Reviewer is passed as-is |
- description = 'desc\n\nR=foo@example.com\nBUG=\n' |
+ description = 'desc\n\nR=foo@example.com\nBUG=' |
self._run_reviewer_test( |
['-r' 'foo@example.com'], |
description, |
'\n%s\n' % description, |
description, |
- ['--reviewers', 'foo@example.com']) |
+ ['--reviewers=foo@example.com']) |
def test_reviewer_tbr_overriden(self): |
# Reviewer is overriden with TBR |
# Also verifies the regexp work without a trailing LF |
- description = 'Foo Bar\nTBR=reviewer@example.com\n' |
+ description = 'Foo Bar\n\nTBR=reviewer@example.com' |
self._run_reviewer_test( |
['-r' 'foo@example.com'], |
- 'desc\n\nR=foo@example.com\nBUG=\n', |
+ 'desc\n\nR=foo@example.com\nBUG=', |
description.strip('\n'), |
description, |
- ['--reviewers', 'reviewer@example.com']) |
+ ['--reviewers=reviewer@example.com']) |
def test_reviewer_multiple(self): |
# Handles multiple R= or TBR= lines. |
description = ( |
- 'Foo Bar\nTBR=reviewer@example.com\nBUG=\nR=another@example.com\n') |
+ 'Foo Bar\nTBR=reviewer@example.com\nBUG=\nR=another@example.com') |
self._run_reviewer_test( |
[], |
- 'desc\n\nBUG=\n', |
+ 'desc\n\nBUG=', |
description, |
description, |
- ['--reviewers', 'reviewer@example.com,another@example.com']) |
+ ['--reviewers=another@example.com,reviewer@example.com']) |
def test_reviewer_send_mail(self): |
# --send-mail can be used without -r if R= is used |
- description = 'Foo Bar\nR=reviewer@example.com\n' |
+ description = 'Foo Bar\nR=reviewer@example.com' |
self._run_reviewer_test( |
['--send-mail'], |
- 'desc\n\nBUG=\n', |
+ 'desc\n\nBUG=', |
description.strip('\n'), |
description, |
- ['--reviewers', 'reviewer@example.com', '--send_mail']) |
+ ['--reviewers=reviewer@example.com', '--send_mail']) |
def test_reviewer_send_mail_no_rev(self): |
# Fails without a reviewer. |
@@ -490,7 +504,8 @@ class TestGitCl(TestCase): |
receive_pack += '--cc=joe@example.com' # from watch list |
if reviewers: |
receive_pack += ' ' |
- receive_pack += ' '.join(['--reviewer=' + email for email in reviewers]) |
+ receive_pack += ' '.join( |
+ '--reviewer=' + email for email in sorted(reviewers)) |
receive_pack += '' |
calls += [ |
((['git', 'push', receive_pack, 'origin', 'HEAD:refs/for/master'],), |
@@ -590,6 +605,21 @@ class TestGitCl(TestCase): |
] |
git_cl.main(['config']) |
+ def test_update_reviewers(self): |
+ data = [ |
+ ('foo', [], 'foo'), |
+ ('foo', ['a@c'], 'foo\n\nR=a@c'), |
+ ('foo\nBUG=', ['a@c'], 'foo\nBUG=\nR=a@c'), |
+ ('foo\nR=xx\nTBR=yy\nR=bar', ['a@c'], 'foo\nTBR=a@c'), |
+ ('foo', ['a@c', 'b@c'], 'foo\n\nR=a@c, b@c'), |
+ ] |
+ for orig, reviewers, expected in data: |
+ obj = git_cl.ChangeDescription(orig) |
+ obj.update_reviewers(reviewers) |
+ self.assertEqual(expected, obj.description) |
+ |
if __name__ == '__main__': |
+ git_cl.logging.basicConfig( |
+ level=git_cl.logging.DEBUG if '-v' in sys.argv else git_cl.logging.ERROR) |
unittest.main() |