OLD | NEW |
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 StringIO | 8 import StringIO |
9 | 9 |
10 # Local imports | |
11 import presubmit_support as presubmit | 10 import presubmit_support as presubmit |
12 import presubmit_canned_checks | 11 # Shortcut. |
| 12 from presubmit_support import presubmit_canned_checks |
13 from super_mox import mox, SuperMoxTestBase | 13 from super_mox import mox, SuperMoxTestBase |
14 | 14 |
15 | 15 |
16 class PresubmitTestsBase(SuperMoxTestBase): | 16 class PresubmitTestsBase(SuperMoxTestBase): |
17 """Setups and tear downs the mocks but doesn't test anything as-is.""" | 17 """Setups and tear downs the mocks but doesn't test anything as-is.""" |
18 presubmit_text = """ | 18 presubmit_text = """ |
19 def CheckChangeOnUpload(input_api, output_api): | 19 def CheckChangeOnUpload(input_api, output_api): |
20 if not input_api.change.NOSUCHKEY: | 20 if not input_api.change.NOSUCHKEY: |
21 return [output_api.PresubmitError("!!")] | 21 return [output_api.PresubmitError("!!")] |
22 elif not input_api.change.REALLYNOSUCHKEY: | 22 elif not input_api.change.REALLYNOSUCHKEY: |
(...skipping 17 matching lines...) Expand all Loading... |
40 self.fake_root_dir = self.RootDir() | 40 self.fake_root_dir = self.RootDir() |
41 # Special mocks. | 41 # Special mocks. |
42 def MockAbsPath(f): | 42 def MockAbsPath(f): |
43 return f | 43 return f |
44 def MockChdir(f): | 44 def MockChdir(f): |
45 return None | 45 return None |
46 # SuperMoxTestBase already mock these but simplify our life. | 46 # SuperMoxTestBase already mock these but simplify our life. |
47 presubmit.os.path.abspath = MockAbsPath | 47 presubmit.os.path.abspath = MockAbsPath |
48 presubmit.os.getcwd = self.RootDir | 48 presubmit.os.getcwd = self.RootDir |
49 presubmit.os.chdir = MockChdir | 49 presubmit.os.chdir = MockChdir |
50 self.mox.StubOutWithMock(presubmit.gclient_scm, 'CaptureSVNInfo') | 50 self.mox.StubOutWithMock(presubmit.scm.SVN, 'CaptureInfo') |
51 self.mox.StubOutWithMock(presubmit.gcl, 'GetSVNFileProperty') | 51 self.mox.StubOutWithMock(presubmit.scm.SVN, 'GetFileProperty') |
| 52 # TODO(maruel): Err, small duplication of code here. |
52 self.mox.StubOutWithMock(presubmit.gcl, 'ReadFile') | 53 self.mox.StubOutWithMock(presubmit.gcl, 'ReadFile') |
| 54 self.mox.StubOutWithMock(presubmit.gclient_utils, 'FileRead') |
53 | 55 |
54 | 56 |
55 class PresubmitUnittest(PresubmitTestsBase): | 57 class PresubmitUnittest(PresubmitTestsBase): |
56 """General presubmit_support.py tests (excluding InputApi and OutputApi).""" | 58 """General presubmit_support.py tests (excluding InputApi and OutputApi).""" |
57 def testMembersChanged(self): | 59 def testMembersChanged(self): |
58 self.mox.ReplayAll() | 60 self.mox.ReplayAll() |
59 members = [ | 61 members = [ |
60 'AffectedFile', 'Change', 'DoGetTrySlaves', 'DoPresubmitChecks', | 62 'AffectedFile', 'Change', 'DoGetTrySlaves', 'DoPresubmitChecks', |
61 'GetTrySlavesExecuter', 'GitAffectedFile', 'GitChange', | 63 'GetTrySlavesExecuter', 'GitAffectedFile', 'GitChange', |
62 'InputApi', 'ListRelevantPresubmitFiles', 'Main', | 64 'InputApi', 'ListRelevantPresubmitFiles', 'Main', |
63 'NotImplementedException', 'OutputApi', 'ParseFiles', | 65 'NotImplementedException', 'OutputApi', 'ParseFiles', |
64 'PresubmitExecuter', 'PromptYesNo', 'ScanSubDirs', | 66 'PresubmitExecuter', 'PromptYesNo', 'ScanSubDirs', |
65 'SvnAffectedFile', 'SvnChange', 'cPickle', 'cStringIO', | 67 'SvnAffectedFile', 'SvnChange', 'cPickle', 'cStringIO', |
66 'exceptions', 'fnmatch', 'gcl', 'gclient_scm', 'glob', | 68 'exceptions', 'fnmatch', 'gcl', 'gclient_utils', 'glob', |
67 'logging', 'marshal', 'normpath', 'optparse', 'os', 'pickle', | 69 'logging', 'marshal', 'normpath', 'optparse', 'os', 'pickle', |
68 'presubmit_canned_checks', 'random', 're', 'subprocess', 'sys', | 70 'presubmit_canned_checks', 'random', 're', 'scm', 'subprocess', 'sys', |
69 'tempfile', 'time', 'traceback', 'types', 'unittest', 'urllib2', | 71 'tempfile', 'time', 'traceback', 'types', 'unittest', 'urllib2', |
70 'warnings', | 72 'warnings', |
71 ] | 73 ] |
72 # If this test fails, you should add the relevant test. | 74 # If this test fails, you should add the relevant test. |
73 self.compareMembers(presubmit, members) | 75 self.compareMembers(presubmit, members) |
74 | 76 |
75 def testListRelevantPresubmitFiles(self): | 77 def testListRelevantPresubmitFiles(self): |
76 join = presubmit.os.path.join | 78 join = presubmit.os.path.join |
77 files = [ | 79 files = [ |
78 'blat.cc', | 80 'blat.cc', |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 isdir = presubmit.os.path.join(self.fake_root_dir, 'isdir') | 135 isdir = presubmit.os.path.join(self.fake_root_dir, 'isdir') |
134 presubmit.os.path.exists(blat).AndReturn(True) | 136 presubmit.os.path.exists(blat).AndReturn(True) |
135 presubmit.os.path.isdir(blat).AndReturn(False) | 137 presubmit.os.path.isdir(blat).AndReturn(False) |
136 presubmit.os.path.exists(binary).AndReturn(True) | 138 presubmit.os.path.exists(binary).AndReturn(True) |
137 presubmit.os.path.isdir(binary).AndReturn(False) | 139 presubmit.os.path.isdir(binary).AndReturn(False) |
138 presubmit.os.path.exists(isdir).AndReturn(True) | 140 presubmit.os.path.exists(isdir).AndReturn(True) |
139 presubmit.os.path.isdir(isdir).AndReturn(True) | 141 presubmit.os.path.isdir(isdir).AndReturn(True) |
140 presubmit.os.path.exists(notfound).AndReturn(True) | 142 presubmit.os.path.exists(notfound).AndReturn(True) |
141 presubmit.os.path.isdir(notfound).AndReturn(False) | 143 presubmit.os.path.isdir(notfound).AndReturn(False) |
142 presubmit.os.path.exists(flap).AndReturn(False) | 144 presubmit.os.path.exists(flap).AndReturn(False) |
143 presubmit.gclient_scm.CaptureSVNInfo(flap | 145 presubmit.scm.SVN.CaptureInfo(flap |
144 ).AndReturn({'Node Kind': 'file'}) | 146 ).AndReturn({'Node Kind': 'file'}) |
145 presubmit.gcl.GetSVNFileProperty(blat, 'svn:mime-type').AndReturn(None) | 147 presubmit.scm.SVN.GetFileProperty(blat, 'svn:mime-type').AndReturn(None) |
146 presubmit.gcl.GetSVNFileProperty( | 148 presubmit.scm.SVN.GetFileProperty( |
147 binary, 'svn:mime-type').AndReturn('application/octet-stream') | 149 binary, 'svn:mime-type').AndReturn('application/octet-stream') |
148 presubmit.gcl.GetSVNFileProperty( | 150 presubmit.scm.SVN.GetFileProperty( |
149 notfound, 'svn:mime-type').AndReturn('') | 151 notfound, 'svn:mime-type').AndReturn('') |
150 presubmit.gclient_scm.CaptureSVNInfo(blat).AndReturn( | 152 presubmit.scm.SVN.CaptureInfo(blat).AndReturn( |
151 {'URL': 'svn:/foo/foo/blat.cc'}) | 153 {'URL': 'svn:/foo/foo/blat.cc'}) |
152 presubmit.gclient_scm.CaptureSVNInfo(binary).AndReturn( | 154 presubmit.scm.SVN.CaptureInfo(binary).AndReturn( |
153 {'URL': 'svn:/foo/binary.dll'}) | 155 {'URL': 'svn:/foo/binary.dll'}) |
154 presubmit.gclient_scm.CaptureSVNInfo(notfound).AndReturn({}) | 156 presubmit.scm.SVN.CaptureInfo(notfound).AndReturn({}) |
155 presubmit.gclient_scm.CaptureSVNInfo(flap).AndReturn( | 157 presubmit.scm.SVN.CaptureInfo(flap).AndReturn( |
156 {'URL': 'svn:/foo/boo/flap.h'}) | 158 {'URL': 'svn:/foo/boo/flap.h'}) |
157 presubmit.gcl.ReadFile(blat).AndReturn('boo!\nahh?') | 159 presubmit.gclient_utils.FileRead(blat, 'rU').AndReturn('boo!\nahh?') |
158 presubmit.gcl.ReadFile(notfound).AndReturn('look!\nthere?') | 160 presubmit.gclient_utils.FileRead(notfound, 'rU').AndReturn('look!\nthere?') |
159 self.mox.ReplayAll() | 161 self.mox.ReplayAll() |
160 | 162 |
161 change = presubmit.SvnChange('mychange', '\n'.join(description_lines), | 163 change = presubmit.SvnChange('mychange', '\n'.join(description_lines), |
162 self.fake_root_dir, files, 0, 0) | 164 self.fake_root_dir, files, 0, 0) |
163 self.failUnless(change.Name() == 'mychange') | 165 self.failUnless(change.Name() == 'mychange') |
164 self.failUnless(change.DescriptionText() == | 166 self.failUnless(change.DescriptionText() == |
165 'Hello there\nthis is a change\nand some more regular text') | 167 'Hello there\nthis is a change\nand some more regular text') |
166 self.failUnless(change.FullDescriptionText() == | 168 self.failUnless(change.FullDescriptionText() == |
167 '\n'.join(description_lines)) | 169 '\n'.join(description_lines)) |
168 | 170 |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 description_lines = ('Hello there', | 280 description_lines = ('Hello there', |
279 'this is a change', | 281 'this is a change', |
280 'STORY=http://tracker/123') | 282 'STORY=http://tracker/123') |
281 files = [ | 283 files = [ |
282 ['A', join('haspresubmit', 'blat.cc')], | 284 ['A', join('haspresubmit', 'blat.cc')], |
283 ] | 285 ] |
284 haspresubmit_path = join(self.fake_root_dir, 'haspresubmit', 'PRESUBMIT.py') | 286 haspresubmit_path = join(self.fake_root_dir, 'haspresubmit', 'PRESUBMIT.py') |
285 root_path = join(self.fake_root_dir, 'PRESUBMIT.py') | 287 root_path = join(self.fake_root_dir, 'PRESUBMIT.py') |
286 presubmit.os.path.isfile(root_path).AndReturn(True) | 288 presubmit.os.path.isfile(root_path).AndReturn(True) |
287 presubmit.os.path.isfile(haspresubmit_path).AndReturn(True) | 289 presubmit.os.path.isfile(haspresubmit_path).AndReturn(True) |
288 presubmit.gcl.ReadFile(root_path, | 290 presubmit.gclient_utils.FileRead(root_path, |
289 'rU').AndReturn(self.presubmit_text) | 291 'rU').AndReturn(self.presubmit_text) |
290 presubmit.gcl.ReadFile(haspresubmit_path, | 292 presubmit.gclient_utils.FileRead(haspresubmit_path, |
291 'rU').AndReturn(self.presubmit_text) | 293 'rU').AndReturn(self.presubmit_text) |
292 presubmit.random.randint(0, 4).AndReturn(1) | 294 presubmit.random.randint(0, 4).AndReturn(1) |
293 self.mox.ReplayAll() | 295 self.mox.ReplayAll() |
294 | 296 |
295 output = StringIO.StringIO() | 297 output = StringIO.StringIO() |
296 input = StringIO.StringIO('y\n') | 298 input = StringIO.StringIO('y\n') |
297 change = presubmit.Change('mychange', '\n'.join(description_lines), | 299 change = presubmit.Change('mychange', '\n'.join(description_lines), |
298 self.fake_root_dir, files, 0, 0) | 300 self.fake_root_dir, files, 0, 0) |
299 self.failIf(presubmit.DoPresubmitChecks(change, False, True, output, input, | 301 self.failIf(presubmit.DoPresubmitChecks(change, False, True, output, input, |
300 None, False)) | 302 None, False)) |
301 self.assertEqual(output.getvalue().count('!!'), 2) | 303 self.assertEqual(output.getvalue().count('!!'), 2) |
302 | 304 |
303 def testDoPresubmitChecksPromptsAfterWarnings(self): | 305 def testDoPresubmitChecksPromptsAfterWarnings(self): |
304 join = presubmit.os.path.join | 306 join = presubmit.os.path.join |
305 description_lines = ('Hello there', | 307 description_lines = ('Hello there', |
306 'this is a change', | 308 'this is a change', |
307 'NOSUCHKEY=http://tracker/123') | 309 'NOSUCHKEY=http://tracker/123') |
308 files = [ | 310 files = [ |
309 ['A', join('haspresubmit', 'blat.cc')], | 311 ['A', join('haspresubmit', 'blat.cc')], |
310 ] | 312 ] |
311 presubmit_path = join(self.fake_root_dir, 'PRESUBMIT.py') | 313 presubmit_path = join(self.fake_root_dir, 'PRESUBMIT.py') |
312 haspresubmit_path = join(self.fake_root_dir, 'haspresubmit', 'PRESUBMIT.py') | 314 haspresubmit_path = join(self.fake_root_dir, 'haspresubmit', 'PRESUBMIT.py') |
313 for i in range(2): | 315 for i in range(2): |
314 presubmit.os.path.isfile(presubmit_path).AndReturn(True) | 316 presubmit.os.path.isfile(presubmit_path).AndReturn(True) |
315 presubmit.os.path.isfile(haspresubmit_path).AndReturn(True) | 317 presubmit.os.path.isfile(haspresubmit_path).AndReturn(True) |
316 presubmit.gcl.ReadFile(presubmit_path, 'rU' | 318 presubmit.gclient_utils.FileRead(presubmit_path, 'rU' |
317 ).AndReturn(self.presubmit_text) | 319 ).AndReturn(self.presubmit_text) |
318 presubmit.gcl.ReadFile(haspresubmit_path, 'rU' | 320 presubmit.gclient_utils.FileRead(haspresubmit_path, 'rU' |
319 ).AndReturn(self.presubmit_text) | 321 ).AndReturn(self.presubmit_text) |
320 presubmit.random.randint(0, 4).AndReturn(1) | 322 presubmit.random.randint(0, 4).AndReturn(1) |
321 presubmit.random.randint(0, 4).AndReturn(1) | 323 presubmit.random.randint(0, 4).AndReturn(1) |
322 self.mox.ReplayAll() | 324 self.mox.ReplayAll() |
323 | 325 |
324 output = StringIO.StringIO() | 326 output = StringIO.StringIO() |
325 input = StringIO.StringIO('n\n') # say no to the warning | 327 input = StringIO.StringIO('n\n') # say no to the warning |
326 change = presubmit.Change('mychange', '\n'.join(description_lines), | 328 change = presubmit.Change('mychange', '\n'.join(description_lines), |
327 self.fake_root_dir, files, 0, 0) | 329 self.fake_root_dir, files, 0, 0) |
328 self.failIf(presubmit.DoPresubmitChecks(change, False, True, output, input, | 330 self.failIf(presubmit.DoPresubmitChecks(change, False, True, output, input, |
(...skipping 13 matching lines...) Expand all Loading... |
342 'NOSUCHKEY=http://tracker/123', | 344 'NOSUCHKEY=http://tracker/123', |
343 'REALLYNOSUCHKEY=http://tracker/123') | 345 'REALLYNOSUCHKEY=http://tracker/123') |
344 files = [ | 346 files = [ |
345 ['A', join('haspresubmit', 'blat.cc')], | 347 ['A', join('haspresubmit', 'blat.cc')], |
346 ] | 348 ] |
347 presubmit_path = join(self.fake_root_dir, 'PRESUBMIT.py') | 349 presubmit_path = join(self.fake_root_dir, 'PRESUBMIT.py') |
348 haspresubmit_path = join(self.fake_root_dir, 'haspresubmit', | 350 haspresubmit_path = join(self.fake_root_dir, 'haspresubmit', |
349 'PRESUBMIT.py') | 351 'PRESUBMIT.py') |
350 presubmit.os.path.isfile(presubmit_path).AndReturn(True) | 352 presubmit.os.path.isfile(presubmit_path).AndReturn(True) |
351 presubmit.os.path.isfile(haspresubmit_path).AndReturn(True) | 353 presubmit.os.path.isfile(haspresubmit_path).AndReturn(True) |
352 presubmit.gcl.ReadFile(presubmit_path, 'rU').AndReturn(self.presubmit_text) | 354 presubmit.gclient_utils.FileRead(presubmit_path, 'rU' |
353 presubmit.gcl.ReadFile(haspresubmit_path, 'rU').AndReturn( | 355 ).AndReturn(self.presubmit_text) |
| 356 presubmit.gclient_utils.FileRead(haspresubmit_path, 'rU').AndReturn( |
354 self.presubmit_text) | 357 self.presubmit_text) |
355 presubmit.random.randint(0, 4).AndReturn(1) | 358 presubmit.random.randint(0, 4).AndReturn(1) |
356 self.mox.ReplayAll() | 359 self.mox.ReplayAll() |
357 | 360 |
358 output = StringIO.StringIO() | 361 output = StringIO.StringIO() |
359 input = StringIO.StringIO() # should be unused | 362 input = StringIO.StringIO() # should be unused |
360 change = presubmit.Change('mychange', '\n'.join(description_lines), | 363 change = presubmit.Change('mychange', '\n'.join(description_lines), |
361 self.fake_root_dir, files, 0, 0) | 364 self.fake_root_dir, files, 0, 0) |
362 self.failIf(presubmit.DoPresubmitChecks(change, False, True, output, input, | 365 self.failIf(presubmit.DoPresubmitChecks(change, False, True, output, input, |
363 None, False)) | 366 None, False)) |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
495 str(result))) | 498 str(result))) |
496 | 499 |
497 def testDoGetTrySlaves(self): | 500 def testDoGetTrySlaves(self): |
498 join = presubmit.os.path.join | 501 join = presubmit.os.path.join |
499 filename = 'foo.cc' | 502 filename = 'foo.cc' |
500 filename_linux = join('linux_only', 'penguin.cc') | 503 filename_linux = join('linux_only', 'penguin.cc') |
501 root_presubmit = join(self.fake_root_dir, 'PRESUBMIT.py') | 504 root_presubmit = join(self.fake_root_dir, 'PRESUBMIT.py') |
502 linux_presubmit = join(self.fake_root_dir, 'linux_only', 'PRESUBMIT.py') | 505 linux_presubmit = join(self.fake_root_dir, 'linux_only', 'PRESUBMIT.py') |
503 | 506 |
504 presubmit.os.path.isfile(root_presubmit).AndReturn(True) | 507 presubmit.os.path.isfile(root_presubmit).AndReturn(True) |
505 presubmit.gcl.ReadFile(root_presubmit, 'rU').AndReturn( | 508 presubmit.gclient_utils.FileRead(root_presubmit, 'rU').AndReturn( |
506 self.presubmit_tryslave % '["win"]') | 509 self.presubmit_tryslave % '["win"]') |
507 | 510 |
508 presubmit.os.path.isfile(root_presubmit).AndReturn(True) | 511 presubmit.os.path.isfile(root_presubmit).AndReturn(True) |
509 presubmit.os.path.isfile(linux_presubmit).AndReturn(True) | 512 presubmit.os.path.isfile(linux_presubmit).AndReturn(True) |
510 presubmit.gcl.ReadFile(root_presubmit, 'rU').AndReturn( | 513 presubmit.gclient_utils.FileRead(root_presubmit, 'rU').AndReturn( |
511 self.presubmit_tryslave % '["win"]') | 514 self.presubmit_tryslave % '["win"]') |
512 presubmit.gcl.ReadFile(linux_presubmit, 'rU').AndReturn( | 515 presubmit.gclient_utils.FileRead(linux_presubmit, 'rU').AndReturn( |
513 self.presubmit_tryslave % '["linux"]') | 516 self.presubmit_tryslave % '["linux"]') |
514 self.mox.ReplayAll() | 517 self.mox.ReplayAll() |
515 | 518 |
516 output = StringIO.StringIO() | 519 output = StringIO.StringIO() |
517 self.assertEqual(['win'], | 520 self.assertEqual(['win'], |
518 presubmit.DoGetTrySlaves([filename], self.fake_root_dir, | 521 presubmit.DoGetTrySlaves([filename], self.fake_root_dir, |
519 None, False, output)) | 522 None, False, output)) |
520 output = StringIO.StringIO() | 523 output = StringIO.StringIO() |
521 self.assertEqual(['win', 'linux'], | 524 self.assertEqual(['win', 'linux'], |
522 presubmit.DoGetTrySlaves([filename, filename_linux], | 525 presubmit.DoGetTrySlaves([filename, filename_linux], |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
558 'basename', 'cPickle', 'cStringIO', 'canned_checks', 'change', 'environ', | 561 'basename', 'cPickle', 'cStringIO', 'canned_checks', 'change', 'environ', |
559 'is_committing', 'marshal', 'os_path', 'pickle', 'platform', | 562 'is_committing', 'marshal', 'os_path', 'pickle', 'platform', |
560 'python_executable', | 563 'python_executable', |
561 're', 'subprocess', 'tempfile', 'traceback', 'unittest', 'urllib2', | 564 're', 'subprocess', 'tempfile', 'traceback', 'unittest', 'urllib2', |
562 'version', | 565 'version', |
563 ] | 566 ] |
564 # If this test fails, you should add the relevant test. | 567 # If this test fails, you should add the relevant test. |
565 self.compareMembers(presubmit.InputApi(None, './.', False), members) | 568 self.compareMembers(presubmit.InputApi(None, './.', False), members) |
566 | 569 |
567 def testDepotToLocalPath(self): | 570 def testDepotToLocalPath(self): |
568 presubmit.gclient_scm.CaptureSVNInfo('svn://foo/smurf').AndReturn( | 571 presubmit.scm.SVN.CaptureInfo('svn://foo/smurf').AndReturn( |
569 {'Path': 'prout'}) | 572 {'Path': 'prout'}) |
570 presubmit.gclient_scm.CaptureSVNInfo('svn:/foo/notfound/burp').AndReturn({}) | 573 presubmit.scm.SVN.CaptureInfo('svn:/foo/notfound/burp').AndReturn({}) |
571 self.mox.ReplayAll() | 574 self.mox.ReplayAll() |
572 | 575 |
573 path = presubmit.InputApi(None, './p', False).DepotToLocalPath( | 576 path = presubmit.InputApi(None, './p', False).DepotToLocalPath( |
574 'svn://foo/smurf') | 577 'svn://foo/smurf') |
575 self.failUnless(path == 'prout') | 578 self.failUnless(path == 'prout') |
576 path = presubmit.InputApi(None, './p', False).DepotToLocalPath( | 579 path = presubmit.InputApi(None, './p', False).DepotToLocalPath( |
577 'svn:/foo/notfound/burp') | 580 'svn:/foo/notfound/burp') |
578 self.failUnless(path == None) | 581 self.failUnless(path == None) |
579 | 582 |
580 def testLocalToDepotPath(self): | 583 def testLocalToDepotPath(self): |
581 presubmit.gclient_scm.CaptureSVNInfo('smurf').AndReturn({'URL': | 584 presubmit.scm.SVN.CaptureInfo('smurf').AndReturn({'URL': |
582 'svn://foo'}) | 585 'svn://foo'}) |
583 presubmit.gclient_scm.CaptureSVNInfo('notfound-food').AndReturn({}) | 586 presubmit.scm.SVN.CaptureInfo('notfound-food').AndReturn({}) |
584 self.mox.ReplayAll() | 587 self.mox.ReplayAll() |
585 | 588 |
586 path = presubmit.InputApi(None, './p', False).LocalToDepotPath('smurf') | 589 path = presubmit.InputApi(None, './p', False).LocalToDepotPath('smurf') |
587 self.assertEqual(path, 'svn://foo') | 590 self.assertEqual(path, 'svn://foo') |
588 path = presubmit.InputApi(None, './p', False).LocalToDepotPath( | 591 path = presubmit.InputApi(None, './p', False).LocalToDepotPath( |
589 'notfound-food') | 592 'notfound-food') |
590 self.failUnless(path == None) | 593 self.failUnless(path == None) |
591 | 594 |
592 def testInputApiConstruction(self): | 595 def testInputApiConstruction(self): |
593 self.mox.ReplayAll() | 596 self.mox.ReplayAll() |
(...skipping 30 matching lines...) Expand all Loading... |
624 beingdeleted = presubmit.normpath(join(self.fake_root_dir, files[6][1])) | 627 beingdeleted = presubmit.normpath(join(self.fake_root_dir, files[6][1])) |
625 notfound = presubmit.normpath(join(self.fake_root_dir, files[7][1])) | 628 notfound = presubmit.normpath(join(self.fake_root_dir, files[7][1])) |
626 flap = presubmit.normpath(join(self.fake_root_dir, files[8][1])) | 629 flap = presubmit.normpath(join(self.fake_root_dir, files[8][1])) |
627 for i in (blat, readme, binary, weird, another, third_party): | 630 for i in (blat, readme, binary, weird, another, third_party): |
628 presubmit.os.path.exists(i).AndReturn(True) | 631 presubmit.os.path.exists(i).AndReturn(True) |
629 presubmit.os.path.isdir(i).AndReturn(False) | 632 presubmit.os.path.isdir(i).AndReturn(False) |
630 presubmit.os.path.exists(beingdeleted).AndReturn(False) | 633 presubmit.os.path.exists(beingdeleted).AndReturn(False) |
631 presubmit.os.path.exists(notfound).AndReturn(False) | 634 presubmit.os.path.exists(notfound).AndReturn(False) |
632 presubmit.os.path.exists(flap).AndReturn(True) | 635 presubmit.os.path.exists(flap).AndReturn(True) |
633 presubmit.os.path.isdir(flap).AndReturn(False) | 636 presubmit.os.path.isdir(flap).AndReturn(False) |
634 presubmit.gclient_scm.CaptureSVNInfo(beingdeleted).AndReturn({}) | 637 presubmit.scm.SVN.CaptureInfo(beingdeleted).AndReturn({}) |
635 presubmit.gclient_scm.CaptureSVNInfo(notfound).AndReturn({}) | 638 presubmit.scm.SVN.CaptureInfo(notfound).AndReturn({}) |
636 presubmit.gcl.GetSVNFileProperty(blat, 'svn:mime-type').AndReturn(None) | 639 presubmit.scm.SVN.GetFileProperty(blat, 'svn:mime-type').AndReturn(None) |
637 presubmit.gcl.GetSVNFileProperty(readme, 'svn:mime-type').AndReturn(None) | 640 presubmit.scm.SVN.GetFileProperty(readme, 'svn:mime-type').AndReturn(None) |
638 presubmit.gcl.GetSVNFileProperty(binary, 'svn:mime-type').AndReturn( | 641 presubmit.scm.SVN.GetFileProperty(binary, 'svn:mime-type').AndReturn( |
639 'application/octet-stream') | 642 'application/octet-stream') |
640 presubmit.gcl.GetSVNFileProperty(weird, 'svn:mime-type').AndReturn(None) | 643 presubmit.scm.SVN.GetFileProperty(weird, 'svn:mime-type').AndReturn(None) |
641 presubmit.gcl.GetSVNFileProperty(another, 'svn:mime-type').AndReturn(None) | 644 presubmit.scm.SVN.GetFileProperty(another, 'svn:mime-type').AndReturn(None) |
642 presubmit.gcl.GetSVNFileProperty(third_party, 'svn:mime-type' | 645 presubmit.scm.SVN.GetFileProperty(third_party, 'svn:mime-type' |
643 ).AndReturn(None) | 646 ).AndReturn(None) |
644 presubmit.gcl.ReadFile(blat).AndReturn('whatever\ncookie') | 647 presubmit.gclient_utils.FileRead(blat, 'rU' |
645 presubmit.gcl.ReadFile(another).AndReturn('whatever\ncookie2') | 648 ).AndReturn('whatever\ncookie') |
| 649 presubmit.gclient_utils.FileRead(another, 'rU' |
| 650 ).AndReturn('whatever\ncookie2') |
646 self.mox.ReplayAll() | 651 self.mox.ReplayAll() |
647 | 652 |
648 change = presubmit.SvnChange('mychange', '\n'.join(description_lines), | 653 change = presubmit.SvnChange('mychange', '\n'.join(description_lines), |
649 self.fake_root_dir, files, 0, 0) | 654 self.fake_root_dir, files, 0, 0) |
650 input_api = presubmit.InputApi(change, | 655 input_api = presubmit.InputApi(change, |
651 join(self.fake_root_dir, 'foo', | 656 join(self.fake_root_dir, 'foo', |
652 'PRESUBMIT.py'), | 657 'PRESUBMIT.py'), |
653 False) | 658 False) |
654 # Doesn't filter much | 659 # Doesn't filter much |
655 got_files = input_api.AffectedFiles() | 660 got_files = input_api.AffectedFiles() |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
747 self.assertEquals(len(results), len(item[1])) | 752 self.assertEquals(len(results), len(item[1])) |
748 | 753 |
749 def testCustomFilter(self): | 754 def testCustomFilter(self): |
750 def FilterSourceFile(affected_file): | 755 def FilterSourceFile(affected_file): |
751 return 'a' in affected_file.LocalPath() | 756 return 'a' in affected_file.LocalPath() |
752 files = [('A', 'eeaee'), ('M', 'eeabee'), ('M', 'eebcee')] | 757 files = [('A', 'eeaee'), ('M', 'eeabee'), ('M', 'eebcee')] |
753 for (action, item) in files: | 758 for (action, item) in files: |
754 item = presubmit.os.path.join(self.fake_root_dir, item) | 759 item = presubmit.os.path.join(self.fake_root_dir, item) |
755 presubmit.os.path.exists(item).AndReturn(True) | 760 presubmit.os.path.exists(item).AndReturn(True) |
756 presubmit.os.path.isdir(item).AndReturn(False) | 761 presubmit.os.path.isdir(item).AndReturn(False) |
757 presubmit.gcl.GetSVNFileProperty(item, 'svn:mime-type').AndReturn(None) | 762 presubmit.scm.SVN.GetFileProperty(item, 'svn:mime-type').AndReturn(None) |
758 self.mox.ReplayAll() | 763 self.mox.ReplayAll() |
759 | 764 |
760 change = presubmit.SvnChange('mychange', '', self.fake_root_dir, files, 0, | 765 change = presubmit.SvnChange('mychange', '', self.fake_root_dir, files, 0, |
761 0) | 766 0) |
762 input_api = presubmit.InputApi(change, | 767 input_api = presubmit.InputApi(change, |
763 presubmit.os.path.join(self.fake_root_dir, | 768 presubmit.os.path.join(self.fake_root_dir, |
764 'PRESUBMIT.py'), | 769 'PRESUBMIT.py'), |
765 False) | 770 False) |
766 got_files = input_api.AffectedSourceFiles(FilterSourceFile) | 771 got_files = input_api.AffectedSourceFiles(FilterSourceFile) |
767 self.assertEquals(len(got_files), 2) | 772 self.assertEquals(len(got_files), 2) |
768 self.assertEquals(got_files[0].LocalPath(), 'eeaee') | 773 self.assertEquals(got_files[0].LocalPath(), 'eeaee') |
769 self.assertEquals(got_files[1].LocalPath(), 'eeabee') | 774 self.assertEquals(got_files[1].LocalPath(), 'eeabee') |
770 | 775 |
771 def testLambdaFilter(self): | 776 def testLambdaFilter(self): |
772 white_list = presubmit.InputApi.DEFAULT_BLACK_LIST + (r".*?a.*?",) | 777 white_list = presubmit.InputApi.DEFAULT_BLACK_LIST + (r".*?a.*?",) |
773 black_list = [r".*?b.*?"] | 778 black_list = [r".*?b.*?"] |
774 files = [('A', 'eeaee'), ('M', 'eeabee'), ('M', 'eebcee'), ('M', 'eecaee')] | 779 files = [('A', 'eeaee'), ('M', 'eeabee'), ('M', 'eebcee'), ('M', 'eecaee')] |
775 for (action, item) in files: | 780 for (action, item) in files: |
776 item = presubmit.os.path.join(self.fake_root_dir, item) | 781 item = presubmit.os.path.join(self.fake_root_dir, item) |
777 presubmit.os.path.exists(item).AndReturn(True) | 782 presubmit.os.path.exists(item).AndReturn(True) |
778 presubmit.os.path.isdir(item).AndReturn(False) | 783 presubmit.os.path.isdir(item).AndReturn(False) |
779 presubmit.gcl.GetSVNFileProperty(item, 'svn:mime-type').AndReturn(None) | 784 presubmit.scm.SVN.GetFileProperty(item, 'svn:mime-type').AndReturn(None) |
780 self.mox.ReplayAll() | 785 self.mox.ReplayAll() |
781 | 786 |
782 change = presubmit.SvnChange('mychange', '', self.fake_root_dir, files, 0, | 787 change = presubmit.SvnChange('mychange', '', self.fake_root_dir, files, 0, |
783 0) | 788 0) |
784 input_api = presubmit.InputApi(change, './PRESUBMIT.py', False) | 789 input_api = presubmit.InputApi(change, './PRESUBMIT.py', False) |
785 # Sample usage of overiding the default white and black lists. | 790 # Sample usage of overiding the default white and black lists. |
786 got_files = input_api.AffectedSourceFiles( | 791 got_files = input_api.AffectedSourceFiles( |
787 lambda x: input_api.FilterSourceFile(x, white_list, black_list)) | 792 lambda x: input_api.FilterSourceFile(x, white_list, black_list)) |
788 self.assertEquals(len(got_files), 2) | 793 self.assertEquals(len(got_files), 2) |
789 self.assertEquals(got_files[0].LocalPath(), 'eeaee') | 794 self.assertEquals(got_files[0].LocalPath(), 'eeaee') |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
845 self.mox.ReplayAll() | 850 self.mox.ReplayAll() |
846 | 851 |
847 change = presubmit.Change('foo', 'foo', self.fake_root_dir, [('M', 'AA')], | 852 change = presubmit.Change('foo', 'foo', self.fake_root_dir, [('M', 'AA')], |
848 0, 0) | 853 0, 0) |
849 input_api = presubmit.InputApi( | 854 input_api = presubmit.InputApi( |
850 change, presubmit.os.path.join(self.fake_root_dir, '/p'), False) | 855 change, presubmit.os.path.join(self.fake_root_dir, '/p'), False) |
851 self.assertRaises(IOError, input_api.ReadFile, 'boo', 'x') | 856 self.assertRaises(IOError, input_api.ReadFile, 'boo', 'x') |
852 | 857 |
853 def testReadFileStringAccepted(self): | 858 def testReadFileStringAccepted(self): |
854 path = presubmit.os.path.join(self.fake_root_dir, 'AA/boo') | 859 path = presubmit.os.path.join(self.fake_root_dir, 'AA/boo') |
855 presubmit.gcl.ReadFile(path, 'x').AndReturn(None) | 860 presubmit.gclient_utils.FileRead(path, 'x').AndReturn(None) |
856 self.mox.ReplayAll() | 861 self.mox.ReplayAll() |
857 | 862 |
858 change = presubmit.Change('foo', 'foo', self.fake_root_dir, [('M', 'AA')], | 863 change = presubmit.Change('foo', 'foo', self.fake_root_dir, [('M', 'AA')], |
859 0, 0) | 864 0, 0) |
860 input_api = presubmit.InputApi( | 865 input_api = presubmit.InputApi( |
861 change, presubmit.os.path.join(self.fake_root_dir, '/p'), False) | 866 change, presubmit.os.path.join(self.fake_root_dir, '/p'), False) |
862 input_api.ReadFile(path, 'x') | 867 input_api.ReadFile(path, 'x') |
863 | 868 |
864 def testReadFileAffectedFileDenied(self): | 869 def testReadFileAffectedFileDenied(self): |
865 file = presubmit.AffectedFile('boo', 'M', 'Unrelated') | 870 file = presubmit.AffectedFile('boo', 'M', 'Unrelated') |
866 self.mox.ReplayAll() | 871 self.mox.ReplayAll() |
867 | 872 |
868 change = presubmit.Change('foo', 'foo', self.fake_root_dir, [('M', 'AA')], | 873 change = presubmit.Change('foo', 'foo', self.fake_root_dir, [('M', 'AA')], |
869 0, 0) | 874 0, 0) |
870 input_api = presubmit.InputApi( | 875 input_api = presubmit.InputApi( |
871 change, presubmit.os.path.join(self.fake_root_dir, '/p'), False) | 876 change, presubmit.os.path.join(self.fake_root_dir, '/p'), False) |
872 self.assertRaises(IOError, input_api.ReadFile, file, 'x') | 877 self.assertRaises(IOError, input_api.ReadFile, file, 'x') |
873 | 878 |
874 def testReadFileAffectedFileAccepted(self): | 879 def testReadFileAffectedFileAccepted(self): |
875 file = presubmit.AffectedFile('AA/boo', 'M', self.fake_root_dir) | 880 file = presubmit.AffectedFile('AA/boo', 'M', self.fake_root_dir) |
876 presubmit.gcl.ReadFile(file.AbsoluteLocalPath(), 'x').AndReturn(None) | 881 presubmit.gclient_utils.FileRead(file.AbsoluteLocalPath(), 'x' |
| 882 ).AndReturn(None) |
877 self.mox.ReplayAll() | 883 self.mox.ReplayAll() |
878 | 884 |
879 change = presubmit.Change('foo', 'foo', self.fake_root_dir, [('M', 'AA')], | 885 change = presubmit.Change('foo', 'foo', self.fake_root_dir, [('M', 'AA')], |
880 0, 0) | 886 0, 0) |
881 input_api = presubmit.InputApi( | 887 input_api = presubmit.InputApi( |
882 change, presubmit.os.path.join(self.fake_root_dir, '/p'), False) | 888 change, presubmit.os.path.join(self.fake_root_dir, '/p'), False) |
883 input_api.ReadFile(file, 'x') | 889 input_api.ReadFile(file, 'x') |
884 | 890 |
885 | 891 |
886 class OuputApiUnittest(PresubmitTestsBase): | 892 class OuputApiUnittest(PresubmitTestsBase): |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
948 'NewContents', 'OldContents', 'OldFileTempPath', 'Property', 'ServerPath', | 954 'NewContents', 'OldContents', 'OldFileTempPath', 'Property', 'ServerPath', |
949 ] | 955 ] |
950 # If this test fails, you should add the relevant test. | 956 # If this test fails, you should add the relevant test. |
951 self.compareMembers(presubmit.AffectedFile('a', 'b'), members) | 957 self.compareMembers(presubmit.AffectedFile('a', 'b'), members) |
952 self.compareMembers(presubmit.SvnAffectedFile('a', 'b'), members) | 958 self.compareMembers(presubmit.SvnAffectedFile('a', 'b'), members) |
953 | 959 |
954 def testAffectedFile(self): | 960 def testAffectedFile(self): |
955 path = presubmit.os.path.join('foo', 'blat.cc') | 961 path = presubmit.os.path.join('foo', 'blat.cc') |
956 presubmit.os.path.exists(path).AndReturn(True) | 962 presubmit.os.path.exists(path).AndReturn(True) |
957 presubmit.os.path.isdir(path).AndReturn(False) | 963 presubmit.os.path.isdir(path).AndReturn(False) |
958 presubmit.gcl.ReadFile(path).AndReturn('whatever\ncookie') | 964 presubmit.gclient_utils.FileRead(path, 'rU').AndReturn('whatever\ncookie') |
959 presubmit.gclient_scm.CaptureSVNInfo(path).AndReturn( | 965 presubmit.scm.SVN.CaptureInfo(path).AndReturn( |
960 {'URL': 'svn:/foo/foo/blat.cc'}) | 966 {'URL': 'svn:/foo/foo/blat.cc'}) |
961 self.mox.ReplayAll() | 967 self.mox.ReplayAll() |
962 af = presubmit.SvnAffectedFile('foo/blat.cc', 'M') | 968 af = presubmit.SvnAffectedFile('foo/blat.cc', 'M') |
963 self.failUnless(af.ServerPath() == 'svn:/foo/foo/blat.cc') | 969 self.failUnless(af.ServerPath() == 'svn:/foo/foo/blat.cc') |
964 self.failUnless(af.LocalPath() == presubmit.normpath('foo/blat.cc')) | 970 self.failUnless(af.LocalPath() == presubmit.normpath('foo/blat.cc')) |
965 self.failUnless(af.Action() == 'M') | 971 self.failUnless(af.Action() == 'M') |
966 self.assertEquals(af.NewContents(), ['whatever', 'cookie']) | 972 self.assertEquals(af.NewContents(), ['whatever', 'cookie']) |
967 af = presubmit.AffectedFile('notfound.cc', 'A') | 973 af = presubmit.AffectedFile('notfound.cc', 'A') |
968 self.failUnless(af.ServerPath() == '') | 974 self.failUnless(af.ServerPath() == '') |
969 | 975 |
970 def testProperty(self): | 976 def testProperty(self): |
971 presubmit.gcl.GetSVNFileProperty('foo.cc', 'svn:secret-property' | 977 presubmit.scm.SVN.GetFileProperty('foo.cc', 'svn:secret-property' |
972 ).AndReturn('secret-property-value') | 978 ).AndReturn('secret-property-value') |
973 self.mox.ReplayAll() | 979 self.mox.ReplayAll() |
974 affected_file = presubmit.SvnAffectedFile('foo.cc', 'A') | 980 affected_file = presubmit.SvnAffectedFile('foo.cc', 'A') |
975 # Verify cache coherency. | 981 # Verify cache coherency. |
976 self.failUnless(affected_file.Property('svn:secret-property') == | 982 self.failUnless(affected_file.Property('svn:secret-property') == |
977 'secret-property-value') | 983 'secret-property-value') |
978 self.failUnless(affected_file.Property('svn:secret-property') == | 984 self.failUnless(affected_file.Property('svn:secret-property') == |
979 'secret-property-value') | 985 'secret-property-value') |
980 | 986 |
981 def testIsDirectoryNotExists(self): | 987 def testIsDirectoryNotExists(self): |
982 presubmit.os.path.exists('foo.cc').AndReturn(False) | 988 presubmit.os.path.exists('foo.cc').AndReturn(False) |
983 presubmit.gclient_scm.CaptureSVNInfo('foo.cc').AndReturn({}) | 989 presubmit.scm.SVN.CaptureInfo('foo.cc').AndReturn({}) |
984 self.mox.ReplayAll() | 990 self.mox.ReplayAll() |
985 affected_file = presubmit.SvnAffectedFile('foo.cc', 'A') | 991 affected_file = presubmit.SvnAffectedFile('foo.cc', 'A') |
986 # Verify cache coherency. | 992 # Verify cache coherency. |
987 self.failIf(affected_file.IsDirectory()) | 993 self.failIf(affected_file.IsDirectory()) |
988 self.failIf(affected_file.IsDirectory()) | 994 self.failIf(affected_file.IsDirectory()) |
989 | 995 |
990 def testIsDirectory(self): | 996 def testIsDirectory(self): |
991 presubmit.os.path.exists('foo.cc').AndReturn(True) | 997 presubmit.os.path.exists('foo.cc').AndReturn(True) |
992 presubmit.os.path.isdir('foo.cc').AndReturn(True) | 998 presubmit.os.path.isdir('foo.cc').AndReturn(True) |
993 self.mox.ReplayAll() | 999 self.mox.ReplayAll() |
994 affected_file = presubmit.SvnAffectedFile('foo.cc', 'A') | 1000 affected_file = presubmit.SvnAffectedFile('foo.cc', 'A') |
995 # Verify cache coherency. | 1001 # Verify cache coherency. |
996 self.failUnless(affected_file.IsDirectory()) | 1002 self.failUnless(affected_file.IsDirectory()) |
997 self.failUnless(affected_file.IsDirectory()) | 1003 self.failUnless(affected_file.IsDirectory()) |
998 | 1004 |
999 def testIsTextFile(self): | 1005 def testIsTextFile(self): |
1000 list = [presubmit.SvnAffectedFile('foo/blat.txt', 'M'), | 1006 list = [presubmit.SvnAffectedFile('foo/blat.txt', 'M'), |
1001 presubmit.SvnAffectedFile('foo/binary.blob', 'M'), | 1007 presubmit.SvnAffectedFile('foo/binary.blob', 'M'), |
1002 presubmit.SvnAffectedFile('blat/flop.txt', 'D')] | 1008 presubmit.SvnAffectedFile('blat/flop.txt', 'D')] |
1003 blat = presubmit.os.path.join('foo', 'blat.txt') | 1009 blat = presubmit.os.path.join('foo', 'blat.txt') |
1004 blob = presubmit.os.path.join('foo', 'binary.blob') | 1010 blob = presubmit.os.path.join('foo', 'binary.blob') |
1005 presubmit.os.path.exists(blat).AndReturn(True) | 1011 presubmit.os.path.exists(blat).AndReturn(True) |
1006 presubmit.os.path.isdir(blat).AndReturn(False) | 1012 presubmit.os.path.isdir(blat).AndReturn(False) |
1007 presubmit.os.path.exists(blob).AndReturn(True) | 1013 presubmit.os.path.exists(blob).AndReturn(True) |
1008 presubmit.os.path.isdir(blob).AndReturn(False) | 1014 presubmit.os.path.isdir(blob).AndReturn(False) |
1009 presubmit.gcl.GetSVNFileProperty(blat, 'svn:mime-type').AndReturn(None) | 1015 presubmit.scm.SVN.GetFileProperty(blat, 'svn:mime-type').AndReturn(None) |
1010 presubmit.gcl.GetSVNFileProperty(blob, 'svn:mime-type' | 1016 presubmit.scm.SVN.GetFileProperty(blob, 'svn:mime-type' |
1011 ).AndReturn('application/octet-stream') | 1017 ).AndReturn('application/octet-stream') |
1012 self.mox.ReplayAll() | 1018 self.mox.ReplayAll() |
1013 | 1019 |
1014 output = filter(lambda x: x.IsTextFile(), list) | 1020 output = filter(lambda x: x.IsTextFile(), list) |
1015 self.failUnless(len(output) == 1) | 1021 self.failUnless(len(output) == 1) |
1016 self.failUnless(list[0] == output[0]) | 1022 self.failUnless(list[0] == output[0]) |
1017 | 1023 |
1018 | 1024 |
1019 class GclChangeUnittest(PresubmitTestsBase): | 1025 class GclChangeUnittest(PresubmitTestsBase): |
1020 def testMembersChanged(self): | 1026 def testMembersChanged(self): |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1144 change1 = presubmit.SvnChange('mychange', '', self.fake_root_dir, [], 0, 0) | 1150 change1 = presubmit.SvnChange('mychange', '', self.fake_root_dir, [], 0, 0) |
1145 input_api1 = self.MockInputApi(change1, committing) | 1151 input_api1 = self.MockInputApi(change1, committing) |
1146 files1 = [ | 1152 files1 = [ |
1147 presubmit.SvnAffectedFile('foo/bar.cc', 'A'), | 1153 presubmit.SvnAffectedFile('foo/bar.cc', 'A'), |
1148 presubmit.SvnAffectedFile('foo.cc', 'M'), | 1154 presubmit.SvnAffectedFile('foo.cc', 'M'), |
1149 ] | 1155 ] |
1150 if use_source_file: | 1156 if use_source_file: |
1151 input_api1.AffectedSourceFiles(None).AndReturn(files1) | 1157 input_api1.AffectedSourceFiles(None).AndReturn(files1) |
1152 else: | 1158 else: |
1153 input_api1.AffectedFiles(include_deleted=False).AndReturn(files1) | 1159 input_api1.AffectedFiles(include_deleted=False).AndReturn(files1) |
1154 presubmit.gcl.GetSVNFileProperty(presubmit.normpath('foo/bar.cc'), | 1160 presubmit.scm.SVN.GetFileProperty(presubmit.normpath('foo/bar.cc'), |
1155 property).AndReturn(value1) | 1161 property).AndReturn(value1) |
1156 presubmit.gcl.GetSVNFileProperty(presubmit.normpath('foo.cc'), | 1162 presubmit.scm.SVN.GetFileProperty(presubmit.normpath('foo.cc'), |
1157 property).AndReturn(value1) | 1163 property).AndReturn(value1) |
1158 change2 = presubmit.SvnChange('mychange', '', self.fake_root_dir, [], 0, 0) | 1164 change2 = presubmit.SvnChange('mychange', '', self.fake_root_dir, [], 0, 0) |
1159 input_api2 = self.MockInputApi(change2, committing) | 1165 input_api2 = self.MockInputApi(change2, committing) |
1160 files2 = [ | 1166 files2 = [ |
1161 presubmit.SvnAffectedFile('foo/bar.cc', 'A'), | 1167 presubmit.SvnAffectedFile('foo/bar.cc', 'A'), |
1162 presubmit.SvnAffectedFile('foo.cc', 'M'), | 1168 presubmit.SvnAffectedFile('foo.cc', 'M'), |
1163 ] | 1169 ] |
1164 if use_source_file: | 1170 if use_source_file: |
1165 input_api2.AffectedSourceFiles(None).AndReturn(files2) | 1171 input_api2.AffectedSourceFiles(None).AndReturn(files2) |
1166 else: | 1172 else: |
1167 input_api2.AffectedFiles(include_deleted=False).AndReturn(files2) | 1173 input_api2.AffectedFiles(include_deleted=False).AndReturn(files2) |
1168 | 1174 |
1169 presubmit.gcl.GetSVNFileProperty(presubmit.normpath('foo/bar.cc'), | 1175 presubmit.scm.SVN.GetFileProperty(presubmit.normpath('foo/bar.cc'), |
1170 property).AndReturn(value2) | 1176 property).AndReturn(value2) |
1171 presubmit.gcl.GetSVNFileProperty(presubmit.normpath('foo.cc'), | 1177 presubmit.scm.SVN.GetFileProperty(presubmit.normpath('foo.cc'), |
1172 property).AndReturn(value2) | 1178 property).AndReturn(value2) |
1173 self.mox.ReplayAll() | 1179 self.mox.ReplayAll() |
1174 | 1180 |
1175 results1 = check(input_api1, presubmit.OutputApi, None) | 1181 results1 = check(input_api1, presubmit.OutputApi, None) |
1176 self.assertEquals(results1, []) | 1182 self.assertEquals(results1, []) |
1177 results2 = check(input_api2, presubmit.OutputApi, None) | 1183 results2 = check(input_api2, presubmit.OutputApi, None) |
1178 self.assertEquals(len(results2), 1) | 1184 self.assertEquals(len(results2), 1) |
1179 self.assertEquals(results2[0].__class__, error_type) | 1185 self.assertEquals(results2[0].__class__, error_type) |
1180 | 1186 |
1181 def testCannedCheckChangeHasBugField(self): | 1187 def testCannedCheckChangeHasBugField(self): |
1182 self.DescriptionTest(presubmit_canned_checks.CheckChangeHasBugField, | 1188 self.DescriptionTest(presubmit_canned_checks.CheckChangeHasBugField, |
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1454 self.mox.ReplayAll() | 1460 self.mox.ReplayAll() |
1455 | 1461 |
1456 results = presubmit_canned_checks.RunPythonUnitTests( | 1462 results = presubmit_canned_checks.RunPythonUnitTests( |
1457 input_api, presubmit.OutputApi, ['test_module']) | 1463 input_api, presubmit.OutputApi, ['test_module']) |
1458 self.assertEquals(len(results), 0) | 1464 self.assertEquals(len(results), 0) |
1459 | 1465 |
1460 | 1466 |
1461 if __name__ == '__main__': | 1467 if __name__ == '__main__': |
1462 import unittest | 1468 import unittest |
1463 unittest.main() | 1469 unittest.main() |
OLD | NEW |