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')])) | |
Sergiy Byelozyorov
2016/06/02 23:16:27
also add
self.assertEqual(git_footers.split_foote
tandrii(chromium)
2016/06/03 09:16:17
good idea.
| |
38 | 45 |
39 def testFootersBasic(self): | |
40 self.assertEqual( | 46 self.assertEqual( |
41 git_footers.parse_footers(self._message), {}) | 47 git_footers.parse_footers(self._message), {}) |
42 self.assertEqual( | 48 self.assertEqual( |
43 git_footers.parse_footers(self._message + self._position_footer), | 49 git_footers.parse_footers(self._message + self._position_footer), |
44 { 'Cr-Commit-Position': [ self._position ] }) | 50 { 'Cr-Commit-Position': [ self._position ] }) |
45 self.assertEqual( | 51 self.assertEqual( |
46 git_footers.parse_footers(self._message + self._git_svn_id_footer), | 52 git_footers.parse_footers(self._message + self._git_svn_id_footer), |
47 { 'Git-Svn-Id': [ self._git_svn_id ] }) | 53 { 'Git-Svn-Id': [ self._git_svn_id ] }) |
48 self.assertEqual( | 54 self.assertEqual( |
49 git_footers.parse_footers(self._message + self._position_footer | 55 git_footers.parse_footers(self._message + self._position_footer |
(...skipping 25 matching lines...) Expand all Loading... | |
75 'Change-Id: ignored', | 81 'Change-Id: ignored', |
76 '', # Above is ignored because of this empty line. | 82 '', # Above is ignored because of this empty line. |
77 'Change-Id: Ideadbeaf']) | 83 'Change-Id: Ideadbeaf']) |
78 self.assertEqual(['Ideadbeaf'], git_footers.get_footer_change_id(msg)) | 84 self.assertEqual(['Ideadbeaf'], git_footers.get_footer_change_id(msg)) |
79 self.assertEqual([], git_footers.get_footer_change_id( | 85 self.assertEqual([], git_footers.get_footer_change_id( |
80 'desc\nBUG=not-a-valid-footer\nChange-Id: Ixxx')) | 86 'desc\nBUG=not-a-valid-footer\nChange-Id: Ixxx')) |
81 self.assertEqual(['Ixxx'], git_footers.get_footer_change_id( | 87 self.assertEqual(['Ixxx'], git_footers.get_footer_change_id( |
82 'desc\nBUG=not-a-valid-footer\n\nChange-Id: Ixxx')) | 88 'desc\nBUG=not-a-valid-footer\n\nChange-Id: Ixxx')) |
83 | 89 |
84 def testAddFooterChangeId(self): | 90 def testAddFooterChangeId(self): |
91 with self.assertRaises(AssertionError): | |
92 git_footers.add_footer_change_id('Already has\n\nChange-Id: Ixxx', 'Izzz') | |
93 | |
85 self.assertEqual( | 94 self.assertEqual( |
86 git_footers.add_footer_change_id('header-only', 'Ixxx'), | 95 git_footers.add_footer_change_id('header-only', 'Ixxx'), |
87 'header-only\n\nChange-Id: Ixxx') | 96 'header-only\n\nChange-Id: Ixxx') |
88 | 97 |
89 self.assertEqual( | 98 self.assertEqual( |
90 git_footers.add_footer_change_id('header\n\nsome: footter', 'Ixxx'), | 99 git_footers.add_footer_change_id('header\n\nsome: footter', 'Ixxx'), |
91 'header\n\nChange-Id: Ixxx\nsome: footter') | 100 'header\n\nChange-Id: Ixxx\nsome: footter') |
92 | 101 |
93 self.assertEqual( | 102 self.assertEqual( |
94 git_footers.add_footer_change_id('header\n\nBUG: yy', 'Ixxx'), | 103 git_footers.add_footer_change_id('header\n\nBUG: yy', 'Ixxx'), |
95 'header\n\nBUG: yy\nChange-Id: Ixxx') | 104 'header\n\nBUG: yy\nChange-Id: Ixxx') |
96 | 105 |
97 self.assertEqual( | 106 self.assertEqual( |
98 git_footers.add_footer_change_id('header\n\nBUG: yy\nPos: 1', 'Ixxx'), | 107 git_footers.add_footer_change_id('header\n\nBUG: yy\nPos: 1', 'Ixxx'), |
99 'header\n\nBUG: yy\nChange-Id: Ixxx\nPos: 1') | 108 'header\n\nBUG: yy\nChange-Id: Ixxx\nPos: 1') |
100 | 109 |
101 self.assertEqual( | 110 self.assertEqual( |
102 git_footers.add_footer_change_id('header\n\nBUG: yy\n\nPos: 1', 'Ixxx'), | 111 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') | 112 'header\n\nBUG: yy\n\nChange-Id: Ixxx\nPos: 1') |
104 | 113 |
105 # Special case: first line is never a footer, even if it looks line one. | 114 # Special case: first line is never a footer, even if it looks line one. |
106 self.assertEqual( | 115 self.assertEqual( |
107 git_footers.add_footer_change_id('header: like footer', 'Ixxx'), | 116 git_footers.add_footer_change_id('header: like footer', 'Ixxx'), |
108 'header: like footer\n\nChange-Id: Ixxx') | 117 'header: like footer\n\nChange-Id: Ixxx') |
109 | 118 |
119 def testAddFooter(self): | |
120 self.assertEqual( | |
121 git_footers.add_footer('', 'Key', 'Value'), | |
122 '\n\nKey: Value') | |
123 self.assertEqual( | |
124 git_footers.add_footer('Top\n\nSome: footer', 'Key', 'value'), | |
125 'Top\n\nSome: footer\nKey: value') | |
126 self.assertEqual( | |
127 git_footers.add_footer('Top\n\nSome: footer', 'Key', 'value', | |
128 after_keys=['Any']), | |
129 'Top\n\nKey: value\nSome: footer') | |
130 self.assertEqual( | |
131 git_footers.add_footer('Top\n\nSome: footer', 'Key', 'value', | |
132 after_keys=['Some']), | |
133 'Top\n\nSome: footer\nKey: value') | |
Sergiy Byelozyorov
2016/06/02 23:16:27
I would also add a test when the footer must be ad
tandrii(chromium)
2016/06/03 09:16:17
excellent!
| |
134 | |
110 def testReadStdin(self): | 135 def testReadStdin(self): |
111 self.mock(git_footers.sys, 'stdin', StringIO.StringIO( | 136 self.mock(git_footers.sys, 'stdin', StringIO.StringIO( |
112 'line\r\notherline\r\n\r\n\r\nFoo: baz')) | 137 'line\r\notherline\r\n\r\n\r\nFoo: baz')) |
113 | 138 |
114 stdout = StringIO.StringIO() | 139 stdout = StringIO.StringIO() |
115 self.mock(git_footers.sys, 'stdout', stdout) | 140 self.mock(git_footers.sys, 'stdout', stdout) |
116 | 141 |
117 self.assertEqual(git_footers.main([]), 0) | 142 self.assertEqual(git_footers.main([]), 0) |
118 self.assertEqual(stdout.getvalue(), "Foo: baz\n") | 143 self.assertEqual(stdout.getvalue(), "Foo: baz\n") |
119 | 144 |
120 | 145 |
121 | 146 |
122 if __name__ == '__main__': | 147 if __name__ == '__main__': |
123 unittest.main() | 148 unittest.main() |
OLD | NEW |