~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_ancestry.py

  • Committer: Robert Collins
  • Date: 2006-08-08 23:19:29 UTC
  • mfrom: (1884 +trunk)
  • mto: This revision was merged to the branch mainline in revision 1912.
  • Revision ID: robertc@robertcollins.net-20060808231929-4e3e298190214b3a
current status

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
from bzrlib.builtins import merge
20
20
from bzrlib.tests import TestCaseWithTransport
21
21
from bzrlib.workingtree import WorkingTree
 
22
from bzrlib.branch import Branch
22
23
 
23
24
 
24
25
class TestAncestry(TestCaseWithTransport):
25
26
 
26
 
    def test_ancestry(self):
27
 
        """Tests 'ancestry' command"""
 
27
    def _build_branches(self):
28
28
        a_wt = self.make_branch_and_tree('A')
29
29
        open('A/foo', 'wb').write('1111\n')
30
30
        a_wt.add('foo')
37
37
        a_wt.commit('modified A/foo',rev_id='A2')
38
38
        merge(['B',-1],['B',1],this_dir='A')
39
39
        a_wt.commit('merged B into A',rev_id='A3')
 
40
 
 
41
    def _check_ancestry(self, location='', result=None):
 
42
        out = self.capture('ancestry ' + location)
 
43
        if result is None:
 
44
            result = "A1\nB1\nA2\nA3\n"
 
45
        self.assertEqualDiff(out, result)
 
46
 
 
47
    def test_ancestry(self):
 
48
        """Tests 'ancestry' command"""
 
49
        self._build_branches()
40
50
        os.chdir('A')
41
 
        out, err = self.run_bzr('ancestry')
42
 
        self.assertEquals(err, '')
43
 
        self.assertEqualDiff(out,
44
 
"""A1
45
 
B1
46
 
A2
47
 
A3
48
 
""")
49
 
 
 
51
        self._check_ancestry()
 
52
 
 
53
    def test_ancestry_with_location(self):
 
54
        """Tests 'ancestry' command with a specified location."""
 
55
        self._build_branches()
 
56
        self._check_ancestry('A')
 
57
 
 
58
    def test_ancestry_with_repo_branch(self):
 
59
        """Tests 'ancestry' command with a location that is a
 
60
        repository branch."""
 
61
        self._build_branches()
 
62
        self.run_bzr('init-repo', 'repo')
 
63
        self.run_bzr('branch', 'A', 'repo/A')
 
64
        self._check_ancestry('repo/A')
 
65
 
 
66
    def test_ancestry_with_checkout(self):
 
67
        """Tests 'ancestry' command with a location that is a
 
68
        checkout of a repository branch."""
 
69
        self._build_branches()
 
70
        self.run_bzr('init-repo', 'repo')
 
71
        self.run_bzr('branch', 'A', 'repo/A')
 
72
        self.run_bzr('checkout', 'repo/A', 'A-checkout')
 
73
        self._check_ancestry('A-checkout')
 
74
 
 
75
    def test_ancestry_with_lightweight_checkout(self):
 
76
        """Tests 'ancestry' command with a location that is a
 
77
        lightweight checkout of a repository branch."""
 
78
        self._build_branches()
 
79
        self.run_bzr('init-repo', 'repo')
 
80
        self.run_bzr('branch', 'A', 'repo/A')
 
81
        self.run_bzr('checkout', '--lightweight', 'repo/A', 'A-checkout')
 
82
        self._check_ancestry('A-checkout')
 
83
 
 
84
    def test_ancestry_with_truncated_checkout(self):
 
85
        """Tests 'ancestry' command with a location that is a
 
86
        checkout of a repository branch with a shortened revision history."""
 
87
        self._build_branches()
 
88
        self.run_bzr('init-repo', 'repo')
 
89
        self.run_bzr('branch', 'A', 'repo/A')
 
90
        self.run_bzr('checkout', '-r', '2', 'repo/A', 'A-checkout')
 
91
        self._check_ancestry('A-checkout', "A1\nA2\n")
 
92
 
 
93
    def test_ancestry_with_truncated_lightweight_checkout(self):
 
94
        """Tests 'ancestry' command with a location that is a lightweight
 
95
        checkout of a repository branch with a shortened revision history."""
 
96
        self._build_branches()
 
97
        self.run_bzr('init-repo', 'repo')
 
98
        self.run_bzr('branch', 'A', 'repo/A')
 
99
        self.run_bzr('checkout', '-r', '2', '--lightweight',
 
100
                'repo/A', 'A-checkout')
 
101
        self._check_ancestry('A-checkout', "A1\nA2\n")