Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(689)

Unified Diff: tests/git_cl_test.py

Issue 13741015: Switch ChangeDescription usage to be stricter. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: append_line -> append_footer Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « git_cl.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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()
« no previous file with comments | « git_cl.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698