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, {})
def testToDict(self): USER = '******' u = data.CommitUser.from_raw(USER) self.assertEqual( u.to_dict(), { 'user': '******', 'email': '*****@*****.**', 'timestamp': data.CommitTimestamp(1399330903, '-', 7, 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)
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)
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)
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'))