#!/usr/bin/env python """Tests for git_footers.""" import os import sys import unittest sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import git_footers class GitFootersTest(unittest.TestCase): _message = """ This is my commit message. There are many like it, but this one is mine. My commit message is my best friend. It is my life. I must master it. """ _position = 'refs/heads/master@{#292272}' _position_footer = 'Cr-Commit-Position: %s\n' % _position _git_svn_id = ('svn://svn.chromium.org/chrome/trunk/src@290386' ' 0039d316-1c4b-4281-b951-d872f2087c98') _git_svn_id_footer = 'git-svn-id: %s\n' % _git_svn_id _git_svn_id_branch = ( 'svn://svn.chromium.org/chrome/branches/blabble/src@177288') _git_svn_id_footer_branch = 'git-svn-id: %s\n' % _git_svn_id_branch def testFootersBasic(self): self.assertEqual( git_footers.parse_footers(self._message), {}) self.assertEqual( git_footers.parse_footers(self._message + self._position_footer), { 'Cr-Commit-Position': [ self._position ] }) self.assertEqual( git_footers.parse_footers(self._message + self._git_svn_id_footer), { 'Git-Svn-Id': [ self._git_svn_id ] }) self.assertEqual( git_footers.parse_footers(self._message + self._position_footer + self._position_footer), { 'Cr-Commit-Position': [ self._position, self._position ] }) def testTrunkHeuristic(self): footers = git_footers.parse_footers(self._message + self._git_svn_id_footer) self.assertEqual( footers, { 'Git-Svn-Id': [ self._git_svn_id ] }) self.assertEqual( git_footers.get_position(footers), ('refs/heads/master', '290386')) def testBranchHeuristic(self): footers = git_footers.parse_footers(self._message + self._git_svn_id_footer_branch) self.assertEqual( footers, { 'Git-Svn-Id': [ self._git_svn_id_branch ] }) self.assertEqual( git_footers.get_position(footers), ('refs/branch-heads/blabble', None)) if __name__ == '__main__': unittest.main()