17
17
"""Tests for repository commit builder."""
19
from bzrlib import inventory
19
20
from bzrlib.errors import UnsupportedOperation
20
21
from bzrlib.repository import CommitBuilder
21
22
from bzrlib.tests.repository_implementations.test_repository import TestCaseWithRepository
28
29
builder = tree.branch.get_commit_builder([])
29
30
self.assertIsInstance(builder, CommitBuilder)
31
def test_set_root_id(self):
32
tree = self.make_branch_and_tree(".")
33
builder = tree.branch.get_commit_builder([])
34
self.assertIs(None, builder.new_inventory.root)
36
self.assertIsInstance(builder.new_inventory.root.file_id, basestring)
37
builder.set_root_id('foo')
38
self.assertEqual('foo', builder.new_inventory.root.file_id)
32
def record_root(self, builder, tree):
33
if builder.record_root_entry is True:
34
ie = tree.inventory.root
35
parent_tree = tree.branch.repository.revision_tree(None)
36
parent_invs = [parent_tree.inventory]
37
builder.record_entry_contents(ie, parent_invs, '', tree)
40
39
def test_finish_inventory(self):
41
40
tree = self.make_branch_and_tree(".")
42
41
builder = tree.branch.get_commit_builder([])
42
self.record_root(builder, tree)
44
43
builder.finish_inventory()
46
45
def test_commit_message(self):
47
46
tree = self.make_branch_and_tree(".")
48
47
builder = tree.branch.get_commit_builder([])
48
self.record_root(builder, tree)
50
49
builder.finish_inventory()
51
50
rev_id = builder.commit('foo bar blah')
52
51
rev = tree.branch.repository.get_revision(rev_id)
59
58
except UnsupportedOperation:
60
59
# This format doesn't support supplied revision ids
61
self.record_root(builder, tree)
63
62
builder.finish_inventory()
64
63
self.assertEqual("foo", builder.commit('foo bar'))
65
64
self.assertTrue(tree.branch.repository.has_revision("foo"))
71
70
def test_commit(self):
72
71
tree = self.make_branch_and_tree(".")
73
72
builder = tree.branch.get_commit_builder([])
73
self.record_root(builder, tree)
75
74
builder.finish_inventory()
76
75
rev_id = builder.commit('foo bar')
77
76
self.assertNotEqual(None, rev_id)