Exemple #1
0
    def testMisleadingFooters(self):
        COMMIT = textwrap.dedent("""\
    tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4
    author Bob Boberton <*****@*****.**> 1399330903 -0700
    committer Jane January <*****@*****.**> 1399330903 -0700

    Cool commit message
    with: misleading footers
    """)
        d = data.CommitData.from_raw(COMMIT)
        self.assertDictContainsSubset(
            {
                'tree':
                'b966f77e58b8a3cf7c02dd0271a4d636c0857af4',
                'author':
                data.CommitUser('Bob Boberton', '*****@*****.**',
                                data.CommitTimestamp(1399330903, '-', 7, 0)),
                'committer':
                data.CommitUser('Jane January', '*****@*****.**',
                                data.CommitTimestamp(1399330903, '-', 7, 0)),
            }, d.to_dict())
        self.assertSequenceEqual(
            d.message_lines,
            ['Cool commit message', 'with: misleading footers'])
        self.assertSequenceEqual(d.footer_lines, [])
        self.assertEqual(d.footers, {})
Exemple #2
0
 def testToDict(self):
     USER = '******'
     u = data.CommitUser.from_raw(USER)
     self.assertEqual(
         u.to_dict(), {
             'user': '******',
             'email': '*****@*****.**',
             'timestamp': data.CommitTimestamp(1399330903, '-', 7, 0)
         })
Exemple #3
0
    def testFooters(self):
        COMMIT = textwrap.dedent("""\
    tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4
    author Bob Boberton <*****@*****.**> 1399330903 -0700
    committer Jane January <*****@*****.**> 1399330903 -0700

    Cool commit message
    with: misleading footers

    Xenophobe: False
    Cool-Footer: 100
    Double-Awesome: 100
    Cool-Footer: Redux
    """)
        d = data.CommitData.from_raw(COMMIT)
        self.assertEqual(d, d)
        self.assertNotEqual(d, {})
        self.assertDictContainsSubset(
            {
                'tree':
                'b966f77e58b8a3cf7c02dd0271a4d636c0857af4',
                'author':
                data.CommitUser('Bob Boberton', '*****@*****.**',
                                data.CommitTimestamp(1399330903, '-', 7, 0)),
                'committer':
                data.CommitUser('Jane January', '*****@*****.**',
                                data.CommitTimestamp(1399330903, '-', 7, 0))
            }, d.to_dict())
        self.assertSequenceEqual(
            d.message_lines,
            ['Cool commit message', 'with: misleading footers'])
        self.assertSequenceEqual(d.footer_lines, [('Xenophobe', 'False'),
                                                  ('Cool-Footer', '100'),
                                                  ('Double-Awesome', '100'),
                                                  ('Cool-Footer', 'Redux')])
        self.assertEqual(
            d.footers, {
                'Cool-Footer': ('100', 'Redux'),
                'Double-Awesome': ('100', ),
                'Xenophobe': ('False', ),
            })
        self.assertSequenceEqual(
            ['Xenophobe', 'Cool-Footer', 'Double-Awesome'], d.footers.keys())
        self.assertEqual(str(d), COMMIT)
Exemple #4
0
    def testBasic(self):
        COMMIT = textwrap.dedent("""\
    tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4
    parent 1b346cb5145e1fe4c074611e335d8ac96e18c686
    parent ab8d80f57839fb03674c0fc69ff5ccf2145fa6e2
    author Bob Boberton <*****@*****.**> 1399330903 -0700
    committer Jane January <*****@*****.**> 1399330903 -0700

    Cool commit message
    """)
        self.maxDiff = 10000
        d = data.CommitData.from_raw(COMMIT)
        self.assertEqual(
            d.to_dict(), {
                'tree':
                'b966f77e58b8a3cf7c02dd0271a4d636c0857af4',
                'parents': ('1b346cb5145e1fe4c074611e335d8ac96e18c686',
                            'ab8d80f57839fb03674c0fc69ff5ccf2145fa6e2'),
                'author':
                data.CommitUser('Bob Boberton', '*****@*****.**',
                                data.CommitTimestamp(1399330903, '-', 7, 0)),
                'committer':
                data.CommitUser('Jane January', '*****@*****.**',
                                data.CommitTimestamp(1399330903, '-', 7, 0)),
                'message_lines': ('Cool commit message', ),
                'footer_lines': (),
                'other_header_lines': (),
                'no_trailing_nl':
                False,
            })
        self.assertEqual(
            repr(d), "CommitData('b966f77e58b8a3cf7c02dd0271a4d636c0857af4', "
            "('1b346cb5145e1fe4c074611e335d8ac96e18c686', "
            "'ab8d80f57839fb03674c0fc69ff5ccf2145fa6e2'), "
            "CommitUser('Bob Boberton', '*****@*****.**', "
            "CommitTimestamp(1399330903, '-', 7, 0)), "
            "CommitUser('Jane January', '*****@*****.**', "
            "CommitTimestamp(1399330903, '-', 7, 0)), (), "
            "('Cool commit message',), (), False)")
        self.assertEqual(str(d), COMMIT)
Exemple #5
0
    def testBasic(self):
        USER = '******'
        u = data.CommitUser.from_raw(USER)
        self.assertEqual(u.email, '*****@*****.**')
        self.assertEqual(u.user, 'Bob Boberton')
        self.assertEqual(u.timestamp,
                         data.CommitTimestamp(1399330903, '-', 7, 0))
        self.assertEqual(str(u), USER)
        self.assertEqual(repr(u),
                         ("CommitUser('Bob Boberton', '*****@*****.**', "
                          "CommitTimestamp(1399330903, '-', 7, 0))"))

        USER = '******'
        u = data.CommitUser.from_raw(USER)
        self.assertEqual(u.email, ' [email protected]')
        self.assertEqual(u.user, 'Bob Boberton ')
        self.assertEqual(str(u), USER)
Exemple #6
0
    def _synth_commit(self, parent, message, tree=None, footers=None):
        """Internal helper for make_commit and make_full_tree_commit."""
        tree = GitEntry.from_spec(tree or {})
        assert isinstance(tree, GitTree)
        tree_hash = tree.intern(self)

        parents = [parent.hsh] if parent is not git2.INVALID else []

        timestamp = data.CommitTimestamp(self._clock.time(), '+', 8, 0)
        user = data.CommitUser('Test User', '*****@*****.**', timestamp)

        return self.get_commit(
            self.intern(
                data.CommitData(tree_hash, parents, user, user, (),
                                message.splitlines(),
                                data.CommitData.merge_lines([], footers or {}),
                                False), 'commit'))