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

Side by Side Diff: tests/presubmit_unittest.py

Issue 3613007: Add a note warning the users that presubmit hooks will be run. (Closed)
Patch Set: move the print to inner function and update tests Created 10 years, 2 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
« no previous file with comments | « presubmit_support.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/python 1 #!/usr/bin/python
2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2010 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 import StringIO 8 import StringIO
9 9
10 # Fixes include path. 10 # Fixes include path.
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 presubmit.random.randint(0, 4).AndReturn(1) 334 presubmit.random.randint(0, 4).AndReturn(1)
335 self.mox.ReplayAll() 335 self.mox.ReplayAll()
336 336
337 output = StringIO.StringIO() 337 output = StringIO.StringIO()
338 input = StringIO.StringIO('y\n') 338 input = StringIO.StringIO('y\n')
339 change = presubmit.Change('mychange', '\n'.join(description_lines), 339 change = presubmit.Change('mychange', '\n'.join(description_lines),
340 self.fake_root_dir, files, 0, 0) 340 self.fake_root_dir, files, 0, 0)
341 self.failIf(presubmit.DoPresubmitChecks(change, False, True, output, input, 341 self.failIf(presubmit.DoPresubmitChecks(change, False, True, output, input,
342 None, False)) 342 None, False))
343 self.assertEqual(output.getvalue().count('!!'), 2) 343 self.assertEqual(output.getvalue().count('!!'), 2)
344 self.checkstdout('Running presubmit hooks...\n')
344 345
345 def testDoPresubmitChecksPromptsAfterWarnings(self): 346 def testDoPresubmitChecksPromptsAfterWarnings(self):
346 join = presubmit.os.path.join 347 join = presubmit.os.path.join
347 description_lines = ('Hello there', 348 description_lines = ('Hello there',
348 'this is a change', 349 'this is a change',
349 'NOSUCHKEY=http://tracker/123') 350 'NOSUCHKEY=http://tracker/123')
350 files = [ 351 files = [
351 ['A', join('haspresubmit', 'blat.cc')], 352 ['A', join('haspresubmit', 'blat.cc')],
352 ] 353 ]
353 presubmit_path = join(self.fake_root_dir, 'PRESUBMIT.py') 354 presubmit_path = join(self.fake_root_dir, 'PRESUBMIT.py')
(...skipping 18 matching lines...) Expand all
372 self.fake_root_dir, files, 0, 0) 373 self.fake_root_dir, files, 0, 0)
373 self.failIf(presubmit.DoPresubmitChecks(change, False, True, output, input, 374 self.failIf(presubmit.DoPresubmitChecks(change, False, True, output, input,
374 None, True)) 375 None, True))
375 self.assertEqual(output.getvalue().count('??'), 2) 376 self.assertEqual(output.getvalue().count('??'), 2)
376 377
377 output = StringIO.StringIO() 378 output = StringIO.StringIO()
378 input = StringIO.StringIO('y\n') # say yes to the warning 379 input = StringIO.StringIO('y\n') # say yes to the warning
379 self.failUnless(presubmit.DoPresubmitChecks(change, False, True, output, 380 self.failUnless(presubmit.DoPresubmitChecks(change, False, True, output,
380 input, None, True)) 381 input, None, True))
381 self.assertEquals(output.getvalue().count('??'), 2) 382 self.assertEquals(output.getvalue().count('??'), 2)
383 self.checkstdout('Running presubmit hooks...\nRunning presubmit hooks...\n')
382 384
383 def testDoPresubmitChecksNoWarningPromptIfErrors(self): 385 def testDoPresubmitChecksNoWarningPromptIfErrors(self):
384 join = presubmit.os.path.join 386 join = presubmit.os.path.join
385 description_lines = ('Hello there', 387 description_lines = ('Hello there',
386 'this is a change', 388 'this is a change',
387 'NOSUCHKEY=http://tracker/123', 389 'NOSUCHKEY=http://tracker/123',
388 'REALLYNOSUCHKEY=http://tracker/123') 390 'REALLYNOSUCHKEY=http://tracker/123')
389 files = [ 391 files = [
390 ['A', join('haspresubmit', 'blat.cc')], 392 ['A', join('haspresubmit', 'blat.cc')],
391 ] 393 ]
(...skipping 14 matching lines...) Expand all
406 408
407 output = StringIO.StringIO() 409 output = StringIO.StringIO()
408 input = StringIO.StringIO() # should be unused 410 input = StringIO.StringIO() # should be unused
409 change = presubmit.Change('mychange', '\n'.join(description_lines), 411 change = presubmit.Change('mychange', '\n'.join(description_lines),
410 self.fake_root_dir, files, 0, 0) 412 self.fake_root_dir, files, 0, 0)
411 self.failIf(presubmit.DoPresubmitChecks(change, False, True, output, input, 413 self.failIf(presubmit.DoPresubmitChecks(change, False, True, output, input,
412 None, False)) 414 None, False))
413 self.assertEqual(output.getvalue().count('??'), 2) 415 self.assertEqual(output.getvalue().count('??'), 2)
414 self.assertEqual(output.getvalue().count('XX!!XX'), 2) 416 self.assertEqual(output.getvalue().count('XX!!XX'), 2)
415 self.assertEqual(output.getvalue().count('(y/N)'), 0) 417 self.assertEqual(output.getvalue().count('(y/N)'), 0)
418 self.checkstdout('Running presubmit hooks...\n')
416 419
417 def testDoDefaultPresubmitChecksAndFeedback(self): 420 def testDoDefaultPresubmitChecksAndFeedback(self):
418 join = presubmit.os.path.join 421 join = presubmit.os.path.join
419 description_lines = ('Hello there', 422 description_lines = ('Hello there',
420 'this is a change', 423 'this is a change',
421 'STORY=http://tracker/123') 424 'STORY=http://tracker/123')
422 files = [ 425 files = [
423 ['A', join('haspresubmit', 'blat.cc')], 426 ['A', join('haspresubmit', 'blat.cc')],
424 ] 427 ]
425 DEFAULT_SCRIPT = """ 428 DEFAULT_SCRIPT = """
(...skipping 19 matching lines...) Expand all
445 change = presubmit.Change('mychange', '\n'.join(description_lines), 448 change = presubmit.Change('mychange', '\n'.join(description_lines),
446 self.fake_root_dir, files, 0, 0) 449 self.fake_root_dir, files, 0, 0)
447 self.failIf(presubmit.DoPresubmitChecks(change, False, True, output, input, 450 self.failIf(presubmit.DoPresubmitChecks(change, False, True, output, input,
448 DEFAULT_SCRIPT, False)) 451 DEFAULT_SCRIPT, False))
449 text = ('Warning, no presubmit.py found.\n' 452 text = ('Warning, no presubmit.py found.\n'
450 'Running default presubmit script.\n' 453 'Running default presubmit script.\n'
451 '** Presubmit ERRORS **\n!!\n\n' 454 '** Presubmit ERRORS **\n!!\n\n'
452 'Was the presubmit check useful? Please send feedback & hate mail ' 455 'Was the presubmit check useful? Please send feedback & hate mail '
453 'to maruel@chromium.org!\n') 456 'to maruel@chromium.org!\n')
454 self.assertEquals(output.getvalue(), text) 457 self.assertEquals(output.getvalue(), text)
458 self.checkstdout('Running presubmit hooks...\n')
455 459
456 def testDirectoryHandling(self): 460 def testDirectoryHandling(self):
457 files = [ 461 files = [
458 ['A', 'isdir'], 462 ['A', 'isdir'],
459 ['A', presubmit.os.path.join('isdir', 'blat.cc')], 463 ['A', presubmit.os.path.join('isdir', 'blat.cc')],
460 ] 464 ]
461 isdir = presubmit.os.path.join(self.fake_root_dir, 'isdir') 465 isdir = presubmit.os.path.join(self.fake_root_dir, 'isdir')
462 blat = presubmit.os.path.join(isdir, 'blat.cc') 466 blat = presubmit.os.path.join(isdir, 'blat.cc')
463 presubmit.os.path.exists(isdir).AndReturn(True) 467 presubmit.os.path.exists(isdir).AndReturn(True)
464 presubmit.os.path.isdir(isdir).AndReturn(True) 468 presubmit.os.path.isdir(isdir).AndReturn(True)
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 change = presubmit.Change( 520 change = presubmit.Change(
517 'foo', "Blah Blah\n\nSTORY=http://tracker.com/42\nBUG=boo\n", 521 'foo', "Blah Blah\n\nSTORY=http://tracker.com/42\nBUG=boo\n",
518 self.fake_root_dir, None, 0, 0) 522 self.fake_root_dir, None, 0, 0)
519 self.failUnless(presubmit.DoPresubmitChecks(change, False, True, output, 523 self.failUnless(presubmit.DoPresubmitChecks(change, False, True, output,
520 input, DEFAULT_SCRIPT, False)) 524 input, DEFAULT_SCRIPT, False))
521 self.assertEquals(output.getvalue(), 525 self.assertEquals(output.getvalue(),
522 ('Warning, no presubmit.py found.\n' 526 ('Warning, no presubmit.py found.\n'
523 'Running default presubmit script.\n' 527 'Running default presubmit script.\n'
524 '** Presubmit Messages **\n' 528 '** Presubmit Messages **\n'
525 'http://tracker.com/42\n\n')) 529 'http://tracker.com/42\n\n'))
530 self.checkstdout('Running presubmit hooks...\n')
526 531
527 def testGetTrySlavesExecuter(self): 532 def testGetTrySlavesExecuter(self):
528 self.mox.ReplayAll() 533 self.mox.ReplayAll()
529 534
530 executer = presubmit.GetTrySlavesExecuter() 535 executer = presubmit.GetTrySlavesExecuter()
531 self.assertEqual([], executer.ExecPresubmitScript('')) 536 self.assertEqual([], executer.ExecPresubmitScript(''))
532 self.assertEqual([], executer.ExecPresubmitScript('def foo():\n return\n')) 537 self.assertEqual([], executer.ExecPresubmitScript('def foo():\n return\n'))
533 538
534 # bad results 539 # bad results
535 starts_with_space_result = [' starts_with_space'] 540 starts_with_space_result = [' starts_with_space']
(...skipping 1198 matching lines...) Expand 10 before | Expand all | Expand 10 after
1734 results = presubmit_canned_checks.CheckBuildbotPendingBuilds( 1739 results = presubmit_canned_checks.CheckBuildbotPendingBuilds(
1735 input_api, presubmit.OutputApi, 'uurl', 2, ('foo')) 1740 input_api, presubmit.OutputApi, 'uurl', 2, ('foo'))
1736 self.assertEquals(len(results), 1) 1741 self.assertEquals(len(results), 1)
1737 self.assertEquals(results[0].__class__, 1742 self.assertEquals(results[0].__class__,
1738 presubmit.OutputApi.PresubmitNotifyResult) 1743 presubmit.OutputApi.PresubmitNotifyResult)
1739 1744
1740 1745
1741 if __name__ == '__main__': 1746 if __name__ == '__main__':
1742 import unittest 1747 import unittest
1743 unittest.main() 1748 unittest.main()
OLDNEW
« no previous file with comments | « presubmit_support.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698