def testFootersBasic(self): self.assertEqual( git_footers.split_footers('Not-A: footer'), (['Not-A: footer'], [], [])) self.assertEqual( git_footers.split_footers('Header\n\nActual: footer'), (['Header', ''], ['Actual: footer'], [('Actual', 'footer')])) self.assertEqual( git_footers.split_footers('\nActual: footer'), ([''], ['Actual: footer'], [('Actual', 'footer')])) self.assertEqual( git_footers.split_footers('H\n\nBug:\nAlso: footer'), (['H', ''], ['Bug:', 'Also: footer'], [('Bug', ''), ('Also', 'footer')])) self.assertEqual( git_footers.split_footers('H\n\nBug: '), (['H', ''], ['Bug: '], [('Bug', '')])) 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._position_footer + self._position_footer), { 'Cr-Commit-Position': [ self._position, self._position ] }) self.assertEqual( git_footers.parse_footers(self._message + 'Bug:\n' + self._position_footer), { 'Bug': [''], 'Cr-Commit-Position': [ self._position ] })
def testFootersBasic(self): self.assertEqual(git_footers.split_footers('Not-A: footer'), (['Not-A: footer'], [], [])) self.assertEqual( git_footers.split_footers('Header\n\nActual: footer'), (['Header', ''], ['Actual: footer'], [('Actual', 'footer')])) self.assertEqual(git_footers.split_footers('\nActual: footer'), ([''], ['Actual: footer'], [('Actual', 'footer')])) self.assertEqual( git_footers.split_footers('H\n\nBug:\nAlso: footer'), (['H', ''], ['Bug:', 'Also: footer'], [('Bug', ''), ('Also', 'footer')])) self.assertEqual(git_footers.split_footers('H\n\nBug: '), (['H', ''], ['Bug: '], [('Bug', '')])) 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._position_footer + self._position_footer), {'Cr-Commit-Position': [self._position, self._position]}) self.assertEqual( git_footers.parse_footers(self._message + 'Bug:\n' + self._position_footer), { 'Bug': [''], 'Cr-Commit-Position': [self._position] })
def testSkippingBadFooterLines(self): message = ('Title.\n' '\n' 'Last: paragraph starts\n' 'It-may: contain\n' 'bad lines, which should be skipped\n' 'For: example\n' '(cherry picked from)\n' 'And-only-valid: footers taken') self.assertEqual(git_footers.split_footers(message), (['Title.', ''], ['Last: paragraph starts', 'It-may: contain', 'bad lines, which should be skipped', 'For: example', '(cherry picked from)', 'And-only-valid: footers taken'], [('Last', 'paragraph starts'), ('It-may', 'contain'), ('For', 'example'), ('And-only-valid', 'footers taken')])) self.assertEqual(git_footers.parse_footers(message), {'Last': ['paragraph starts'], 'It-May': ['contain'], 'For': ['example'], 'And-Only-Valid': ['footers taken']})
def testFootersBasic(self): self.assertEqual(git_footers.split_footers('Not-A: footer'), (['Not-A: footer'], [], [])) self.assertEqual( git_footers.split_footers('Header\n\nActual: footer'), (['Header', ''], ['Actual: footer'], [('Actual', 'footer')])) self.assertEqual(git_footers.split_footers('\nActual: footer'), ([''], ['Actual: footer'], [('Actual', 'footer')])) 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 AddUploadedByGitClSplitToDescription(description): """Adds a 'This CL was uploaded by git cl split.' line to |description|. The line is added before footers, or at the end of |description| if it has no footers. """ split_footers = git_footers.split_footers(description) lines = split_footers[0] if not lines[-1] or lines[-1].isspace(): lines = lines + [''] lines = lines + ['This CL was uploaded by git cl split.'] if split_footers[1]: lines += [''] + split_footers[1] return '\n'.join(lines)
def testFootersBasic(self): self.assertEqual( git_footers.split_footers('Not-A: footer'), (['Not-A: footer'], [], [])) self.assertEqual( git_footers.split_footers('Header\n\nActual: footer'), (['Header', ''], ['Actual: footer'], [('Actual', 'footer')])) self.assertEqual( git_footers.split_footers('\nActual: footer'), ([''], ['Actual: footer'], [('Actual', 'footer')])) 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 testAvoidingURLs(self): message = ('Someone accidentally put a URL in the footers.\n' '\n' 'Followed: by\n' 'http://domain.tld\n' 'Some: footers') self.assertEqual( git_footers.split_footers(message), (['Someone accidentally put a URL in the footers.', ''], [ 'Followed: by', 'http://domain.tld', 'Some: footers' ], [('Followed', 'by'), ('Some', 'footers')])) self.assertEqual(git_footers.parse_footers(message), { 'Followed': ['by'], 'Some': ['footers'] })
def testSplittingLastParagraph(self): message = ('Title.\n' '\n' 'The final paragraph has some normal text first.\n' 'Followed: by\n' 'nonsense trailers and\n' 'Some: footers') self.assertEqual(git_footers.split_footers(message), ([ 'Title.', '', 'The final paragraph has some normal text first.', '' ], ['Followed: by', 'nonsense trailers and', 'Some: footers' ], [('Followed', 'by'), ('Some', 'footers')])) self.assertEqual(git_footers.parse_footers(message), { 'Followed': ['by'], 'Some': ['footers'] })
def testAvoidingURLs(self): message = ('Someone accidentally put a URL in the footers.\n' '\n' 'Followed: by\n' 'http://domain.tld\n' 'Some: footers') self.assertEqual(git_footers.split_footers(message), (['Someone accidentally put a URL in the footers.', ''], ['Followed: by', 'http://domain.tld', 'Some: footers'], [('Followed', 'by'), ('Some', 'footers')])) self.assertEqual(git_footers.parse_footers(message), {'Followed': ['by'], 'Some': ['footers']})
def testSplittingLastParagraph(self): message = ('Title.\n' '\n' 'The final paragraph has some normal text first.\n' 'Followed: by\n' 'nonsense trailers and\n' 'Some: footers') self.assertEqual(git_footers.split_footers(message), (['Title.', '', 'The final paragraph has some normal text first.', ''], ['Followed: by', 'nonsense trailers and', 'Some: footers'], [('Followed', 'by'), ('Some', 'footers')])) self.assertEqual(git_footers.parse_footers(message), {'Followed': ['by'], 'Some': ['footers']})