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

Side by Side Diff: tests/presubmit_unittest.py

Issue 118498: Make the presubmit output much more compact. (Closed)
Patch Set: Created 11 years, 6 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 | « tests/gcl_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/python 1 #!/usr/bin/python
2 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2006-2009 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 exceptions 8 import exceptions
9 import random 9 import random
10 import string 10 import string
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 self.mox.ReplayAll() 343 self.mox.ReplayAll()
344 344
345 ci = presubmit.gcl.ChangeInfo(name='mychange', issue=0, patchset=0, 345 ci = presubmit.gcl.ChangeInfo(name='mychange', issue=0, patchset=0,
346 description='\n'.join(description_lines), 346 description='\n'.join(description_lines),
347 files=files) 347 files=files)
348 348
349 output = StringIO.StringIO() 349 output = StringIO.StringIO()
350 input = StringIO.StringIO('y\n') 350 input = StringIO.StringIO('y\n')
351 351
352 self.failIf(presubmit.DoPresubmitChecks(ci, False, True, output, input, 352 self.failIf(presubmit.DoPresubmitChecks(ci, False, True, output, input,
353 None)) 353 None, False))
354 self.assertEqual(output.getvalue().count('!!'), 2) 354 self.assertEqual(output.getvalue().count('!!'), 2)
355 355
356 def testDoPresubmitChecksPromptsAfterWarnings(self): 356 def testDoPresubmitChecksPromptsAfterWarnings(self):
357 join = presubmit.os.path.join 357 join = presubmit.os.path.join
358 description_lines = ('Hello there', 358 description_lines = ('Hello there',
359 'this is a change', 359 'this is a change',
360 'NOSUCHKEY=http://tracker/123') 360 'NOSUCHKEY=http://tracker/123')
361 files = [ 361 files = [
362 ['A', join('haspresubmit', 'blat.cc')], 362 ['A', join('haspresubmit', 'blat.cc')],
363 ] 363 ]
364 presubmit_path = join(self.fake_root_dir, 'PRESUBMIT.py') 364 presubmit_path = join(self.fake_root_dir, 'PRESUBMIT.py')
365 haspresubmit_path = join(self.fake_root_dir, 'haspresubmit', 'PRESUBMIT.py') 365 haspresubmit_path = join(self.fake_root_dir, 'haspresubmit', 'PRESUBMIT.py')
366 for i in range(2): 366 for i in range(2):
367 presubmit.os.path.isfile(presubmit_path).AndReturn(True) 367 presubmit.os.path.isfile(presubmit_path).AndReturn(True)
368 presubmit.os.path.isfile(haspresubmit_path).AndReturn(True) 368 presubmit.os.path.isfile(haspresubmit_path).AndReturn(True)
369 presubmit.gcl.ReadFile(presubmit_path, 'rU' 369 presubmit.gcl.ReadFile(presubmit_path, 'rU'
370 ).AndReturn(self.presubmit_text) 370 ).AndReturn(self.presubmit_text)
371 presubmit.gcl.ReadFile(haspresubmit_path, 'rU' 371 presubmit.gcl.ReadFile(haspresubmit_path, 'rU'
372 ).AndReturn(self.presubmit_text) 372 ).AndReturn(self.presubmit_text)
373 self.mox.ReplayAll() 373 self.mox.ReplayAll()
374 374
375 ci = presubmit.gcl.ChangeInfo(name='mychange', issue=0, patchset=0, 375 ci = presubmit.gcl.ChangeInfo(name='mychange', issue=0, patchset=0,
376 description='\n'.join(description_lines), 376 description='\n'.join(description_lines),
377 files=files) 377 files=files)
378 378
379 output = StringIO.StringIO() 379 output = StringIO.StringIO()
380 input = StringIO.StringIO('n\n') # say no to the warning 380 input = StringIO.StringIO('n\n') # say no to the warning
381 self.failIf(presubmit.DoPresubmitChecks(ci, False, True, output, input, 381 self.failIf(presubmit.DoPresubmitChecks(ci, False, True, output, input,
382 None)) 382 None, False))
383 self.assertEqual(output.getvalue().count('??'), 2) 383 self.assertEqual(output.getvalue().count('??'), 2)
384 384
385 output = StringIO.StringIO() 385 output = StringIO.StringIO()
386 input = StringIO.StringIO('y\n') # say yes to the warning 386 input = StringIO.StringIO('y\n') # say yes to the warning
387 self.failUnless(presubmit.DoPresubmitChecks(ci, 387 self.failUnless(presubmit.DoPresubmitChecks(ci,
388 False, 388 False,
389 True, 389 True,
390 output, 390 output,
391 input, 391 input,
392 None)) 392 None,
393 False))
393 self.assertEquals(output.getvalue().count('??'), 2) 394 self.assertEquals(output.getvalue().count('??'), 2)
394 395
395 def testDoPresubmitChecksNoWarningPromptIfErrors(self): 396 def testDoPresubmitChecksNoWarningPromptIfErrors(self):
396 join = presubmit.os.path.join 397 join = presubmit.os.path.join
397 description_lines = ('Hello there', 398 description_lines = ('Hello there',
398 'this is a change', 399 'this is a change',
399 'NOSUCHKEY=http://tracker/123', 400 'NOSUCHKEY=http://tracker/123',
400 'REALLYNOSUCHKEY=http://tracker/123') 401 'REALLYNOSUCHKEY=http://tracker/123')
401 files = [ 402 files = [
402 ['A', join('haspresubmit', 'blat.cc')], 403 ['A', join('haspresubmit', 'blat.cc')],
403 ] 404 ]
404 presubmit_path = join(self.fake_root_dir, 'PRESUBMIT.py') 405 presubmit_path = join(self.fake_root_dir, 'PRESUBMIT.py')
405 haspresubmit_path = join(self.fake_root_dir, 'haspresubmit', 406 haspresubmit_path = join(self.fake_root_dir, 'haspresubmit',
406 'PRESUBMIT.py') 407 'PRESUBMIT.py')
407 presubmit.os.path.isfile(presubmit_path).AndReturn(True) 408 presubmit.os.path.isfile(presubmit_path).AndReturn(True)
408 presubmit.os.path.isfile(haspresubmit_path).AndReturn(True) 409 presubmit.os.path.isfile(haspresubmit_path).AndReturn(True)
409 presubmit.gcl.ReadFile(presubmit_path, 'rU').AndReturn(self.presubmit_text) 410 presubmit.gcl.ReadFile(presubmit_path, 'rU').AndReturn(self.presubmit_text)
410 presubmit.gcl.ReadFile(haspresubmit_path, 'rU' 411 presubmit.gcl.ReadFile(haspresubmit_path, 'rU'
411 ).AndReturn(self.presubmit_text) 412 ).AndReturn(self.presubmit_text)
412 self.mox.ReplayAll() 413 self.mox.ReplayAll()
413 414
414 ci = presubmit.gcl.ChangeInfo(name='mychange', issue=0, patchset=0, 415 ci = presubmit.gcl.ChangeInfo(name='mychange', issue=0, patchset=0,
415 description='\n'.join(description_lines), 416 description='\n'.join(description_lines),
416 files=files) 417 files=files)
417 output = StringIO.StringIO() 418 output = StringIO.StringIO()
418 input = StringIO.StringIO() # should be unused 419 input = StringIO.StringIO() # should be unused
419 self.failIf(presubmit.DoPresubmitChecks(ci, False, True, output, input, 420 self.failIf(presubmit.DoPresubmitChecks(ci, False, True, output, input,
420 None)) 421 None, False))
421 self.assertEqual(output.getvalue().count('??'), 2) 422 self.assertEqual(output.getvalue().count('??'), 2)
422 self.assertEqual(output.getvalue().count('XX!!XX'), 2) 423 self.assertEqual(output.getvalue().count('XX!!XX'), 2)
423 self.assertEqual(output.getvalue().count('(y/N)'), 0) 424 self.assertEqual(output.getvalue().count('(y/N)'), 0)
424 425
425 def testDoDefaultPresubmitChecks(self): 426 def testDoDefaultPresubmitChecks(self):
426 join = presubmit.os.path.join 427 join = presubmit.os.path.join
427 description_lines = ('Hello there', 428 description_lines = ('Hello there',
428 'this is a change', 429 'this is a change',
429 'STORY=http://tracker/123') 430 'STORY=http://tracker/123')
430 files = [ 431 files = [
(...skipping 14 matching lines...) Expand all
445 446
446 ci = presubmit.gcl.ChangeInfo(name='mychange', issue=0, patchset=0, 447 ci = presubmit.gcl.ChangeInfo(name='mychange', issue=0, patchset=0,
447 description='\n'.join(description_lines), 448 description='\n'.join(description_lines),
448 files=files) 449 files=files)
449 450
450 451
451 output = StringIO.StringIO() 452 output = StringIO.StringIO()
452 input = StringIO.StringIO('y\n') 453 input = StringIO.StringIO('y\n')
453 # Always fail. 454 # Always fail.
454 self.failIf(presubmit.DoPresubmitChecks(ci, False, True, output, input, 455 self.failIf(presubmit.DoPresubmitChecks(ci, False, True, output, input,
455 DEFAULT_SCRIPT)) 456 DEFAULT_SCRIPT, False))
456 self.assertEquals(output.getvalue().count('!!'), 1) 457 self.assertEquals(output.getvalue().count('!!'), 1)
457 458
458 def testDirectoryHandling(self): 459 def testDirectoryHandling(self):
459 files = [ 460 files = [
460 ['A', 'isdir'], 461 ['A', 'isdir'],
461 ['A', 'isdir\\blat.cc'], 462 ['A', 'isdir\\blat.cc'],
462 ] 463 ]
463 presubmit.os.path.exists('isdir').AndReturn(True) 464 presubmit.os.path.exists('isdir').AndReturn(True)
464 presubmit.os.path.isdir('isdir').AndReturn(True) 465 presubmit.os.path.isdir('isdir').AndReturn(True)
465 presubmit.os.path.exists(presubmit.os.path.join('isdir', 'blat.cc') 466 presubmit.os.path.exists(presubmit.os.path.join('isdir', 'blat.cc')
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 506
506 change = presubmit.gcl.ChangeInfo( 507 change = presubmit.gcl.ChangeInfo(
507 name='foo', 508 name='foo',
508 issue=0, 509 issue=0,
509 patchset=0, 510 patchset=0,
510 description="Blah Blah\n\nSTORY=http://tracker.com/42\nBUG=boo\n", 511 description="Blah Blah\n\nSTORY=http://tracker.com/42\nBUG=boo\n",
511 files=None) 512 files=None)
512 output = StringIO.StringIO() 513 output = StringIO.StringIO()
513 input = StringIO.StringIO('y\n') 514 input = StringIO.StringIO('y\n')
514 self.failUnless(presubmit.DoPresubmitChecks(change, False, True, output, 515 self.failUnless(presubmit.DoPresubmitChecks(change, False, True, output,
515 input, DEFAULT_SCRIPT)) 516 input, DEFAULT_SCRIPT, False))
516 self.assertEquals(output.getvalue(), 517 self.assertEquals(output.getvalue(),
517 ('Warning, no presubmit.py found.\n' 518 ('Warning, no presubmit.py found.\n'
518 'Running default presubmit script.\n\n' 519 'Running default presubmit script.\n'
519 '** Presubmit Messages **\n\n' 520 '** Presubmit Messages **\n'
520 'http://tracker.com/42\n\n')) 521 'http://tracker.com/42\n\n'))
521 522
522 523
523 class InputApiUnittest(PresubmitTestsBase): 524 class InputApiUnittest(PresubmitTestsBase):
524 """Tests presubmit.InputApi.""" 525 """Tests presubmit.InputApi."""
525 def testMembersChanged(self): 526 def testMembersChanged(self):
526 self.mox.ReplayAll() 527 self.mox.ReplayAll()
527 members = [ 528 members = [
528 'AbsoluteLocalPaths', 'AffectedFiles', 'AffectedSourceFiles', 529 'AbsoluteLocalPaths', 'AffectedFiles', 'AffectedSourceFiles',
529 'AffectedTextFiles', 530 'AffectedTextFiles',
(...skipping 667 matching lines...) Expand 10 before | Expand all | Expand 10 after
1197 test_result.errors = 0 1198 test_result.errors = 0
1198 self.mox.ReplayAll() 1199 self.mox.ReplayAll()
1199 1200
1200 results = presubmit_canned_checks.RunPythonUnitTests( 1201 results = presubmit_canned_checks.RunPythonUnitTests(
1201 input_api, presubmit.OutputApi, ['test_module']) 1202 input_api, presubmit.OutputApi, ['test_module'])
1202 self.assertEquals(len(results), 0) 1203 self.assertEquals(len(results), 0)
1203 1204
1204 1205
1205 if __name__ == '__main__': 1206 if __name__ == '__main__':
1206 unittest.main() 1207 unittest.main()
OLDNEW
« no previous file with comments | « tests/gcl_unittest.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698