| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 | 2 |
| 3 """Tests for git_footers.""" | 3 """Tests for git_footers.""" |
| 4 | 4 |
| 5 import os | 5 import os |
| 6 import StringIO | 6 import StringIO |
| 7 import sys | 7 import sys |
| 8 import unittest | 8 import unittest |
| 9 | 9 |
| 10 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | 10 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 _git_svn_id = ('svn://svn.chromium.org/chrome/trunk/src@290386' | 28 _git_svn_id = ('svn://svn.chromium.org/chrome/trunk/src@290386' |
| 29 ' 0039d316-1c4b-4281-b951-d872f2087c98') | 29 ' 0039d316-1c4b-4281-b951-d872f2087c98') |
| 30 | 30 |
| 31 _git_svn_id_footer = 'git-svn-id: %s\n' % _git_svn_id | 31 _git_svn_id_footer = 'git-svn-id: %s\n' % _git_svn_id |
| 32 | 32 |
| 33 _git_svn_id_branch = ( | 33 _git_svn_id_branch = ( |
| 34 'svn://svn.chromium.org/chrome/branches/blabble/src@177288') | 34 'svn://svn.chromium.org/chrome/branches/blabble/src@177288') |
| 35 | 35 |
| 36 _git_svn_id_footer_branch = 'git-svn-id: %s\n' % _git_svn_id_branch | 36 _git_svn_id_footer_branch = 'git-svn-id: %s\n' % _git_svn_id_branch |
| 37 | 37 |
| 38 def testFootersBasic(self): |
| 39 self.assertEqual( |
| 40 git_footers.split_footers('Not-A: footer'), |
| 41 (['Not-A: footer'], [], [])) |
| 42 self.assertEqual( |
| 43 git_footers.split_footers('Header\n\nActual: footer'), |
| 44 (['Header', ''], ['Actual: footer'], [('Actual', 'footer')])) |
| 45 self.assertEqual( |
| 46 git_footers.split_footers('\nActual: footer'), |
| 47 ([''], ['Actual: footer'], [('Actual', 'footer')])) |
| 38 | 48 |
| 39 def testFootersBasic(self): | |
| 40 self.assertEqual( | 49 self.assertEqual( |
| 41 git_footers.parse_footers(self._message), {}) | 50 git_footers.parse_footers(self._message), {}) |
| 42 self.assertEqual( | 51 self.assertEqual( |
| 43 git_footers.parse_footers(self._message + self._position_footer), | 52 git_footers.parse_footers(self._message + self._position_footer), |
| 44 { 'Cr-Commit-Position': [ self._position ] }) | 53 { 'Cr-Commit-Position': [ self._position ] }) |
| 45 self.assertEqual( | 54 self.assertEqual( |
| 46 git_footers.parse_footers(self._message + self._git_svn_id_footer), | 55 git_footers.parse_footers(self._message + self._git_svn_id_footer), |
| 47 { 'Git-Svn-Id': [ self._git_svn_id ] }) | 56 { 'Git-Svn-Id': [ self._git_svn_id ] }) |
| 48 self.assertEqual( | 57 self.assertEqual( |
| 49 git_footers.parse_footers(self._message + self._position_footer | 58 git_footers.parse_footers(self._message + self._position_footer |
| (...skipping 25 matching lines...) Expand all Loading... |
| 75 'Change-Id: ignored', | 84 'Change-Id: ignored', |
| 76 '', # Above is ignored because of this empty line. | 85 '', # Above is ignored because of this empty line. |
| 77 'Change-Id: Ideadbeaf']) | 86 'Change-Id: Ideadbeaf']) |
| 78 self.assertEqual(['Ideadbeaf'], git_footers.get_footer_change_id(msg)) | 87 self.assertEqual(['Ideadbeaf'], git_footers.get_footer_change_id(msg)) |
| 79 self.assertEqual([], git_footers.get_footer_change_id( | 88 self.assertEqual([], git_footers.get_footer_change_id( |
| 80 'desc\nBUG=not-a-valid-footer\nChange-Id: Ixxx')) | 89 'desc\nBUG=not-a-valid-footer\nChange-Id: Ixxx')) |
| 81 self.assertEqual(['Ixxx'], git_footers.get_footer_change_id( | 90 self.assertEqual(['Ixxx'], git_footers.get_footer_change_id( |
| 82 'desc\nBUG=not-a-valid-footer\n\nChange-Id: Ixxx')) | 91 'desc\nBUG=not-a-valid-footer\n\nChange-Id: Ixxx')) |
| 83 | 92 |
| 84 def testAddFooterChangeId(self): | 93 def testAddFooterChangeId(self): |
| 94 with self.assertRaises(AssertionError): |
| 95 git_footers.add_footer_change_id('Already has\n\nChange-Id: Ixxx', 'Izzz') |
| 96 |
| 85 self.assertEqual( | 97 self.assertEqual( |
| 86 git_footers.add_footer_change_id('header-only', 'Ixxx'), | 98 git_footers.add_footer_change_id('header-only', 'Ixxx'), |
| 87 'header-only\n\nChange-Id: Ixxx') | 99 'header-only\n\nChange-Id: Ixxx') |
| 88 | 100 |
| 89 self.assertEqual( | 101 self.assertEqual( |
| 90 git_footers.add_footer_change_id('header\n\nsome: footter', 'Ixxx'), | 102 git_footers.add_footer_change_id('header\n\nsome: footter', 'Ixxx'), |
| 91 'header\n\nChange-Id: Ixxx\nsome: footter') | 103 'header\n\nChange-Id: Ixxx\nsome: footter') |
| 92 | 104 |
| 93 self.assertEqual( | 105 self.assertEqual( |
| 94 git_footers.add_footer_change_id('header\n\nBUG: yy', 'Ixxx'), | 106 git_footers.add_footer_change_id('header\n\nBUG: yy', 'Ixxx'), |
| 95 'header\n\nBUG: yy\nChange-Id: Ixxx') | 107 'header\n\nBUG: yy\nChange-Id: Ixxx') |
| 96 | 108 |
| 97 self.assertEqual( | 109 self.assertEqual( |
| 98 git_footers.add_footer_change_id('header\n\nBUG: yy\nPos: 1', 'Ixxx'), | 110 git_footers.add_footer_change_id('header\n\nBUG: yy\nPos: 1', 'Ixxx'), |
| 99 'header\n\nBUG: yy\nChange-Id: Ixxx\nPos: 1') | 111 'header\n\nBUG: yy\nChange-Id: Ixxx\nPos: 1') |
| 100 | 112 |
| 101 self.assertEqual( | 113 self.assertEqual( |
| 102 git_footers.add_footer_change_id('header\n\nBUG: yy\n\nPos: 1', 'Ixxx'), | 114 git_footers.add_footer_change_id('header\n\nBUG: yy\n\nPos: 1', 'Ixxx'), |
| 103 'header\n\nBUG: yy\n\nChange-Id: Ixxx\nPos: 1') | 115 'header\n\nBUG: yy\n\nChange-Id: Ixxx\nPos: 1') |
| 104 | 116 |
| 105 # Special case: first line is never a footer, even if it looks line one. | 117 # Special case: first line is never a footer, even if it looks line one. |
| 106 self.assertEqual( | 118 self.assertEqual( |
| 107 git_footers.add_footer_change_id('header: like footer', 'Ixxx'), | 119 git_footers.add_footer_change_id('header: like footer', 'Ixxx'), |
| 108 'header: like footer\n\nChange-Id: Ixxx') | 120 'header: like footer\n\nChange-Id: Ixxx') |
| 109 | 121 |
| 122 def testAddFooter(self): |
| 123 self.assertEqual( |
| 124 git_footers.add_footer('', 'Key', 'Value'), |
| 125 '\nKey: Value') |
| 126 self.assertEqual( |
| 127 git_footers.add_footer('Header with empty line.\n\n', 'Key', 'Value'), |
| 128 'Header with empty line.\n\nKey: Value') |
| 129 |
| 130 self.assertEqual( |
| 131 git_footers.add_footer('Top\n\nSome: footer', 'Key', 'value'), |
| 132 'Top\n\nSome: footer\nKey: value') |
| 133 |
| 134 self.assertEqual( |
| 135 git_footers.add_footer('Top\n\nSome: footer', 'Key', 'value', |
| 136 after_keys=['Any']), |
| 137 'Top\n\nKey: value\nSome: footer') |
| 138 |
| 139 self.assertEqual( |
| 140 git_footers.add_footer('Top\n\nSome: footer', 'Key', 'value', |
| 141 after_keys=['Some']), |
| 142 'Top\n\nSome: footer\nKey: value') |
| 143 |
| 144 self.assertEqual( |
| 145 git_footers.add_footer('Top\n\nSome: footer\nOther: footer', |
| 146 'Key', 'value', after_keys=['Some']), |
| 147 'Top\n\nSome: footer\nKey: value\nOther: footer') |
| 148 |
| 110 def testReadStdin(self): | 149 def testReadStdin(self): |
| 111 self.mock(git_footers.sys, 'stdin', StringIO.StringIO( | 150 self.mock(git_footers.sys, 'stdin', StringIO.StringIO( |
| 112 'line\r\notherline\r\n\r\n\r\nFoo: baz')) | 151 'line\r\notherline\r\n\r\n\r\nFoo: baz')) |
| 113 | 152 |
| 114 stdout = StringIO.StringIO() | 153 stdout = StringIO.StringIO() |
| 115 self.mock(git_footers.sys, 'stdout', stdout) | 154 self.mock(git_footers.sys, 'stdout', stdout) |
| 116 | 155 |
| 117 self.assertEqual(git_footers.main([]), 0) | 156 self.assertEqual(git_footers.main([]), 0) |
| 118 self.assertEqual(stdout.getvalue(), "Foo: baz\n") | 157 self.assertEqual(stdout.getvalue(), "Foo: baz\n") |
| 119 | 158 |
| 120 | 159 |
| 121 | 160 |
| 122 if __name__ == '__main__': | 161 if __name__ == '__main__': |
| 123 unittest.main() | 162 unittest.main() |
| OLD | NEW |