| 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 559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 570 self.repo.git('rebase', '--continue') | 570 self.repo.git('rebase', '--continue') |
| 571 | 571 |
| 572 self.assertSchema(""" | 572 self.assertSchema(""" |
| 573 A B C D E F G H I J K L | 573 A B C D E F G H I J K L |
| 574 | 574 |
| 575 X Y Z | 575 X Y Z |
| 576 | 576 |
| 577 CAT DOG | 577 CAT DOG |
| 578 """) | 578 """) |
| 579 | 579 |
| 580 def testStatus(self): |
| 581 def inner(): |
| 582 dictified_status = lambda: { |
| 583 k: dict(v._asdict()) # pylint: disable=W0212 |
| 584 for k, v in self.repo.run(self.gc.status).iteritems() |
| 585 } |
| 586 self.repo.git('mv', 'file', 'cat') |
| 587 with open('COOL', 'w') as f: |
| 588 f.write('Super cool file!') |
| 589 self.assertDictEqual( |
| 590 dictified_status(), |
| 591 {'cat': {'lstat': 'R', 'rstat': ' ', 'src': 'file'}, |
| 592 'COOL': {'lstat': '?', 'rstat': '?', 'src': 'COOL'}} |
| 593 ) |
| 594 |
| 595 self.repo.run(inner) |
| 596 |
| 580 | 597 |
| 581 class GitFreezeThaw(git_test_utils.GitRepoReadWriteTestBase): | 598 class GitFreezeThaw(git_test_utils.GitRepoReadWriteTestBase): |
| 582 @classmethod | 599 @classmethod |
| 583 def setUpClass(cls): | 600 def setUpClass(cls): |
| 584 super(GitFreezeThaw, cls).setUpClass() | 601 super(GitFreezeThaw, cls).setUpClass() |
| 585 import git_common | 602 import git_common |
| 586 cls.gc = git_common | 603 cls.gc = git_common |
| 587 cls.gc.TEST_MODE = True | 604 cls.gc.TEST_MODE = True |
| 588 | 605 |
| 589 REPO_SCHEMA = """ | 606 REPO_SCHEMA = """ |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 648 self.assertEquals(self.repo.git('status', '--porcelain').stdout, '') | 665 self.assertEquals(self.repo.git('status', '--porcelain').stdout, '') |
| 649 | 666 |
| 650 # Thaw it out! | 667 # Thaw it out! |
| 651 self.assertIsNone(self.gc.thaw()) | 668 self.assertIsNone(self.gc.thaw()) |
| 652 self.assertIsNotNone(self.gc.thaw()) # One thaw should thaw everything | 669 self.assertIsNotNone(self.gc.thaw()) # One thaw should thaw everything |
| 653 | 670 |
| 654 self.assertEquals(self.repo.git('status', '--porcelain').stdout, STATUS_1) | 671 self.assertEquals(self.repo.git('status', '--porcelain').stdout, STATUS_1) |
| 655 | 672 |
| 656 self.repo.run(inner) | 673 self.repo.run(inner) |
| 657 | 674 |
| 675 def testTooBig(self): |
| 676 def inner(): |
| 677 self.repo.git('config', 'depot-tools.freeze-size-limit', '1') |
| 678 with open('bigfile', 'w') as f: |
| 679 chunk = 'NERDFACE' * 1024 |
| 680 for _ in xrange(128 * 2 + 1): # Just over 2 mb |
| 681 f.write(chunk) |
| 682 _, err = self.repo.capture_stdio(self.gc.freeze) |
| 683 self.assertIn('too much untracked+unignored', err) |
| 684 |
| 685 self.repo.run(inner) |
| 686 |
| 658 | 687 |
| 659 if __name__ == '__main__': | 688 if __name__ == '__main__': |
| 660 sys.exit(coverage_utils.covered_main( | 689 sys.exit(coverage_utils.covered_main( |
| 661 os.path.join(DEPOT_TOOLS_ROOT, 'git_common.py') | 690 os.path.join(DEPOT_TOOLS_ROOT, 'git_common.py') |
| 662 )) | 691 )) |
| OLD | NEW |