Add support for running Checkstyle on a given SHA-1.

Usage e.g.: ./checkstyle.py -s 3aca02ca91816a86febb5ed6e380ec2122adea47

Additionally this CL adds a pre-push script that can be used a git
hook to run Checkstyle on 'repo upload'

Bug: 25852971
Change-Id: Ia00d48df80b2b024de0899d9590868016c5b7bf0
This commit is contained in:
Aurimas Liutikas
2016-01-22 13:29:56 -08:00
parent 23e2d4b3eb
commit 2d59cfb992
4 changed files with 225 additions and 67 deletions

View File

@@ -89,37 +89,39 @@ class TestCheckstyle(unittest.TestCase):
def test_GetModifiedFiles(self):
checkstyle.git.modified_files = mock_modified_files_good
out = StringIO()
sha, files = checkstyle._GetModifiedFiles(out)
files = checkstyle._GetModifiedFiles(mock_last_commit(), out=out)
output = out.getvalue()
self.assertEqual(output, '')
self.assertEqual(sha, TEST_SHA)
self.assertEqual(files, {TEST_FILE1: FILE_MODIFIED, TEST_FILE2: FILE_ADDED})
def test_GetModifiedFilesUntracked(self):
checkstyle.git.modified_files = mock_modified_files_untracked
out = StringIO()
sha, files = checkstyle._GetModifiedFiles(out)
output = out.getvalue()
self.assertEqual(output, checkstyle.ERROR_UNTRACKED + TEST_FILE1 + '\n\n')
self.assertEqual(sha, TEST_SHA)
self.assertEqual(files, {TEST_FILE2: FILE_ADDED})
def test_GetModifiedFilesUncommitted(self):
checkstyle.git.modified_files = mock_modified_files_uncommitted
with self.assertRaises(SystemExit):
out = StringIO()
checkstyle._GetModifiedFiles(out)
checkstyle._GetModifiedFiles(mock_last_commit(), out=out)
self.assertEqual(out.getvalue(), checkstyle.ERROR_UNCOMMITTED)
def test_GetModifiedFilesNonJava(self):
checkstyle.git.modified_files = mock_modified_files_non_java
out = StringIO()
sha, files = checkstyle._GetModifiedFiles(out)
files = checkstyle._GetModifiedFiles(mock_last_commit(), out=out)
output = out.getvalue()
self.assertEqual(output, '')
self.assertEqual(sha, TEST_SHA)
self.assertEqual(files, {TEST_FILE1: FILE_MODIFIED})
def test_WarnIfUntrackedFiles(self):
checkstyle.git.modified_files = mock_modified_files_untracked
out = StringIO()
checkstyle._WarnIfUntrackedFiles(out=out)
output = out.getvalue()
self.assertEqual(output, checkstyle.ERROR_UNTRACKED + TEST_FILE1 + '\n\n')
def test_WarnIfUntrackedFilesNoUntracked(self):
checkstyle.git.modified_files = mock_modified_files_good
out = StringIO()
checkstyle._WarnIfUntrackedFiles(out=out)
output = out.getvalue()
self.assertEqual(output, '')
if __name__ == '__main__':
unittest.main()