Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2970)

Unified Diff: appengine/findit/common/test/local_git_parsers_test.py

Issue 2435863003: [Findit] Add local git parsers. (Closed)
Patch Set: Fix nits. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: appengine/findit/common/test/local_git_parsers_test.py
diff --git a/appengine/findit/common/test/local_git_parsers_test.py b/appengine/findit/common/test/local_git_parsers_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..d72899534e07f4de5d921d2c22318968130b9339
--- /dev/null
+++ b/appengine/findit/common/test/local_git_parsers_test.py
@@ -0,0 +1,213 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+from datetime import datetime
+from datetime import timedelta
+import textwrap
+
+from testing_utils import testing
+
+from common import local_git_parsers
+from common import blame
+from common import change_log
+
+
+class LocalGitParsersTest(testing.AppengineTestCase):
+
+ def testGitBlameParser(self):
+ output = textwrap.dedent(
+ """
+ revision_hash 18 18 3
+ author test@google.com
+ author-mail <test@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
+ author-time 1363032816
+ author-tz +0300
+ committer test@google.com
+ committer-mail <test@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
+ committer-time 1363032816
+ committer-tz +0300
+ summary add (mac) test for ttcindex in SkFontStream
+ previous fe7533eebe777cc66c7f8fa7a03f00572755c5b4 src/core/SkFont.h
+ filename src/core/SkFont.h
+ * blabla line 1
+ revision_hash 19 19
+ * blabla line 2
+ revision_hash 20 20
+ * blabla line 3
+ """
+ )
+
+ expected_regions = [blame.Region(18, 3, 'revision_hash', 'test@google.com',
+ 'test@google.com',
+ datetime(2013, 03, 11, 17, 13, 36))]
+ expected_blames = [blame.Blame('revision_hash',
+ 'src/core/SkFont.h',
+ regions=expected_regions)]
+
+ blames = local_git_parsers.GitBlameParser()(output)
+ for blame_result, expected_blame in zip(blames, expected_blames):
+ self.assertTrue(blame_result.revision, expected_blame.revision)
+ self.assertTrue(blame_result.path, expected_blame.path)
+ for region, expected_region in zip(blame_result, expected_blame):
+ self.assertTrue(region.ToDict(), expected_region.ToDict())
+
+ def testGetFileChangeInfo(self):
+ self.assertIsNone(local_git_parsers.GetFileChangeInfo('change type',
+ None, None))
+
+ def testGitChangeLogParser(self):
+ output = textwrap.dedent(
+ """
+ commit revision
+ tree tree_revision
+ parents parent_revision
+
+ author Test
+ author-mail test@google.com
+ author-time 1468442226
+
+ committer Test
+ committer-mail test@google.com
+ committer-time 1468442226
+
+ --Message start--
+ Revert commit messages...
+ > Committed: https://c.com/+/c9cc182781484f9010f062859cda048afefefefe
+ Review-Url: https://codereview.chromium.org/2391763002
+ Cr-Commit-Position: refs/heads/master@{#425880}
+ --Message end--
+
+ :100644 100644 25f95f c766f1 M src/a/b.py
+ """
+ )
+
+ message = ('Revert commit messages...\n'
+ '> Committed: https://c.com/+/'
+ 'c9cc182781484f9010f062859cda048afefefefe\n'
+ 'Review-Url: https://codereview.chromium.org/2391763002\n'
+ 'Cr-Commit-Position: refs/heads/master@{#425880}')
+
+ expected_changelog = change_log.ChangeLog(
+ 'Test', 'test@google.com', datetime(2016, 7, 13, 20, 37, 6),
+ 'Test', 'test@google.com', datetime(2016, 7, 13, 20, 37, 6),
+ 'revision', 425880, message, [change_log.FileChangeInfo(
+ 'modify', 'src/a/b.py', 'src/a/b.py')],
+ code_review_url='https://codereview.chromium.org/2391763002',
+ reverted_revision='c9cc182781484f9010f062859cda048afefefefe')
+
+ changelog = local_git_parsers.GitChangeLogParser()(output)
+ self.assertTrue(expected_changelog.ToDict(), changelog.ToDict())
+
+ def testGitChangeLogsParser(self):
+ output = textwrap.dedent(
+ """
+ **Changelog start**
+ commit 9af040a364c15bdc2adeea794e173a2c529a
+ tree 27b0421273ed4aea25e497c6d26d9c7db6481852
+ parents c39b0cc8a516de1fa57d032dc0135a4eadfe2c9e
+
+ author author1
+ author-mail author1@chromium.org
+ author-time 1464864938
+
+ committer Commit bot
+ committer-mail commit-bot@chromium.org
+ committer-time 1464865033
+
+ --Message start--
+ Message 1
+ --Message end--
+
+ :100644 100644 28e117 f12d3 D a/b.py
+
+
+ **Changelog start**
+ commit c39b0cc8a516de1fa57d032dc0135a4eadfe
+ tree d22d3786e135b83183cfeba5f3d8913959f56299
+ parents ac7ee4ce7b8d39b22a710c58d110e0039c11cf9a
+
+ author author2
+ author-mail author2@chromium.org
+ author-time 1464864783
+
+ committer Commit bot
+ committer-mail commit-bot@chromium.org
+ committer-time 1464864854
+
+ --Message start--
+ Message 2
+ --Message end--
+
+ :100644 100644 7280f df186 A b/c.py
+
+ **Changelog start**
+ commit c39b0cc8a516de1fa57d032dc0135a4eadfed
+ tree d22d3786e135b83183cfeba5f3d8913959f56299
+ parents ac7ee4ce7b8d39b22a710c58d110e0039c11cf9a
+
+ author author3
+ author-mail author3@chromium.org
+ author-time 1464864783
+
+ committer Commit bot
+ committer-mail commit-bot@chromium.org
+ committer-time 1464864854
+
+ --Message start--
+ Message 3
+ --Message end--
+
+ :100644 100644 3f2e 20a5 R078 b/c.py b/cc.py
+ """
+ )
+
+ expected_changelogs = [
+ change_log.ChangeLog(author_name='author1',
+ author_email='author1@chromium.org',
+ author_time=datetime(2016, 6, 2, 10, 55, 38),
+ committer_name='Commit bot',
+ committer_email='commit-bot@chromium.org',
+ committer_time=datetime(2016, 6, 2, 10, 57, 13),
+ message='Message 1',
+ revision='9af040a364c15bdc2adeea794e173a2c529a',
+ touched_files=[change_log.FileChangeInfo(
+ 'delete', 'a/b.py', None)]),
+ change_log.ChangeLog(author_name='author2',
+ author_email='author2@chromium.org',
+ author_time=datetime(2016, 6, 2, 10, 53, 3),
+ committer_name='Commit bot',
+ committer_email='commit-bot@chromium.org',
+ committer_time=datetime(2016, 6, 2, 10, 54, 14),
+ message='Message 2',
+ revision='c39b0cc8a516de1fa57d032dc0135a4eadfe',
+ touched_files=[change_log.FileChangeInfo(
+ 'add', None, 'b/c.py')]),
+ change_log.ChangeLog(author_name='author3',
+ author_email='author3@chromium.org',
+ author_time=datetime(2016, 6, 2, 10, 53, 3),
+ committer_name='Commit bot',
+ committer_email='commit-bot@chromium.org',
+ committer_time=datetime(2016, 6, 2, 10, 54, 14),
+ message='Message 3',
+ revision='c39b0cc8a516de1fa57d032dc0135a4eadfed',
+ touched_files=[change_log.FileChangeInfo(
+ 'rename', 'b/c.py', 'b/cc.py')]),
+
+ ]
+
+ changelogs = local_git_parsers.GitChangeLogsParser()(output)
+ for changelog, expected_changelog in zip(changelogs, expected_changelogs):
+ self.assertEqual(changelog.ToDict(), expected_changelog.ToDict())
+
+ def testGitChangeLogsParserWithEmptyChangelog(self):
+ output = '**Changelog start**\nblablabla'
+ self.assertEqual(local_git_parsers.GitChangeLogsParser()(output), [])
+
+ def testGitDiffParser(self):
+ output = 'output'
+ self.assertEqual(output, local_git_parsers.GitDiffParser()(output))
+
+ def testGitSourceParser(self):
+ output = 'output'
+ self.assertEqual(output, local_git_parsers.GitSourceParser()(output))

Powered by Google App Engine
This is Rietveld 408576698