| OLD | NEW | 
|     1 #!/usr/bin/env python |     1 #!/usr/bin/env python | 
|     2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. |     2 # Copyright (c) 2011 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 is too confused. |     8 # pylint is too confused. | 
|     9 # pylint: disable=E1101,E1103,R0201,W0212,W0403 |     9 # pylint: disable=E1101,E1103,R0201,W0212,W0403 | 
|    10  |    10  | 
| (...skipping 21 matching lines...) Expand all  Loading... | 
|    32     return [output_api.PresubmitPromptWarning("??"), |    32     return [output_api.PresubmitPromptWarning("??"), | 
|    33             output_api.PresubmitError("XX!!XX")] |    33             output_api.PresubmitError("XX!!XX")] | 
|    34   else: |    34   else: | 
|    35     return () |    35     return () | 
|    36 """ |    36 """ | 
|    37   presubmit_tryslave = """ |    37   presubmit_tryslave = """ | 
|    38 def GetPreferredTrySlaves(): |    38 def GetPreferredTrySlaves(): | 
|    39   return %s |    39   return %s | 
|    40 """ |    40 """ | 
|    41  |    41  | 
 |    42   presubmit_tryslave_project = """ | 
 |    43 def GetPreferredTrySlaves(project): | 
 |    44   if project == %s: | 
 |    45     return %s | 
 |    46   else: | 
 |    47     return %s | 
 |    48 """ | 
 |    49  | 
|    42   presubmit_diffs = """ |    50   presubmit_diffs = """ | 
|    43 --- file1       2011-02-09 10:38:16.517224845 -0800 |    51 --- file1       2011-02-09 10:38:16.517224845 -0800 | 
|    44 +++ file2       2011-02-09 10:38:53.177226516 -0800 |    52 +++ file2       2011-02-09 10:38:53.177226516 -0800 | 
|    45 @@ -1,6 +1,5 @@ |    53 @@ -1,6 +1,5 @@ | 
|    46  this is line number 0 |    54  this is line number 0 | 
|    47  this is line number 1 |    55  this is line number 1 | 
|    48 -this is line number 2 to be deleted |    56 -this is line number 2 to be deleted | 
|    49  this is line number 3 |    57  this is line number 3 | 
|    50  this is line number 4 |    58  this is line number 4 | 
|    51  this is line number 5 |    59  this is line number 5 | 
| (...skipping 602 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   654                        '\n' |   662                        '\n' | 
|   655                        '** Presubmit Messages **\n' |   663                        '** Presubmit Messages **\n' | 
|   656                        'http://tracker.com/42\n' |   664                        'http://tracker.com/42\n' | 
|   657                        '\n' |   665                        '\n' | 
|   658                        'Presubmit checks passed.\n')) |   666                        'Presubmit checks passed.\n')) | 
|   659  |   667  | 
|   660   def testGetTrySlavesExecuter(self): |   668   def testGetTrySlavesExecuter(self): | 
|   661     self.mox.ReplayAll() |   669     self.mox.ReplayAll() | 
|   662  |   670  | 
|   663     executer = presubmit.GetTrySlavesExecuter() |   671     executer = presubmit.GetTrySlavesExecuter() | 
|   664     self.assertEqual([], executer.ExecPresubmitScript('', '')) |   672     self.assertEqual([], executer.ExecPresubmitScript('', '', '')) | 
|   665     self.assertEqual( |   673     self.assertEqual( | 
|   666         [], executer.ExecPresubmitScript('def foo():\n  return\n', '')) |   674         [], executer.ExecPresubmitScript('def foo():\n  return\n', '', '')) | 
|   667  |   675  | 
|   668     # bad results |   676     # bad results | 
|   669     starts_with_space_result = ['  starts_with_space'] |   677     starts_with_space_result = ['  starts_with_space'] | 
|   670     not_list_result1 = "'foo'" |   678     not_list_result1 = "'foo'" | 
|   671     not_list_result2 = "('a', 'tuple')" |   679     not_list_result2 = "('a', 'tuple')" | 
|   672     for result in starts_with_space_result, not_list_result1, not_list_result2: |   680     for result in starts_with_space_result, not_list_result1, not_list_result2: | 
|   673       self.assertRaises(presubmit.PresubmitFailure, |   681       self.assertRaises(presubmit.PresubmitFailure, | 
|   674                         executer.ExecPresubmitScript, |   682                         executer.ExecPresubmitScript, | 
|   675                         self.presubmit_tryslave % result, '') |   683                         self.presubmit_tryslave % result, '', '') | 
|   676  |   684  | 
|   677     # good results |   685     # good results | 
|   678     expected_result = ['1', '2', '3'] |   686     expected_result = ['1', '2', '3'] | 
|   679     empty_result = [] |   687     empty_result = [] | 
|   680     space_in_name_result = ['foo bar', '1\t2 3'] |   688     space_in_name_result = ['foo bar', '1\t2 3'] | 
|   681     for result in expected_result, empty_result, space_in_name_result: |   689     for result in expected_result, empty_result, space_in_name_result: | 
|   682       self.assertEqual( |   690       self.assertEqual( | 
|   683           result, |   691           result, | 
|   684           executer.ExecPresubmitScript(self.presubmit_tryslave % result, '')) |   692           executer.ExecPresubmitScript( | 
 |   693               self.presubmit_tryslave % result, '', '')) | 
 |   694  | 
 |   695   def testGetTrySlavesExecuterWithProject(self): | 
 |   696     self.mox.ReplayAll() | 
 |   697  | 
 |   698     executer = presubmit.GetTrySlavesExecuter() | 
 |   699     expected_result1 = ['1', '2'] | 
 |   700     expected_result2 = ['a', 'b', 'c'] | 
 |   701     script = self.presubmit_tryslave_project % ( | 
 |   702         repr('foo'), repr(expected_result1), repr(expected_result2))  | 
 |   703     self.assertEqual( | 
 |   704         expected_result1, executer.ExecPresubmitScript(script, '', 'foo')) | 
 |   705     self.assertEqual( | 
 |   706         expected_result2, executer.ExecPresubmitScript(script, '', 'bar')) | 
|   685  |   707  | 
|   686   def testDoGetTrySlaves(self): |   708   def testDoGetTrySlaves(self): | 
|   687     join = presubmit.os.path.join |   709     join = presubmit.os.path.join | 
|   688     filename = 'foo.cc' |   710     filename = 'foo.cc' | 
|   689     filename_linux = join('linux_only', 'penguin.cc') |   711     filename_linux = join('linux_only', 'penguin.cc') | 
|   690     root_presubmit = join(self.fake_root_dir, 'PRESUBMIT.py') |   712     root_presubmit = join(self.fake_root_dir, 'PRESUBMIT.py') | 
|   691     linux_presubmit = join(self.fake_root_dir, 'linux_only', 'PRESUBMIT.py') |   713     linux_presubmit = join(self.fake_root_dir, 'linux_only', 'PRESUBMIT.py') | 
|   692     inherit_path = presubmit.os.path.join(self.fake_root_dir, |   714     inherit_path = presubmit.os.path.join(self.fake_root_dir, | 
|   693                                           self._INHERIT_SETTINGS) |   715                                           self._INHERIT_SETTINGS) | 
|   694  |   716  | 
|   695     presubmit.os.path.isfile(inherit_path).AndReturn(False) |   717     presubmit.os.path.isfile(inherit_path).AndReturn(False) | 
|   696     presubmit.os.path.isfile(root_presubmit).AndReturn(True) |   718     presubmit.os.path.isfile(root_presubmit).AndReturn(True) | 
|   697     presubmit.gclient_utils.FileRead(root_presubmit, 'rU').AndReturn( |   719     presubmit.gclient_utils.FileRead(root_presubmit, 'rU').AndReturn( | 
|   698         self.presubmit_tryslave % '["win"]') |   720         self.presubmit_tryslave % '["win"]') | 
|   699  |   721  | 
|   700     presubmit.os.path.isfile(inherit_path).AndReturn(False) |   722     presubmit.os.path.isfile(inherit_path).AndReturn(False) | 
|   701     presubmit.os.path.isfile(root_presubmit).AndReturn(True) |   723     presubmit.os.path.isfile(root_presubmit).AndReturn(True) | 
|   702     presubmit.os.path.isfile(linux_presubmit).AndReturn(True) |   724     presubmit.os.path.isfile(linux_presubmit).AndReturn(True) | 
|   703     presubmit.gclient_utils.FileRead(root_presubmit, 'rU').AndReturn( |   725     presubmit.gclient_utils.FileRead(root_presubmit, 'rU').AndReturn( | 
|   704         self.presubmit_tryslave % '["win"]') |   726         self.presubmit_tryslave % '["win"]') | 
|   705     presubmit.gclient_utils.FileRead(linux_presubmit, 'rU').AndReturn( |   727     presubmit.gclient_utils.FileRead(linux_presubmit, 'rU').AndReturn( | 
|   706         self.presubmit_tryslave % '["linux"]') |   728         self.presubmit_tryslave % '["linux"]') | 
|   707     self.mox.ReplayAll() |   729     self.mox.ReplayAll() | 
|   708  |   730  | 
|   709     output = StringIO.StringIO() |   731     output = StringIO.StringIO() | 
|   710     self.assertEqual(['win'], |   732     self.assertEqual(['win'], | 
|   711                      presubmit.DoGetTrySlaves([filename], self.fake_root_dir, |   733                      presubmit.DoGetTrySlaves([filename], self.fake_root_dir, | 
|   712                                               None, False, output)) |   734                                               None, None, False, output)) | 
|   713     output = StringIO.StringIO() |   735     output = StringIO.StringIO() | 
|   714     self.assertEqual(['win', 'linux'], |   736     self.assertEqual(['win', 'linux'], | 
|   715                      presubmit.DoGetTrySlaves([filename, filename_linux], |   737                      presubmit.DoGetTrySlaves([filename, filename_linux], | 
|   716                                               self.fake_root_dir, None, False, |   738                                               self.fake_root_dir, None, None, | 
|   717                                               output)) |   739                                               False, output)) | 
|   718  |   740  | 
|   719   def testMainUnversioned(self): |   741   def testMainUnversioned(self): | 
|   720     # OptParser calls presubmit.os.path.exists and is a pain when mocked. |   742     # OptParser calls presubmit.os.path.exists and is a pain when mocked. | 
|   721     self.UnMock(presubmit.os.path, 'exists') |   743     self.UnMock(presubmit.os.path, 'exists') | 
|   722     self.mox.StubOutWithMock(presubmit, 'DoPresubmitChecks') |   744     self.mox.StubOutWithMock(presubmit, 'DoPresubmitChecks') | 
|   723     self.mox.StubOutWithMock(presubmit, 'ParseFiles') |   745     self.mox.StubOutWithMock(presubmit, 'ParseFiles') | 
|   724     presubmit.scm.determine_scm(self.fake_root_dir).AndReturn(None) |   746     presubmit.scm.determine_scm(self.fake_root_dir).AndReturn(None) | 
|   725     presubmit.ParseFiles(['random_file.txt'], None |   747     presubmit.ParseFiles(['random_file.txt'], None | 
|   726         ).AndReturn(['random_file.txt']) |   748         ).AndReturn(['random_file.txt']) | 
|   727     output = self.mox.CreateMock(presubmit.PresubmitOutput) |   749     output = self.mox.CreateMock(presubmit.PresubmitOutput) | 
| (...skipping 1418 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2146         whitelist=['^a$', '^b$'], |  2168         whitelist=['^a$', '^b$'], | 
|  2147         blacklist=['a']) |  2169         blacklist=['a']) | 
|  2148     self.assertEqual(results, []) |  2170     self.assertEqual(results, []) | 
|  2149     self.checkstdout( |  2171     self.checkstdout( | 
|  2150         'Running %s\n' % presubmit.os.path.join('random_directory', 'b')) |  2172         'Running %s\n' % presubmit.os.path.join('random_directory', 'b')) | 
|  2151  |  2173  | 
|  2152  |  2174  | 
|  2153 if __name__ == '__main__': |  2175 if __name__ == '__main__': | 
|  2154   import unittest |  2176   import unittest | 
|  2155   unittest.main() |  2177   unittest.main() | 
| OLD | NEW |