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")
1482
1482
def test_two_directories_clash(self):
1483
1483
def tt_helper():
1497
1497
err = self.assertRaises(errors.FileExists, tt_helper)
1498
self.assertContainsRe(str(err),
1499
"^File exists: .+/foo")
1498
self.assertEndsWith(err.path, "/foo")
1501
1500
def test_two_directories_clash_finalize(self):
1502
1501
def tt_helper():
1516
1515
err = self.assertRaises(errors.FileExists, tt_helper)
1517
self.assertContainsRe(str(err),
1518
"^File exists: .+/foo")
1516
self.assertEndsWith(err.path, "/foo")
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)
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')
3723
class TestTransformHooks(tests.TestCaseWithTransport):
3726
super(TestTransformHooks, self).setUp()
3727
self.wt = self.make_branch_and_tree('.')
3730
def get_transform(self):
3731
transform = TreeTransform(self.wt)
3732
self.addCleanup(transform.finalize)
3733
return transform, transform.root
3735
def test_pre_commit_hooks(self):
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)
3744
self.assertEqual(old_root_id, self.wt.get_root_id())
3745
self.assertEquals([(self.wt, transform)], calls)
3747
def test_post_commit_hooks(self):
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)
3756
self.assertEqual(old_root_id, self.wt.get_root_id())
3757
self.assertEquals([(self.wt, transform)], calls)