23
23
from breezy.tests import (
26
from breezy.bzr.inventorytree import InventoryTree
27
26
from breezy.mutabletree import MutableTree
28
27
from breezy.tests import TestSkipped
29
28
from breezy.transform import _PreviewTree
36
35
return next(tree.iter_entries_by_dir(specific_files=[path]))[1]
39
class TestInventoryWithSymlinks(per_tree.TestCaseWithTree):
38
class TestTreeWithSymlinks(per_tree.TestCaseWithTree):
41
40
_test_needs_features = [features.SymlinkFeature]
44
super(TestInventoryWithSymlinks, self).setUp()
43
super(TestTreeWithSymlinks, self).setUp()
45
44
self.tree = self.get_tree_with_subdirs_and_all_content_types()
46
45
self.tree.lock_read()
47
46
self.addCleanup(self.tree.unlock)
66
65
entry = get_entry(self.tree, 'symlink')
67
66
self.assertEqual(entry.kind, 'symlink')
68
67
self.assertEqual(None, entry.text_size)
71
class TestInventory(per_tree.TestCaseWithTree):
73
def test_paths2ids_recursive(self):
74
work_tree = self.make_branch_and_tree('tree')
75
self.build_tree(['tree/dir/', 'tree/dir/file'])
76
work_tree.add(['dir', 'dir/file'])
77
tree = self._convert_tree(work_tree)
78
if not isinstance(tree, InventoryTree):
79
raise tests.TestNotApplicable(
80
"test not applicable on non-inventory tests")
82
self.addCleanup(tree.unlock)
83
self.assertEqual({tree.path2id('dir'), tree.path2id('dir/file')},
84
tree.paths2ids(['dir']))
86
def test_paths2ids_forget_old(self):
87
work_tree = self.make_branch_and_tree('tree')
88
self.build_tree(['tree/file'])
90
work_tree.commit('commit old state')
91
work_tree.remove('file')
92
tree = self._convert_tree(work_tree)
93
if not isinstance(tree, InventoryTree):
94
raise tests.TestNotApplicable(
95
"test not applicable on non-inventory tests")
97
self.addCleanup(tree.unlock)
98
self.assertEqual(set([]), tree.paths2ids(['file'],
99
require_versioned=False))