Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: tests/git_common_test.py

Issue 1162763003: Fix git branch parsing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Fix it for real. Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « git_common.py ('k') | tests/git_rebase_update_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 223
224 def testCurrentBranch(self): 224 def testCurrentBranch(self):
225 def cur_branch_out_of_git(): 225 def cur_branch_out_of_git():
226 os.chdir('..') 226 os.chdir('..')
227 return self.gc.current_branch() 227 return self.gc.current_branch()
228 self.assertIsNone(self.repo.run(cur_branch_out_of_git)) 228 self.assertIsNone(self.repo.run(cur_branch_out_of_git))
229 229
230 self.repo.git('checkout', 'branch_D') 230 self.repo.git('checkout', 'branch_D')
231 self.assertEqual(self.repo.run(self.gc.current_branch), 'branch_D') 231 self.assertEqual(self.repo.run(self.gc.current_branch), 'branch_D')
232 232
233 @unittest.skip('broken by git 2.4')
234 def testBranches(self): 233 def testBranches(self):
235 # This check fails with git 2.4 (see crbug.com/487172) 234 # This check fails with git 2.4 (see crbug.com/487172)
236 self.assertEqual(self.repo.run(set, self.gc.branches()), 235 self.assertEqual(self.repo.run(set, self.gc.branches()),
237 {'master', 'branch_D', 'root_A'}) 236 {'master', 'branch_D', 'root_A'})
238 237
239 def testDormant(self): 238 def testDormant(self):
240 self.assertFalse(self.repo.run(self.gc.is_dormant, 'master')) 239 self.assertFalse(self.repo.run(self.gc.is_dormant, 'master'))
241 self.repo.git('config', 'branch.master.dormant', 'true') 240 self.repo.git('config', 'branch.master.dormant', 'true')
242 self.assertTrue(self.repo.run(self.gc.is_dormant, 'master')) 241 self.assertTrue(self.repo.run(self.gc.is_dormant, 'master'))
243 242
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 COMMIT_L = {'file': {'data': 'L'}} 440 COMMIT_L = {'file': {'data': 'L'}}
442 441
443 def setUp(self): 442 def setUp(self):
444 super(GitMutableStructuredTest, self).setUp() 443 super(GitMutableStructuredTest, self).setUp()
445 self.repo.git('branch', '--set-upstream-to', 'root_X', 'branch_Z') 444 self.repo.git('branch', '--set-upstream-to', 'root_X', 'branch_Z')
446 self.repo.git('branch', '--set-upstream-to', 'branch_G', 'branch_K') 445 self.repo.git('branch', '--set-upstream-to', 'branch_G', 'branch_K')
447 self.repo.git('branch', '--set-upstream-to', 'branch_K', 'branch_L') 446 self.repo.git('branch', '--set-upstream-to', 'branch_K', 'branch_L')
448 self.repo.git('branch', '--set-upstream-to', 'root_A', 'branch_G') 447 self.repo.git('branch', '--set-upstream-to', 'root_A', 'branch_G')
449 self.repo.git('branch', '--set-upstream-to', 'root_X', 'root_A') 448 self.repo.git('branch', '--set-upstream-to', 'root_X', 'root_A')
450 449
451 @unittest.skip('broken by git 2.4')
452 def testTooManyBranches(self): 450 def testTooManyBranches(self):
453 for i in xrange(30): 451 for i in xrange(30):
454 self.repo.git('branch', 'a'*i) 452 self.repo.git('branch', 'a'*i)
455 453
456 _, rslt = self.repo.capture_stdio(list, self.gc.branches()) 454 _, rslt = self.repo.capture_stdio(list, self.gc.branches())
457 self.assertIn('too many branches (39/20)', rslt) 455 self.assertIn('too many branches (39/20)', rslt)
458 456
459 self.repo.git('config', 'depot-tools.branch-limit', 'cat') 457 self.repo.git('config', 'depot-tools.branch-limit', 'cat')
460 458
461 _, rslt = self.repo.capture_stdio(list, self.gc.branches()) 459 _, rslt = self.repo.capture_stdio(list, self.gc.branches())
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 # base and recompute it. 526 # base and recompute it.
529 self.repo.run(self.gc.run, 'branch', '-u', 'root_A') 527 self.repo.run(self.gc.run, 'branch', '-u', 'root_A')
530 self.assertEqual( 528 self.assertEqual(
531 self.repo['A'], 529 self.repo['A'],
532 self.repo.run(self.gc.get_or_create_merge_base, 'branch_K') 530 self.repo.run(self.gc.get_or_create_merge_base, 'branch_K')
533 ) 531 )
534 532
535 self.assertIsNone( 533 self.assertIsNone(
536 self.repo.run(self.gc.get_or_create_merge_base, 'branch_DOG')) 534 self.repo.run(self.gc.get_or_create_merge_base, 'branch_DOG'))
537 535
538 @unittest.skip('broken by git 2.4')
539 def testGetBranchTree(self): 536 def testGetBranchTree(self):
540 skipped, tree = self.repo.run(self.gc.get_branch_tree) 537 skipped, tree = self.repo.run(self.gc.get_branch_tree)
541 # This check fails with git 2.4 (see crbug.com/487172) 538 # This check fails with git 2.4 (see crbug.com/487172)
542 self.assertEqual(skipped, {'master', 'root_X', 'branch_DOG', 'root_CAT'}) 539 self.assertEqual(skipped, {'master', 'root_X', 'branch_DOG', 'root_CAT'})
543 self.assertEqual(tree, { 540 self.assertEqual(tree, {
544 'branch_G': 'root_A', 541 'branch_G': 'root_A',
545 'root_A': 'root_X', 542 'root_A': 'root_X',
546 'branch_K': 'branch_G', 543 'branch_K': 'branch_G',
547 'branch_L': 'branch_K', 544 'branch_L': 'branch_K',
548 'branch_Z': 'root_X' 545 'branch_Z': 'root_X'
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 self.assertIsNone(self.gc.thaw()) 721 self.assertIsNone(self.gc.thaw())
725 self.assertIsNotNone(self.gc.thaw()) # One thaw should thaw everything 722 self.assertIsNotNone(self.gc.thaw()) # One thaw should thaw everything
726 723
727 self.assertEquals(self.repo.git('status', '--porcelain').stdout, STATUS_1) 724 self.assertEquals(self.repo.git('status', '--porcelain').stdout, STATUS_1)
728 725
729 self.repo.run(inner) 726 self.repo.run(inner)
730 727
731 728
732 if __name__ == '__main__': 729 if __name__ == '__main__':
733 sys.exit(coverage_utils.covered_main( 730 sys.exit(coverage_utils.covered_main(
734 os.path.join(DEPOT_TOOLS_ROOT, 'git_common.py'), 731 os.path.join(DEPOT_TOOLS_ROOT, 'git_common.py')))
735 required_percentage=88.0
736 ))
OLDNEW
« no previous file with comments | « git_common.py ('k') | tests/git_rebase_update_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698