~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_transform.py

  • Committer: Jelmer Vernooij
  • Date: 2012-02-20 12:19:29 UTC
  • mfrom: (6437.23.11 2.5)
  • mto: (6581.1.1 trunk)
  • mto: This revision was merged to the branch mainline in revision 6582.
  • Revision ID: jelmer@samba.org-20120220121929-7ni2psvjoatm1yp4
Merge bzr/2.5.

Show diffs side-by-side

added added

removed removed

Lines of Context:
60
60
    pathjoin,
61
61
)
62
62
from bzrlib.merge import Merge3Merger, Merger
 
63
from bzrlib.mutabletree import MutableTree
63
64
from bzrlib.tests import (
64
65
    features,
65
66
    TestCaseInTempDir,
1476
1477
        # The rename will fail because the target directory is not empty (but
1477
1478
        # raises FileExists anyway).
1478
1479
        err = self.assertRaises(errors.FileExists, tt_helper)
1479
 
        self.assertContainsRe(str(err),
1480
 
            "^File exists: .+/baz")
 
1480
        self.assertEndsWith(err.path, "/baz")
1481
1481
 
1482
1482
    def test_two_directories_clash(self):
1483
1483
        def tt_helper():
1495
1495
                wt.unlock()
1496
1496
                raise
1497
1497
        err = self.assertRaises(errors.FileExists, tt_helper)
1498
 
        self.assertContainsRe(str(err),
1499
 
            "^File exists: .+/foo")
 
1498
        self.assertEndsWith(err.path, "/foo")
1500
1499
 
1501
1500
    def test_two_directories_clash_finalize(self):
1502
1501
        def tt_helper():
1514
1513
                tt.finalize()
1515
1514
                raise
1516
1515
        err = self.assertRaises(errors.FileExists, tt_helper)
1517
 
        self.assertContainsRe(str(err),
1518
 
            "^File exists: .+/foo")
 
1516
        self.assertEndsWith(err.path, "/foo")
1519
1517
 
1520
1518
    def test_file_to_directory(self):
1521
1519
        wt = self.make_branch_and_tree('.')
1767
1765
        merge_modified = this.wt.merge_modified()
1768
1766
        self.assertSubset(merge_modified, modified)
1769
1767
        self.assertEqual(len(merge_modified), len(modified))
1770
 
        file(this.wt.id2abspath('a'), 'wb').write('booga')
 
1768
        with file(this.wt.id2abspath('a'), 'wb') as f: f.write('booga')
1771
1769
        modified.pop(0)
1772
1770
        merge_modified = this.wt.merge_modified()
1773
1771
        self.assertSubset(merge_modified, modified)
1889
1887
        os.mkdir('a')
1890
1888
        a = BzrDir.create_standalone_workingtree('a')
1891
1889
        os.mkdir('a/foo')
1892
 
        file('a/foo/bar', 'wb').write('contents')
 
1890
        with file('a/foo/bar', 'wb') as f: f.write('contents')
1893
1891
        os.symlink('a/foo/bar', 'a/foo/baz')
1894
1892
        a.add(['foo', 'foo/bar', 'foo/baz'])
1895
1893
        a.commit('initial commit')
3720
3718
                         remaining_conflicts.pop())
3721
3719
        self.assertLength(1, warnings)
3722
3720
        self.assertStartsWith(warnings[0], 'donttouchmypreciouuus')
 
3721
 
 
3722
 
 
3723
class TestTransformHooks(tests.TestCaseWithTransport):
 
3724
 
 
3725
    def setUp(self):
 
3726
        super(TestTransformHooks, self).setUp()
 
3727
        self.wt = self.make_branch_and_tree('.')
 
3728
        os.chdir('..')
 
3729
 
 
3730
    def get_transform(self):
 
3731
        transform = TreeTransform(self.wt)
 
3732
        self.addCleanup(transform.finalize)
 
3733
        return transform, transform.root
 
3734
 
 
3735
    def test_pre_commit_hooks(self):
 
3736
        calls = []
 
3737
        def record_pre_transform(tree, tt):
 
3738
            calls.append((tree, tt))
 
3739
        MutableTree.hooks.install_named_hook('pre_transform',
 
3740
            record_pre_transform, "Pre transform")
 
3741
        transform, root = self.get_transform()
 
3742
        old_root_id = transform.tree_file_id(root)
 
3743
        transform.apply()
 
3744
        self.assertEqual(old_root_id, self.wt.get_root_id())
 
3745
        self.assertEquals([(self.wt, transform)], calls)
 
3746
 
 
3747
    def test_post_commit_hooks(self):
 
3748
        calls = []
 
3749
        def record_post_transform(tree, tt):
 
3750
            calls.append((tree, tt))
 
3751
        MutableTree.hooks.install_named_hook('post_transform',
 
3752
            record_post_transform, "Post transform")
 
3753
        transform, root = self.get_transform()
 
3754
        old_root_id = transform.tree_file_id(root)
 
3755
        transform.apply()
 
3756
        self.assertEqual(old_root_id, self.wt.get_root_id())
 
3757
        self.assertEquals([(self.wt, transform)], calls)