Do not warn about uncommited files if sha is set explicitly.

Bug: 31603810
Test: Added test_GetModifiedFilesUncommittedExplicitCommit, all tests pass
Change-Id: I953f22df5be8030fc8a7145531026220c97a8dd8
This commit is contained in:
Aurimas Liutikas
2016-09-20 09:46:38 -07:00
parent 0b77686215
commit fc518c714c
2 changed files with 13 additions and 4 deletions

View File

@@ -73,11 +73,12 @@ def RunCheckstyleOnACommit(commit, config_xml=CHECKSTYLE_STYLE):
Returns:
A tuple of errors and warnings.
"""
if not commit:
explicit_commit = commit is not None
if not explicit_commit:
_WarnIfUntrackedFiles()
commit = git.last_commit()
print 'Running Checkstyle on %s commit' % commit
commit_modified_files = _GetModifiedFiles(commit)
commit_modified_files = _GetModifiedFiles(commit, explicit_commit)
if not commit_modified_files.keys():
print 'No Java files to check'
return [], []
@@ -216,10 +217,10 @@ def _ShouldSkip(commit_check, modified_lines, line, rule, test_class=False):
return line not in modified_lines and rule not in FORCED_RULES
def _GetModifiedFiles(commit, out=sys.stdout):
def _GetModifiedFiles(commit, explicit_commit=False, out=sys.stdout):
root = git.repository_root()
pending_files = git.modified_files(root, True)
if pending_files:
if pending_files and not explicit_commit:
out.write(ERROR_UNCOMMITTED)
sys.exit(1)

View File

@@ -122,6 +122,14 @@ class TestCheckstyle(unittest.TestCase):
checkstyle._GetModifiedFiles(mock_last_commit(), out=out)
self.assertEqual(out.getvalue(), checkstyle.ERROR_UNCOMMITTED)
def test_GetModifiedFilesUncommittedExplicitCommit(self):
checkstyle.git.modified_files = mock_modified_files_uncommitted
out = StringIO()
files = checkstyle._GetModifiedFiles(mock_last_commit(), True, out=out)
output = out.getvalue()
self.assertEqual(output, '')
self.assertEqual(files, {TEST_FILE1: FILE_MODIFIED, TEST_FILE2: FILE_ADDED})
def test_GetModifiedFilesNonJava(self):
checkstyle.git.modified_files = mock_modified_files_non_java
out = StringIO()