1
# Copyright (C) 2005, 2006 Canonical Ltd
1
# Copyright (C) 2005, 2006, 2007 Canonical Ltd
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
47
47
from bzrlib.transport.memory import MemoryServer
48
48
from bzrlib.upgrade import upgrade
49
49
from bzrlib.workingtree import WorkingTree
50
from bzrlib.symbol_versioning import (
52
55
class TestBranch(TestCaseWithBranch):
54
def test_append_revisions(self):
55
"""Test appending more than one revision"""
56
wt = self.make_branch_and_tree('tree')
57
wt.commit('f', rev_id='rev1')
58
wt.commit('f', rev_id='rev2')
59
wt.commit('f', rev_id='rev3')
61
br = self.get_branch()
63
br.append_revision("rev1")
64
self.assertEquals(br.revision_history(), ["rev1",])
65
br.append_revision("rev2", "rev3")
66
self.assertEquals(br.revision_history(), ["rev1", "rev2", "rev3"])
67
self.assertRaises(errors.ReservedId, br.append_revision, 'current:')
69
57
def test_create_tree_with_merge(self):
70
58
tree = self.create_tree_with_merge()
71
59
ancestry_graph = tree.branch.repository.get_revision_graph('rev-3')
72
self.assertEqual({'rev-1':[],
74
'rev-1.1.1':['rev-1'],
75
'rev-3':['rev-2', 'rev-1.1.1'],
60
self.assertEqual({'rev-1':(),
62
'rev-1.1.1':('rev-1', ),
63
'rev-3':('rev-2', 'rev-1.1.1', ),
78
66
def test_revision_ids_are_utf8(self):
367
355
result.report_results(verbose=False)
369
357
def test_get_commit_builder(self):
370
self.assertIsInstance(self.make_branch(".").get_commit_builder([]),
371
repository.CommitBuilder)
358
branch = self.make_branch(".")
360
builder = branch.get_commit_builder([])
361
self.assertIsInstance(builder, repository.CommitBuilder)
362
branch.repository.commit_write_group()
373
365
def test_generate_revision_history(self):
374
366
"""Create a fake revision history easily."""
389
381
tree_a = self.make_branch_and_tree('a')
390
382
branch_a = tree_a.branch
391
383
checkout_b = branch_a.create_checkout('b')
392
self.assertEqual(None, checkout_b.last_revision())
384
self.assertEqual('null:', checkout_b.last_revision())
393
385
checkout_b.commit('rev1', rev_id='rev1')
394
386
self.assertEqual('rev1', branch_a.last_revision())
395
387
self.assertNotEqual(checkout_b.branch.base, branch_a.base)