~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/testbranch.py

  • Committer: Robert Collins
  • Date: 2005-09-28 09:35:50 UTC
  • mfrom: (1185.1.47)
  • Revision ID: robertc@robertcollins.net-20050928093550-3ca194dfaffc79f1
merge from integration

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
16
16
 
17
 
 
18
17
import os
19
 
 
 
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
23
23
 
 
24
class TestBranch(TestCaseInTempDir):
24
25
 
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"])
34
33
 
35
34
 
36
 
 
37
35
class TestFetch(TestCaseInTempDir):
 
36
 
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
57
 
59
 
 
 
58
    def test_push_stores(self):
 
59
        """Copy the stores from one branch to another"""
 
60
        os.mkdir('a')
 
61
        br_a = Branch.initialize("a")
 
62
        file('a/b', 'wb').write('b')
 
63
        br_a.add('b')
 
64
        commit(br_a, "silly commit")
 
65
 
 
66
        os.mkdir('b')
 
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])
 
73
        for file_id in tree:
 
74
            if tree.inventory[file_id].kind == "file":
 
75
                tree.get_file(file_id).read()
 
76
        return br_a, br_b
 
77
 
 
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")
 
82
        os.mkdir('c')
 
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