53
54
branch = Branch.initialize(u'.')
55
56
print >> open('file', 'w'), "content"
56
os.symlink('target', 'symlink')
58
os.symlink('target', 'symlink')
57
59
tree = branch.working_tree()
58
60
files = list(tree.list_files())
59
61
self.assertEqual(files[0], ('dir', '?', 'directory', None, TreeDirectory()))
60
62
self.assertEqual(files[1], ('file', '?', 'file', None, TreeFile()))
61
self.assertEqual(files[2], ('symlink', '?', 'symlink', None, TreeLink()))
64
self.assertEqual(files[2], ('symlink', '?', 'symlink', None, TreeLink()))
63
66
def test_open_containing(self):
64
67
branch = Branch.initialize(u'.')
65
68
wt, relpath = WorkingTree.open_containing()
66
69
self.assertEqual('', relpath)
67
self.assertEqual(wt.basedir, branch.base)
70
self.assertEqual(wt.basedir + '/', branch.base)
68
71
wt, relpath = WorkingTree.open_containing(u'.')
69
72
self.assertEqual('', relpath)
70
self.assertEqual(wt.basedir, branch.base)
73
self.assertEqual(wt.basedir + '/', branch.base)
71
74
wt, relpath = WorkingTree.open_containing('./foo')
72
75
self.assertEqual('foo', relpath)
73
self.assertEqual(wt.basedir, branch.base)
76
self.assertEqual(wt.basedir + '/', branch.base)
74
77
# paths that are urls are just plain wrong for working trees.
75
78
self.assertRaises(NotBranchError,
76
79
WorkingTree.open_containing,
77
'file:///' + os.getcwdu())
80
'file:///' + getcwd())
79
82
def test_construct_with_branch(self):
80
83
branch = Branch.initialize(u'.')
81
84
tree = WorkingTree(branch.base, branch)
82
85
self.assertEqual(branch, tree.branch)
83
self.assertEqual(branch.base, tree.basedir)
86
self.assertEqual(branch.base, tree.basedir + '/')
85
88
def test_construct_without_branch(self):
86
89
branch = Branch.initialize(u'.')
87
90
tree = WorkingTree(branch.base)
88
91
self.assertEqual(branch.base, tree.branch.base)
89
self.assertEqual(branch.base, tree.basedir)
92
self.assertEqual(branch.base, tree.basedir + '/')
91
94
def test_basic_relpath(self):
92
95
# for comprehensive relpath tests, see whitebox.py.
93
96
branch = Branch.initialize(u'.')
94
97
tree = WorkingTree(branch.base)
95
98
self.assertEqual('child',
96
tree.relpath(os.path.join(os.getcwd(), 'child')))
99
tree.relpath(pathjoin(getcwd(), 'child')))
98
101
def test_lock_locks_branch(self):
99
102
branch = Branch.initialize(u'.')
168
171
self.assertEquals(list(tree.unknowns()),
174
def test_hashcache(self):
175
from bzrlib.tests.test_hashcache import pause
176
b = Branch.initialize(u'.')
177
tree = WorkingTree(u'.', b)
178
self.build_tree(['hello.txt',
180
tree.add('hello.txt')
182
sha = tree.get_file_sha1(tree.path2id('hello.txt'))
183
self.assertEqual(1, tree._hashcache.miss_count)
184
tree2 = WorkingTree(u'.', b)
185
sha2 = tree2.get_file_sha1(tree2.path2id('hello.txt'))
186
self.assertEqual(0, tree2._hashcache.miss_count)
187
self.assertEqual(1, tree2._hashcache.hit_count)