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
20
21
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"""
27
26
def test_append_revisions(self):
28
from bzrlib.branch import Branch
27
"""Test appending more than one revision"""
29
28
br = Branch.initialize(".")
30
29
br.append_revision("rev1")
31
30
self.assertEquals(br.revision_history(), ["rev1",])
33
32
self.assertEquals(br.revision_history(), ["rev1", "rev2", "rev3"])
37
35
class TestFetch(TestCaseInTempDir):
38
37
def test_fetch_revisions(self):
39
38
"""Test fetch-revision operation."""
40
39
from bzrlib.fetch import Fetcher
56
55
tree = b2.revision_tree('revision-1')
57
56
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())
60
87
# TODO: rewrite this as a regular unittest, without relying on the displayed output
61
88
# >>> from bzrlib.commit import commit
62
89
# >>> bzrlib.trace.silent = True