def testGetChangeLog(self):
    output = textwrap.dedent(
        """
        commit revision
        tree tree_revision
        parents parent_revision

        author Test
        author-mail [email protected]
        author-time 2016-07-13 20:37:06

        committer Test
        committer-mail [email protected]
        committer-time 2016-07-13 20:37:06

        --Message start--
        blabla
        --Message end--

        :100644 100644 25f95f c766f1 M      src/a/b.py
        """
    )

    expected_changelog = change_log.ChangeLog(
        change_log.Contributor('Test', '*****@*****.**',
                               datetime(2016, 7, 13, 20, 37, 6)),
        change_log.Contributor('Test', '*****@*****.**',
                               datetime(2016, 7, 13, 20, 37, 6)),
        'revision', None, 'blabla',
        [change_log.FileChangeInfo('modify', 'src/a/b.py', 'src/a/b.py')],
        'https://repo/path/+/revision', None, None)
    self.mock(script_util, 'GetCommandOutput', lambda *_: output)
    # TODO: compare the objects directly, rather than via ToDict
    self.assertDictEqual(self.local_repo.GetChangeLog('revision').ToDict(),
                         expected_changelog.ToDict())
示例#2
0
  def testGitChangeLogParser(self):
    output = textwrap.dedent("""
        commit revision
        tree tree_revision
        parents parent_revision

        author Test
        author-mail [email protected]
        author-time 2016-07-13 20:37:06

        committer Test
        committer-mail [email protected]
        committer-time 2016-07-13 20:37:06

        --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
        :100644 100644 25aa5f c777f1 X      src/a/c.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(
        change_log.Contributor('Test', '*****@*****.**',
                               datetime(2016, 7, 13, 20, 37, 6)),
        change_log.Contributor('Test', '*****@*****.**',
                               datetime(2016, 7, 13, 20, 37,
                                        6)), 'revision', 425880, message,
        [change_log.FileChangeInfo('modify', 'src/a/b.py', 'src/a/b.py')],
        'https://repo/+/revision', 'https://codereview.chromium.org/2391763002',
        'c9cc182781484f9010f062859cda048afefefefe')

    changelog = local_git_parsers.GitChangeLogParser()(output, 'https://repo',
                                                       'refs/heads/master')
    self.assertDictEqual(expected_changelog.ToDict(), changelog.ToDict())
  def testGetChangeLogs(self):
    output = textwrap.dedent(
        """
        **Changelog start**
        commit rev1
        tree 27b0421273ed4aea25e497c6d26d9c7db6481852
        parents rev22c9e

        author author1
        author-mail [email protected]
        author-time 2016-06-02 10:55:38

        committer Commit bot
        committer-mail [email protected]
        committer-time 2016-06-02 10:57:13

        --Message start--
        Message 1
        --Message end--

        :100644 100644 28e117 f12d3 D      a/b.py


        **Changelog start**
        commit rev2
        tree d22d3786e135b83183cfeba5f3d8913959f56299
        parents ac7ee4ce7b8d39b22a710c58d110e0039c11cf9a

        author author2
        author-mail [email protected]
        author-time 2016-06-02 10:53:03

        committer Commit bot
        committer-mail [email protected]
        committer-time 2016-06-02 10:54:14

        --Message start--
        Message 2
        --Message end--

        :100644 100644 7280f df186 A      b/c.py
        """
    )

    expected_changelogs = [
        change_log.ChangeLog(
            change_log.Contributor('author1', '*****@*****.**',
                                   datetime(2016, 6, 2, 10, 55, 38)),
            change_log.Contributor('Commit bot', '*****@*****.**',
                                   datetime(2016, 6, 2, 10, 57, 13)),
            'rev1', None, 'Message 1',
            [change_log.FileChangeInfo('delete', 'a/b.py', None)],
            'https://repo/path/+/rev1', None, None),
        change_log.ChangeLog(
            change_log.Contributor('author2', '*****@*****.**',
                                   datetime(2016, 6, 2, 10, 53, 3)),
            change_log.Contributor('Commit bot', '*****@*****.**',
                                   datetime(2016, 6, 2, 10, 54, 14)),
            'rev2', None, 'Message 2',
            [change_log.FileChangeInfo('add', None, 'b/c.py')],
            'https://repo/path/+/rev2', None, None),
    ]

    self.mock(script_util, 'GetCommandOutput', lambda *_: output)
    changelogs = self.local_repo.GetChangeLogs('rev0', 'rev2')
    for changelog, expected_changelog in zip(changelogs, expected_changelogs):
      # TODO(katesonia): Add __eq__ in changelog to compare.
      self.assertEqual(changelog.ToDict(), expected_changelog.ToDict())
示例#4
0
  def testGitChangeLogsParser(self):
    output = textwrap.dedent("""
        **Changelog start**
        commit rev1
        tree 27b0421273ed4aea25e497c6d26d9c7db6481852
        parents rev22c9e

        author author1
        author-mail [email protected]
        author-time 2016-06-02 10:55:38

        committer Commit bot
        committer-mail [email protected]
        committer-time 2016-06-02 10:57:13

        --Message start--
        Message 1
        --Message end--

        :100644 100644 28e117 f12d3 D      a/b.py


        **Changelog start**
        commit rev2
        tree d22d3786e135b83183cfeba5f3d8913959f56299
        parents ac7ee4ce7b8d39b22a710c58d110e0039c11cf9a

        author author2
        author-mail [email protected]
        author-time 2016-06-02 10:53:03

        committer Commit bot
        committer-mail [email protected]
        committer-time 2016-06-02 10:54:14

        --Message start--
        Message 2
        --Message end--

        :100644 100644 7280f df186 A      b/c.py

        **Changelog start**
        commit rev3
        tree d22d3786e135b83183cfeba5f3d8913959f56299
        parents ac7ee4ce7b8d39b22a710c58d110e0039c11cf9a

        author author3
        author-mail [email protected]
        author-time 2016-06-02 10:53:03

        committer Commit bot
        committer-mail [email protected]
        committer-time 2016-06-02 10:54:14

        --Message start--
        Message 3
        --Message end--

        :100644 100644 3f2e 20a5 R078 b/c.py b/cc.py
        """)

    expected_changelogs = [
        change_log.ChangeLog(
            change_log.Contributor('author1', '*****@*****.**',
                                   datetime(2016, 6, 2, 10, 55, 38)),
            change_log.Contributor('Commit bot', '*****@*****.**',
                                   datetime(2016, 6, 2, 10, 57,
                                            13)), 'rev1', None, 'Message 1',
            [change_log.FileChangeInfo('delete', 'a/b.py', None)],
            'http://repo/+/rev1', None, None),
        change_log.ChangeLog(
            change_log.Contributor('author2', '*****@*****.**',
                                   datetime(2016, 6, 2, 10, 53, 3)),
            change_log.Contributor('Commit bot', '*****@*****.**',
                                   datetime(2016, 6, 2, 10, 54,
                                            14)), 'rev2', None, 'Message 2',
            [change_log.FileChangeInfo('add', None, 'b/c.py')],
            'http://repo/+/rev2', None, None),
        change_log.ChangeLog(
            change_log.Contributor('author3', '*****@*****.**',
                                   datetime(2016, 6, 2, 10, 53, 3)),
            change_log.Contributor('Commit bot', '*****@*****.**',
                                   datetime(2016, 6, 2, 10, 54,
                                            14)), 'rev3', None, 'Message 3',
            [change_log.FileChangeInfo('rename', 'b/c.py', 'b/cc.py')],
            'http://repo/+/rev3', None, None),
    ]

    changelogs = local_git_parsers.GitChangeLogsParser()(output, 'http://repo',
                                                         'ref')
    for changelog, expected_changelog in zip(changelogs, expected_changelogs):
      self.assertEqual(changelog.ToDict(), expected_changelog.ToDict())