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

Unified Diff: tests/presubmit_unittest.py

Issue 12326151: Add a way to require approval from owners other than the author. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: fix wording in comment Created 7 years, 10 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 | « tests/owners_unittest.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/presubmit_unittest.py
diff --git a/tests/presubmit_unittest.py b/tests/presubmit_unittest.py
index 0014c703da5d76623f7aa17643bb31e7c9a45d97..2357473684158636706071f86fdb25a75c945c56 100755
--- a/tests/presubmit_unittest.py
+++ b/tests/presubmit_unittest.py
@@ -2219,12 +2219,15 @@ class CannedChecksUnittest(PresubmitTestsBase):
def AssertOwnersWorks(self, tbr=False, issue='1', approvers=None,
reviewers=None, is_committing=True, rietveld_response=None,
- uncovered_files=None, expected_output=''):
+ uncovered_files=None, expected_output='', author_counts_as_owner=True):
if approvers is None:
+ # The set of people who lgtm'ed a change.
approvers = set()
if reviewers is None:
- reviewers = set()
- reviewers = reviewers.union(approvers)
+ # The set of people needed to lgtm a change. We default to
+ # the same list as the people who approved it. We use 'reviewers'
+ # to avoid a name collision w/ owners.py.
+ reviewers = approvers
if uncovered_files is None:
uncovered_files = set()
@@ -2263,15 +2266,20 @@ class CannedChecksUnittest(PresubmitTestsBase):
rietveld_response)
people.add(owner_email)
- fake_db.files_not_covered_by(set(['foo/xyz.cc']),
- people).AndReturn(uncovered_files)
+ if author_counts_as_owner:
+ fake_db.files_not_covered_by(set(['foo/xyz.cc']),
+ people).AndReturn(uncovered_files)
+ else:
+ fake_db.files_not_covered_by(set(['foo/xyz.cc']),
+ people.difference(set([owner_email]))).AndReturn(uncovered_files)
if not is_committing and uncovered_files:
- fake_db.reviewers_for(set(['foo/xyz.cc'])).AndReturn(owner_email)
+ fake_db.reviewers_for(set(['foo/xyz.cc']),
+ owner_email if issue else '').AndReturn(owner_email)
self.mox.ReplayAll()
output = presubmit.PresubmitOutput()
results = presubmit_canned_checks.CheckOwners(input_api,
- presubmit.OutputApi)
+ presubmit.OutputApi, author_counts_as_owner=author_counts_as_owner)
if results:
results[0].handle(output)
self.assertEquals(output.getvalue(), expected_output)
@@ -2376,6 +2384,16 @@ class CannedChecksUnittest(PresubmitTestsBase):
is_committing=False,
expected_output='')
+ def testCannedCheckOwners_AuthorCountsAsOwner(self):
+ self.AssertOwnersWorks(approvers=set(['john@example.com',
+ 'brett@example.com']),
+ reviewers=set(['john@example.com',
+ 'ben@example.com']),
+ uncovered_files=set(['foo/xyz.cc']),
+ expected_output='Missing LGTM from an OWNER '
+ 'for these files:\n foo/xyz.cc\n',
+ author_counts_as_owner=False)
+
def testCannedCheckOwners_TBR(self):
self.AssertOwnersWorks(tbr=True,
expected_output='--tbr was specified, skipping OWNERS check\n')
« no previous file with comments | « tests/owners_unittest.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698