def test_build_tree(self): """Test building works using a MemoryTree.""" branch = self.make_branch('branch') tree = MemoryTree.create_on_branch(branch) builder = TreeBuilder() builder.start_tree(tree) builder.build(['foo', "bar/", "bar/file"]) self.assertEqual('contents of foo\n', tree.get_file(tree.path2id('foo')).read()) self.assertEqual('contents of bar/file\n', tree.get_file(tree.path2id('bar/file')).read()) builder.finish_tree()
def test_create_on_branch_with_content(self): """Creating a mutable tree on a non-trivial branch works.""" branch = self.make_branch('branch') tree = MemoryTree.create_on_branch(branch) # build some content tree.lock_write() builder = TreeBuilder() builder.start_tree(tree) builder.build(['foo']) builder.finish_tree() rev_id = tree.commit('first post') tree.unlock() tree = MemoryTree.create_on_branch(branch) tree.lock_read() self.assertEqual([rev_id], tree.get_parent_ids()) self.assertEqual('contents of foo\n', tree.get_file(tree.path2id('foo')).read()) tree.unlock()
def test_build_tree_not_started_errors(self): builder = TreeBuilder() self.assertRaises(errors.NotBuilding, builder.build, "foo")
def test_finish_tree_unlocks(self): builder = TreeBuilder() tree = FakeTree() builder.start_tree(tree) builder.finish_tree() self.assertEqual(["lock_tree_write", "unlock"], tree._calls)
def test_finish_tree_not_started_errors(self): builder = TreeBuilder() self.assertRaises(errors.NotBuilding, builder.finish_tree)
def test_start_tree_when_started_fails(self): builder = TreeBuilder() tree = FakeTree() builder.start_tree(tree) self.assertRaises(errors.AlreadyBuilding, builder.start_tree, tree)
def test_start_tree_locks_write(self): builder = TreeBuilder() tree = FakeTree() builder.start_tree(tree) self.assertEqual(["lock_tree_write"], tree._calls)
def test_create(self): builder = TreeBuilder()