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

Side by Side Diff: tests/presubmit_unittest.py

Issue 12314044: return a list of uncovered files, not uncovered dirs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: fix formatting 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tests/owners_unittest.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Unit tests for presubmit_support.py and presubmit_canned_checks.py.""" 6 """Unit tests for presubmit_support.py and presubmit_canned_checks.py."""
7 7
8 # pylint: disable=E1101,E1103 8 # pylint: disable=E1101,E1103
9 9
10 import logging 10 import logging
(...skipping 2201 matching lines...) Expand 10 before | Expand all | Expand 10 after
2212 self.mox.ReplayAll() 2212 self.mox.ReplayAll()
2213 2213
2214 results = presubmit_canned_checks.CheckBuildbotPendingBuilds( 2214 results = presubmit_canned_checks.CheckBuildbotPendingBuilds(
2215 input_api, presubmit.OutputApi, 'uurl', 2, ('foo')) 2215 input_api, presubmit.OutputApi, 'uurl', 2, ('foo'))
2216 self.assertEquals(len(results), 1) 2216 self.assertEquals(len(results), 1)
2217 self.assertEquals(results[0].__class__, 2217 self.assertEquals(results[0].__class__,
2218 presubmit.OutputApi.PresubmitNotifyResult) 2218 presubmit.OutputApi.PresubmitNotifyResult)
2219 2219
2220 def AssertOwnersWorks(self, tbr=False, issue='1', approvers=None, 2220 def AssertOwnersWorks(self, tbr=False, issue='1', approvers=None,
2221 reviewers=None, is_committing=True, rietveld_response=None, 2221 reviewers=None, is_committing=True, rietveld_response=None,
2222 uncovered_dirs=None, expected_output=''): 2222 uncovered_files=None, expected_output=''):
2223 if approvers is None: 2223 if approvers is None:
2224 approvers = set() 2224 approvers = set()
2225 if reviewers is None: 2225 if reviewers is None:
2226 reviewers = set() 2226 reviewers = set()
2227 reviewers = reviewers.union(approvers) 2227 reviewers = reviewers.union(approvers)
2228 if uncovered_dirs is None: 2228 if uncovered_files is None:
2229 uncovered_dirs = set() 2229 uncovered_files = set()
2230 2230
2231 change = self.mox.CreateMock(presubmit.Change) 2231 change = self.mox.CreateMock(presubmit.Change)
2232 change.issue = issue 2232 change.issue = issue
2233 affected_file = self.mox.CreateMock(presubmit.SvnAffectedFile) 2233 affected_file = self.mox.CreateMock(presubmit.SvnAffectedFile)
2234 input_api = self.MockInputApi(change, False) 2234 input_api = self.MockInputApi(change, False)
2235 fake_db = self.mox.CreateMock(owners.Database) 2235 fake_db = self.mox.CreateMock(owners.Database)
2236 fake_db.email_regexp = input_api.re.compile(owners.BASIC_EMAIL_REGEXP) 2236 fake_db.email_regexp = input_api.re.compile(owners.BASIC_EMAIL_REGEXP)
2237 input_api.owners_db = fake_db 2237 input_api.owners_db = fake_db
2238 input_api.is_committing = is_committing 2238 input_api.is_committing = is_committing
2239 input_api.tbr = tbr 2239 input_api.tbr = tbr
(...skipping 16 matching lines...) Expand all
2256 people = approvers 2256 people = approvers
2257 else: 2257 else:
2258 people = reviewers 2258 people = reviewers
2259 2259
2260 if issue: 2260 if issue:
2261 input_api.rietveld.get_issue_properties( 2261 input_api.rietveld.get_issue_properties(
2262 issue=int(input_api.change.issue), messages=True).AndReturn( 2262 issue=int(input_api.change.issue), messages=True).AndReturn(
2263 rietveld_response) 2263 rietveld_response)
2264 people.add(owner_email) 2264 people.add(owner_email)
2265 2265
2266 fake_db.directories_not_covered_by(set(['foo/xyz.cc']), 2266 fake_db.files_not_covered_by(set(['foo/xyz.cc']),
2267 people).AndReturn(uncovered_dirs) 2267 people).AndReturn(uncovered_files)
2268 if not is_committing and uncovered_dirs: 2268 if not is_committing and uncovered_files:
2269 fake_db.reviewers_for(set(['foo/xyz.cc'])).AndReturn(owner_email) 2269 fake_db.reviewers_for(set(['foo/xyz.cc'])).AndReturn(owner_email)
2270 2270
2271 self.mox.ReplayAll() 2271 self.mox.ReplayAll()
2272 output = presubmit.PresubmitOutput() 2272 output = presubmit.PresubmitOutput()
2273 results = presubmit_canned_checks.CheckOwners(input_api, 2273 results = presubmit_canned_checks.CheckOwners(input_api,
2274 presubmit.OutputApi) 2274 presubmit.OutputApi)
2275 if results: 2275 if results:
2276 results[0].handle(output) 2276 results[0].handle(output)
2277 self.assertEquals(output.getvalue(), expected_output) 2277 self.assertEquals(output.getvalue(), expected_output)
2278 2278
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
2345 2345
2346 def testCannedCheckOwners_NoIssueNoFiles(self): 2346 def testCannedCheckOwners_NoIssueNoFiles(self):
2347 self.AssertOwnersWorks(issue=None, 2347 self.AssertOwnersWorks(issue=None,
2348 expected_output="OWNERS check failed: this change has no Rietveld " 2348 expected_output="OWNERS check failed: this change has no Rietveld "
2349 "issue number, so we can't check it for approvals.\n") 2349 "issue number, so we can't check it for approvals.\n")
2350 self.AssertOwnersWorks(issue=None, is_committing=False, 2350 self.AssertOwnersWorks(issue=None, is_committing=False,
2351 expected_output="") 2351 expected_output="")
2352 2352
2353 def testCannedCheckOwners_NoIssue(self): 2353 def testCannedCheckOwners_NoIssue(self):
2354 self.AssertOwnersWorks(issue=None, 2354 self.AssertOwnersWorks(issue=None,
2355 uncovered_dirs=set(['foo']), 2355 uncovered_files=set(['foo']),
2356 expected_output="OWNERS check failed: this change has no Rietveld " 2356 expected_output="OWNERS check failed: this change has no Rietveld "
2357 "issue number, so we can't check it for approvals.\n") 2357 "issue number, so we can't check it for approvals.\n")
2358 self.AssertOwnersWorks(issue=None, 2358 self.AssertOwnersWorks(issue=None,
2359 is_committing=False, 2359 is_committing=False,
2360 uncovered_dirs=set(['foo']), 2360 uncovered_files=set(['foo']),
2361 expected_output='Missing OWNER reviewers for files in these ' 2361 expected_output='Missing OWNER reviewers for these files:\n'
2362 'directories:\n'
2363 ' foo\n' 2362 ' foo\n'
2364 'Until the issue is uploaded, this list will include ' 2363 'Until the issue is uploaded, this list will include '
2365 'directories for which you \n' 2364 'files for which you are an OWNER.\n')
2366 'are an OWNER.\n')
2367 2365
2368 def testCannedCheckOwners_NoLGTM(self): 2366 def testCannedCheckOwners_NoLGTM(self):
2369 self.AssertOwnersWorks(expected_output='Missing LGTM from someone ' 2367 self.AssertOwnersWorks(expected_output='Missing LGTM from someone '
2370 'other than john@example.com\n') 2368 'other than john@example.com\n')
2371 self.AssertOwnersWorks(is_committing=False, expected_output='') 2369 self.AssertOwnersWorks(is_committing=False, expected_output='')
2372 2370
2373 def testCannedCheckOwners_OnlyOwnerLGTM(self): 2371 def testCannedCheckOwners_OnlyOwnerLGTM(self):
2374 self.AssertOwnersWorks(approvers=set(['john@example.com']), 2372 self.AssertOwnersWorks(approvers=set(['john@example.com']),
2375 expected_output='Missing LGTM from someone ' 2373 expected_output='Missing LGTM from someone '
2376 'other than john@example.com\n') 2374 'other than john@example.com\n')
2377 self.AssertOwnersWorks(approvers=set(['john@example.com']), 2375 self.AssertOwnersWorks(approvers=set(['john@example.com']),
2378 is_committing=False, 2376 is_committing=False,
2379 expected_output='') 2377 expected_output='')
2380 2378
2381 def testCannedCheckOwners_TBR(self): 2379 def testCannedCheckOwners_TBR(self):
2382 self.AssertOwnersWorks(tbr=True, 2380 self.AssertOwnersWorks(tbr=True,
2383 expected_output='--tbr was specified, skipping OWNERS check\n') 2381 expected_output='--tbr was specified, skipping OWNERS check\n')
2384 self.AssertOwnersWorks(tbr=True, is_committing=False, expected_output='') 2382 self.AssertOwnersWorks(tbr=True, is_committing=False, expected_output='')
2385 2383
2386 def testCannedCheckOwners_WithoutOwnerLGTM(self): 2384 def testCannedCheckOwners_WithoutOwnerLGTM(self):
2387 self.AssertOwnersWorks(uncovered_dirs=set(['foo']), 2385 self.AssertOwnersWorks(uncovered_files=set(['foo']),
2388 expected_output='Missing LGTM from an OWNER for files in these ' 2386 expected_output='Missing LGTM from an OWNER for these files:\n'
2389 'directories:\n'
2390 ' foo\n') 2387 ' foo\n')
2391 self.AssertOwnersWorks(uncovered_dirs=set(['foo']), 2388 self.AssertOwnersWorks(uncovered_files=set(['foo']),
2392 is_committing=False, 2389 is_committing=False,
2393 expected_output='Missing OWNER reviewers for files in these ' 2390 expected_output='Missing OWNER reviewers for these files:\n'
2394 'directories:\n'
2395 ' foo\n') 2391 ' foo\n')
2396 2392
2397 def testCannedCheckOwners_WithLGTMs(self): 2393 def testCannedCheckOwners_WithLGTMs(self):
2398 self.AssertOwnersWorks(approvers=set(['ben@example.com']), 2394 self.AssertOwnersWorks(approvers=set(['ben@example.com']),
2399 uncovered_dirs=set()) 2395 uncovered_files=set())
2400 self.AssertOwnersWorks(approvers=set(['ben@example.com']), 2396 self.AssertOwnersWorks(approvers=set(['ben@example.com']),
2401 is_committing=False, 2397 is_committing=False,
2402 uncovered_dirs=set()) 2398 uncovered_files=set())
2403 2399
2404 def testCannedRunUnitTests(self): 2400 def testCannedRunUnitTests(self):
2405 change = presubmit.Change( 2401 change = presubmit.Change(
2406 'foo1', 'description1', self.fake_root_dir, None, 0, 0, None) 2402 'foo1', 'description1', self.fake_root_dir, None, 0, 0, None)
2407 input_api = self.MockInputApi(change, False) 2403 input_api = self.MockInputApi(change, False)
2408 input_api.verbose = True 2404 input_api.verbose = True
2409 unit_tests = ['allo', 'bar.py'] 2405 unit_tests = ['allo', 'bar.py']
2410 input_api.PresubmitLocalPath().AndReturn(self.fake_root_dir) 2406 input_api.PresubmitLocalPath().AndReturn(self.fake_root_dir)
2411 input_api.PresubmitLocalPath().AndReturn(self.fake_root_dir) 2407 input_api.PresubmitLocalPath().AndReturn(self.fake_root_dir)
2412 input_api.subprocess.check_call( 2408 input_api.subprocess.check_call(
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
2491 owners_check=False) 2487 owners_check=False)
2492 self.assertEqual(1, len(results)) 2488 self.assertEqual(1, len(results))
2493 self.assertEqual( 2489 self.assertEqual(
2494 'Found line ending with white spaces in:', results[0]._message) 2490 'Found line ending with white spaces in:', results[0]._message)
2495 self.checkstdout('') 2491 self.checkstdout('')
2496 2492
2497 2493
2498 if __name__ == '__main__': 2494 if __name__ == '__main__':
2499 import unittest 2495 import unittest
2500 unittest.main() 2496 unittest.main()
OLDNEW
« 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