OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2013 The Chromium Authors. All rights reserved. | 2 # Copyright 2013 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Unit tests for git_common.py""" | 6 """Unit tests for git_common.py""" |
7 | 7 |
8 import binascii | 8 import binascii |
9 import collections | 9 import collections |
10 import os | 10 import os |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 COMMIT_A = { | 169 COMMIT_A = { |
170 'some/files/file1': {'data': 'file1'}, | 170 'some/files/file1': {'data': 'file1'}, |
171 'some/files/file2': {'data': 'file2'}, | 171 'some/files/file2': {'data': 'file2'}, |
172 'some/files/file3': {'data': 'file3'}, | 172 'some/files/file3': {'data': 'file3'}, |
173 'some/other/file': {'data': 'otherfile'}, | 173 'some/other/file': {'data': 'otherfile'}, |
174 } | 174 } |
175 | 175 |
176 COMMIT_C = { | 176 COMMIT_C = { |
177 'some/files/file2': { | 177 'some/files/file2': { |
178 'mode': 0755, | 178 'mode': 0755, |
179 'data': 'file2 - vanilla'}, | 179 'data': 'file2 - vanilla\n'}, |
180 } | 180 } |
181 | 181 |
182 COMMIT_E = { | 182 COMMIT_E = { |
183 'some/files/file2': {'data': 'file2 - merged'}, | 183 'some/files/file2': {'data': 'file2 - merged\n'}, |
184 } | 184 } |
185 | 185 |
186 COMMIT_D = { | 186 COMMIT_D = { |
187 'some/files/file2': {'data': 'file2 - vanilla\nfile2 - merged'}, | 187 'some/files/file2': {'data': 'file2 - vanilla\nfile2 - merged\n'}, |
188 } | 188 } |
189 | 189 |
190 def testHashes(self): | 190 def testHashes(self): |
191 ret = self.repo.run( | 191 ret = self.repo.run( |
192 self.gc.hash_multi, *[ | 192 self.gc.hash_multi, *[ |
193 'master', | 193 'master', |
194 'master~3', | 194 'master~3', |
195 self.repo['E']+'~', | 195 self.repo['E']+'~', |
196 self.repo['D']+'^2', | 196 self.repo['D']+'^2', |
197 'tag_C^{}', | 197 'tag_C^{}', |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 def testBranches(self): | 252 def testBranches(self): |
253 # This check fails with git 2.4 (see crbug.com/487172) | 253 # This check fails with git 2.4 (see crbug.com/487172) |
254 self.assertEqual(self.repo.run(set, self.gc.branches()), | 254 self.assertEqual(self.repo.run(set, self.gc.branches()), |
255 {'master', 'branch_D', 'root_A'}) | 255 {'master', 'branch_D', 'root_A'}) |
256 | 256 |
257 def testDormant(self): | 257 def testDormant(self): |
258 self.assertFalse(self.repo.run(self.gc.is_dormant, 'master')) | 258 self.assertFalse(self.repo.run(self.gc.is_dormant, 'master')) |
259 self.repo.git('config', 'branch.master.dormant', 'true') | 259 self.repo.git('config', 'branch.master.dormant', 'true') |
260 self.assertTrue(self.repo.run(self.gc.is_dormant, 'master')) | 260 self.assertTrue(self.repo.run(self.gc.is_dormant, 'master')) |
261 | 261 |
| 262 def testBlame(self): |
| 263 # Expect to blame line 1 on C, line 2 on E. |
| 264 c_short = self.repo['C'][:8] |
| 265 c_author = self.repo.show_commit('C', format_string='%an %ai') |
| 266 e_short = self.repo['E'][:8] |
| 267 e_author = self.repo.show_commit('E', format_string='%an %ai') |
| 268 expected_output = ['%s (%s 1) file2 - vanilla' % (c_short, c_author), |
| 269 '%s (%s 2) file2 - merged' % (e_short, e_author)] |
| 270 self.assertEqual(expected_output, |
| 271 self.repo.run(self.gc.blame, 'some/files/file2', |
| 272 'tag_D').split('\n')) |
| 273 |
262 def testParseCommitrefs(self): | 274 def testParseCommitrefs(self): |
263 ret = self.repo.run( | 275 ret = self.repo.run( |
264 self.gc.parse_commitrefs, *[ | 276 self.gc.parse_commitrefs, *[ |
265 'master', | 277 'master', |
266 'master~3', | 278 'master~3', |
267 self.repo['E']+'~', | 279 self.repo['E']+'~', |
268 self.repo['D']+'^2', | 280 self.repo['D']+'^2', |
269 'tag_C^{}', | 281 'tag_C^{}', |
270 ] | 282 ] |
271 ) | 283 ) |
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
796 self.repo.show_commit('A', format_string='%cn %ci')) | 808 self.repo.show_commit('A', format_string='%cn %ci')) |
797 self.assertEquals('Author McAuthorly 1970-01-03 00:00:00 +0000', | 809 self.assertEquals('Author McAuthorly 1970-01-03 00:00:00 +0000', |
798 self.repo.show_commit('B', format_string='%an %ai')) | 810 self.repo.show_commit('B', format_string='%an %ai')) |
799 self.assertEquals('Charles Committish 1970-01-04 00:00:00 +0000', | 811 self.assertEquals('Charles Committish 1970-01-04 00:00:00 +0000', |
800 self.repo.show_commit('B', format_string='%cn %ci')) | 812 self.repo.show_commit('B', format_string='%cn %ci')) |
801 | 813 |
802 | 814 |
803 if __name__ == '__main__': | 815 if __name__ == '__main__': |
804 sys.exit(coverage_utils.covered_main( | 816 sys.exit(coverage_utils.covered_main( |
805 os.path.join(DEPOT_TOOLS_ROOT, 'git_common.py'))) | 817 os.path.join(DEPOT_TOOLS_ROOT, 'git_common.py'))) |
OLD | NEW |