diff --git a/presubmit_support.py b/presubmit_support.py index 85b3a3f70..0efaca1c8 100755 --- a/presubmit_support.py +++ b/presubmit_support.py @@ -690,6 +690,9 @@ class Change(object): self._description_without_tags = ( '\n'.join(description_without_tags).rstrip()) + assert all( + (isinstance(f, (list, tuple)) and len(f) == 2) for f in files), files + self._affected_files = [ self._AFFECTED_FILES(info[1], info[0].strip(), self._local_root) for info in files diff --git a/tests/presubmit_unittest.py b/tests/presubmit_unittest.py index 055e8b6fc..0c066d17d 100755 --- a/tests/presubmit_unittest.py +++ b/tests/presubmit_unittest.py @@ -351,6 +351,20 @@ class PresubmitUnittest(PresubmitTestsBase): self.assertEquals(rhs_lines[13][1], 49) self.assertEquals(rhs_lines[13][2], 'this is line number 48.1') + def testInvalidChange(self): + try: + presubmit.SvnChange( + 'mychange', + 'description', + self.fake_root_dir, + ['foo/blat.cc', 'bar'], + 0, + 0, + None) + self.fail() + except AssertionError: + pass + def testExecPresubmitScript(self): description_lines = ('Hello there', 'this is a change', @@ -770,7 +784,7 @@ def CheckChangeOnCommit(input_api, output_api): self.mox.StubOutWithMock(presubmit, 'ParseFiles') presubmit.scm.determine_scm(self.fake_root_dir).AndReturn(None) presubmit.ParseFiles(['random_file.txt'], None - ).AndReturn(['random_file.txt']) + ).AndReturn([('M', 'random_file.txt')]) output = self.mox.CreateMock(presubmit.PresubmitOutput) output.should_continue().AndReturn(False)