| OLD | NEW |
| 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 functools | 10 import functools |
| (...skipping 2069 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2080 'DO NOTSUBMIT', None, 'DO NOT ' + 'SUBMIT', None, | 2080 'DO NOTSUBMIT', None, 'DO NOT ' + 'SUBMIT', None, |
| 2081 presubmit.OutputApi.PresubmitError) | 2081 presubmit.OutputApi.PresubmitError) |
| 2082 | 2082 |
| 2083 def testCheckChangeHasNoStrayWhitespace(self): | 2083 def testCheckChangeHasNoStrayWhitespace(self): |
| 2084 self.ContentTest( | 2084 self.ContentTest( |
| 2085 lambda x,y,z: | 2085 lambda x,y,z: |
| 2086 presubmit_canned_checks.CheckChangeHasNoStrayWhitespace(x, y), | 2086 presubmit_canned_checks.CheckChangeHasNoStrayWhitespace(x, y), |
| 2087 'Foo', None, 'Foo ', None, | 2087 'Foo', None, 'Foo ', None, |
| 2088 presubmit.OutputApi.PresubmitPromptWarning) | 2088 presubmit.OutputApi.PresubmitPromptWarning) |
| 2089 | 2089 |
| 2090 def testCheckSingletonInHeaders(self): | |
| 2091 change1 = presubmit.Change( | |
| 2092 'foo1', 'foo1\n', self.fake_root_dir, None, 0, 0, None) | |
| 2093 input_api1 = self.MockInputApi(change1, False) | |
| 2094 affected_file1 = self.mox.CreateMock(presubmit.SvnAffectedFile) | |
| 2095 affected_file2 = self.mox.CreateMock(presubmit.SvnAffectedFile) | |
| 2096 input_api1.AffectedSourceFiles(None).AndReturn( | |
| 2097 [affected_file1, affected_file2]) | |
| 2098 affected_file1.LocalPath().AndReturn('foo.h') | |
| 2099 input_api1.ReadFile(affected_file1).AndReturn( | |
| 2100 '// Comment mentioning Singleton<Foo>.\n' + | |
| 2101 'friend class Singleton<Foo>;') | |
| 2102 for _ in range(4): | |
| 2103 affected_file2.LocalPath().AndReturn('foo.cc') | |
| 2104 | |
| 2105 change2 = presubmit.Change( | |
| 2106 'foo2', 'foo2\n', self.fake_root_dir, None, 0, 0, None) | |
| 2107 input_api2 = self.MockInputApi(change2, False) | |
| 2108 | |
| 2109 affected_file3 = self.mox.CreateMock(presubmit.SvnAffectedFile) | |
| 2110 input_api2.AffectedSourceFiles(None).AndReturn([affected_file3]) | |
| 2111 affected_file3.LocalPath().AndReturn('foo.h') | |
| 2112 input_api2.ReadFile(affected_file3).AndReturn( | |
| 2113 'Foo* foo = Singleton<Foo>::get();') | |
| 2114 | |
| 2115 self.mox.ReplayAll() | |
| 2116 | |
| 2117 results1 = presubmit_canned_checks.CheckSingletonInHeaders( | |
| 2118 input_api1, presubmit.OutputApi) | |
| 2119 self.assertEquals(results1, []) | |
| 2120 results2 = presubmit_canned_checks.CheckSingletonInHeaders( | |
| 2121 input_api2, presubmit.OutputApi) | |
| 2122 self.assertEquals(len(results2), 1) | |
| 2123 self.assertEquals(results2[0].__class__, presubmit.OutputApi.PresubmitError) | |
| 2124 | |
| 2125 def testCheckChangeHasOnlyOneEol(self): | 2090 def testCheckChangeHasOnlyOneEol(self): |
| 2126 self.ReadFileTest(presubmit_canned_checks.CheckChangeHasOnlyOneEol, | 2091 self.ReadFileTest(presubmit_canned_checks.CheckChangeHasOnlyOneEol, |
| 2127 "Hey!\nHo!\n", "Hey!\nHo!\n\n", | 2092 "Hey!\nHo!\n", "Hey!\nHo!\n\n", |
| 2128 presubmit.OutputApi.PresubmitPromptWarning) | 2093 presubmit.OutputApi.PresubmitPromptWarning) |
| 2129 | 2094 |
| 2130 def testCheckChangeHasNoCR(self): | 2095 def testCheckChangeHasNoCR(self): |
| 2131 self.ReadFileTest(presubmit_canned_checks.CheckChangeHasNoCR, | 2096 self.ReadFileTest(presubmit_canned_checks.CheckChangeHasNoCR, |
| 2132 "Hey!\nHo!\n", "Hey!\r\nHo!\r\n", | 2097 "Hey!\nHo!\n", "Hey!\r\nHo!\r\n", |
| 2133 presubmit.OutputApi.PresubmitPromptWarning) | 2098 presubmit.OutputApi.PresubmitPromptWarning) |
| 2134 | 2099 |
| (...skipping 747 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2882 affected_file.ChangedContents().AndReturn([ | 2847 affected_file.ChangedContents().AndReturn([ |
| 2883 (0, 'Hey!\n'), | 2848 (0, 'Hey!\n'), |
| 2884 (1, 'Ho!\n'), | 2849 (1, 'Ho!\n'), |
| 2885 (2, 'Hey!\n'), | 2850 (2, 'Hey!\n'), |
| 2886 (3, 'Ho!\n'), | 2851 (3, 'Ho!\n'), |
| 2887 (4, '\n')]) | 2852 (4, '\n')]) |
| 2888 for _ in range(5): | 2853 for _ in range(5): |
| 2889 affected_file.LocalPath().AndReturn('hello.py') | 2854 affected_file.LocalPath().AndReturn('hello.py') |
| 2890 input_api.AffectedSourceFiles(mox.IgnoreArg()).AndReturn([affected_file]) | 2855 input_api.AffectedSourceFiles(mox.IgnoreArg()).AndReturn([affected_file]) |
| 2891 input_api.ReadFile(affected_file).AndReturn('Hey!\nHo!\nHey!\nHo!\n\n') | 2856 input_api.ReadFile(affected_file).AndReturn('Hey!\nHo!\nHey!\nHo!\n\n') |
| 2892 input_api.AffectedSourceFiles(mox.IgnoreArg()).AndReturn([affected_file]) | |
| 2893 for _ in range(4): | |
| 2894 affected_file.LocalPath().AndReturn('hello.py') | |
| 2895 | 2857 |
| 2896 self.mox.ReplayAll() | 2858 self.mox.ReplayAll() |
| 2897 results = presubmit_canned_checks.PanProjectChecks( | 2859 results = presubmit_canned_checks.PanProjectChecks( |
| 2898 input_api, | 2860 input_api, |
| 2899 presubmit.OutputApi, | 2861 presubmit.OutputApi, |
| 2900 excluded_paths=None, | 2862 excluded_paths=None, |
| 2901 text_files=None, | 2863 text_files=None, |
| 2902 license_header=None, | 2864 license_header=None, |
| 2903 project_name=None, | 2865 project_name=None, |
| 2904 owners_check=False) | 2866 owners_check=False) |
| 2905 self.assertEqual(1, len(results)) | 2867 self.assertEqual(1, len(results)) |
| 2906 self.assertEqual( | 2868 self.assertEqual( |
| 2907 'Found line ending with white spaces in:', results[0]._message) | 2869 'Found line ending with white spaces in:', results[0]._message) |
| 2908 self.checkstdout('') | 2870 self.checkstdout('') |
| 2909 | 2871 |
| 2910 | 2872 |
| 2911 if __name__ == '__main__': | 2873 if __name__ == '__main__': |
| 2912 import unittest | 2874 import unittest |
| 2913 unittest.main() | 2875 unittest.main() |
| OLD | NEW |