Index: tests/presubmit_unittest.py |
diff --git a/tests/presubmit_unittest.py b/tests/presubmit_unittest.py |
index ebafb67b1bdb9e2c34ff6b88337845300fdc311f..0d2b4d68f833e8452495d70019820b91f4797685 100755 |
--- a/tests/presubmit_unittest.py |
+++ b/tests/presubmit_unittest.py |
@@ -2570,7 +2570,7 @@ 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='', |
- manually_specified_reviewers=None): |
+ manually_specified_reviewers=None, cq_dry_run=False): |
if approvers is None: |
# The set of people who lgtm'ed a change. |
approvers = set() |
@@ -2598,8 +2598,9 @@ class CannedChecksUnittest(PresubmitTestsBase): |
input_api.tbr = tbr |
if not is_committing or (not tbr and issue): |
- affected_file.LocalPath().AndReturn('foo/xyz.cc') |
- change.AffectedFiles(file_filter=None).AndReturn([affected_file]) |
+ if not cq_dry_run: |
+ affected_file.LocalPath().AndReturn('foo/xyz.cc') |
+ change.AffectedFiles(file_filter=None).AndReturn([affected_file]) |
if issue and not rietveld_response: |
rietveld_response = { |
"owner_email": change.author_email, |
@@ -2612,20 +2613,25 @@ class CannedChecksUnittest(PresubmitTestsBase): |
if is_committing: |
people = approvers |
+ if issue: |
+ input_api.rietveld.get_issue_properties( |
+ issue=int(input_api.change.issue), messages=None).AndReturn( |
+ rietveld_response) |
else: |
people = reviewers |
- if issue: |
- input_api.rietveld.get_issue_properties( |
- issue=int(input_api.change.issue), messages=True).AndReturn( |
- rietveld_response) |
+ if not cq_dry_run: |
+ if issue: |
+ input_api.rietveld.get_issue_properties( |
+ issue=int(input_api.change.issue), messages=True).AndReturn( |
+ rietveld_response) |
- people.add(change.author_email) |
- fake_db.files_not_covered_by(set(['foo/xyz.cc']), |
- people).AndReturn(uncovered_files) |
- if not is_committing and uncovered_files: |
- fake_db.reviewers_for(set(['foo']), |
- change.author_email).AndReturn(change.author_email) |
+ people.add(change.author_email) |
+ fake_db.files_not_covered_by(set(['foo/xyz.cc']), |
+ people).AndReturn(uncovered_files) |
+ if not is_committing and uncovered_files: |
+ fake_db.reviewers_for(set(['foo']), |
+ change.author_email).AndReturn(change.author_email) |
self.mox.ReplayAll() |
output = presubmit.PresubmitOutput() |
@@ -2635,6 +2641,23 @@ class CannedChecksUnittest(PresubmitTestsBase): |
results[0].handle(output) |
self.assertEquals(output.getvalue(), expected_output) |
+ def testCannedCheckOwners_DryRun(self): |
+ response = { |
+ "owner_email": "john@example.com", |
+ "cq_dry_run": True, |
+ "reviewers": ["ben@example.com"], |
+ } |
+ self.AssertOwnersWorks(approvers=set(), |
+ cq_dry_run=True, |
+ rietveld_response=response, |
+ reviewers=set(["ben@example.com"]), |
+ expected_output='This is a CQ dry run, skipping OWNERS check\n') |
+ |
+ self.AssertOwnersWorks(approvers=set(['ben@example.com']), |
+ is_committing=False, |
+ rietveld_response=response, |
+ expected_output='') |
+ |
def testCannedCheckOwners_Approved(self): |
response = { |
"owner_email": "john@example.com", |