14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
from bzrlib.branch import Branch, copy_branch
19
from bzrlib.commit import commit
20
from bzrlib.errors import NoSuchRevision, UnlistableBranch
21
20
from bzrlib.selftest import TestCaseInTempDir
21
from bzrlib.branch import Branch
22
22
from bzrlib.trace import mutter
24
class TestBranch(TestCaseInTempDir):
25
class TestAppendRevisions(TestCaseInTempDir):
26
"""Test appending more than one revision"""
26
27
def test_append_revisions(self):
27
"""Test appending more than one revision"""
28
br = Branch.initialize(".")
28
from bzrlib.branch import Branch
29
br = Branch(".", init=True)
29
30
br.append_revision("rev1")
30
31
self.assertEquals(br.revision_history(), ["rev1",])
31
32
br.append_revision("rev2", "rev3")
32
33
self.assertEquals(br.revision_history(), ["rev1", "rev2", "rev3"])
35
37
class TestFetch(TestCaseInTempDir):
37
38
def test_fetch_revisions(self):
38
39
"""Test fetch-revision operation."""
39
40
from bzrlib.fetch import Fetcher
42
b1 = Branch.initialize('b1')
43
b2 = Branch.initialize('b2')
43
b1 = Branch('b1', init=True)
44
b2 = Branch('b2', init=True)
44
45
file(os.sep.join(['b1', 'foo']), 'w').write('hello')
45
46
b1.add(['foo'], ['foo-id'])
46
47
b1.commit('lala!', rev_id='revision-1', allow_pointless=False)
55
56
tree = b2.revision_tree('revision-1')
56
57
eq(tree.get_file_text('foo-id'), 'hello')
58
def test_push_stores(self):
59
"""Copy the stores from one branch to another"""
61
br_a = Branch.initialize("a")
62
file('a/b', 'wb').write('b')
64
commit(br_a, "silly commit")
67
br_b = Branch.initialize("b")
68
self.assertRaises(NoSuchRevision, br_b.get_revision,
69
br_a.revision_history()[0])
70
br_a.push_stores(br_b)
71
rev = br_b.get_revision(br_a.revision_history()[0])
72
tree = br_b.revision_tree(br_a.revision_history()[0])
74
if tree.inventory[file_id].kind == "file":
75
tree.get_file(file_id).read()
78
def test_copy_branch(self):
79
"""Copy the stores from one branch to another"""
80
br_a, br_b = self.test_push_stores()
81
commit(br_b, "silly commit")
83
br_c = copy_branch(br_a, 'c', basis_branch=br_b)
84
self.assertEqual(br_a.revision_history(), br_c.revision_history())
85
assert br_b.last_revision() not in br_c.revision_history()
86
br_c.get_revision(br_b.last_revision())
87
60
# TODO: rewrite this as a regular unittest, without relying on the displayed output
88
61
# >>> from bzrlib.commit import commit
89
62
# >>> bzrlib.trace.silent = True