~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_status.py

NEWS section template into a separate file

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
 
18
18
from StringIO import StringIO
42
42
            tree2.unlock()
43
43
        self.assertContainsRe(output.getvalue(), 'empty commit')
44
44
 
45
 
    def test_multiple_pending(self):
 
45
    def make_multiple_pending_tree(self):
46
46
        config.GlobalConfig().set_user_option('email', 'Joe Foo <joe@foo.com>')
47
47
        tree = self.make_branch_and_tree('a')
48
48
        tree.commit('commit 1', timestamp=1196796819, timezone=0)
54
54
        tree3.commit('commit 3c', timestamp=1196796819, timezone=0)
55
55
        tree.merge_from_branch(tree2.branch)
56
56
        tree.merge_from_branch(tree3.branch)
 
57
        return tree
 
58
 
 
59
    def test_multiple_pending(self):
 
60
        tree = self.make_multiple_pending_tree()
57
61
        output = StringIO()
58
62
        tree.lock_read()
59
63
        self.addCleanup(tree.unlock)
60
64
        show_pending_merges(tree, output)
 
65
        # 2b doesn't appear because it's an ancestor of 3b
 
66
        self.assertEqualDiff(
 
67
            'pending merge tips: (use -v to see all merge revisions)\n'
 
68
            '  Joe Foo 2007-12-04 commit 3b\n'
 
69
            '  Joe Foo 2007-12-04 commit 3c\n',
 
70
            output.getvalue())
 
71
 
 
72
    def test_multiple_pending_verbose(self):
 
73
        tree = self.make_multiple_pending_tree()
 
74
        output = StringIO()
 
75
        tree.lock_read()
 
76
        self.addCleanup(tree.unlock)
 
77
        show_pending_merges(tree, output, verbose=True)
61
78
        # Even though 2b is in the ancestry of 3c, it should only be displayed
62
79
        # under the first merge parent.
63
80
        self.assertEqualDiff('pending merges:\n'
75
92
        self.addCleanup(tree.unlock)
76
93
        output = StringIO()
77
94
        show_pending_merges(tree, output)
78
 
        self.assertEqualDiff('pending merges:\n'
79
 
                             '  (ghost) a-ghost-revision\n',
80
 
                             output.getvalue())
 
95
        self.assertEqualDiff(
 
96
            'pending merge tips: (use -v to see all merge revisions)\n'
 
97
            '  (ghost) a-ghost-revision\n',
 
98
            output.getvalue())
81
99
 
82
100
    def test_pending_with_ghosts(self):
83
101
        """Test when a pending merge's ancestry includes ghosts."""
93
111
        tree.lock_read()
94
112
        self.addCleanup(tree.unlock)
95
113
        output = StringIO()
96
 
        show_pending_merges(tree, output)
 
114
        show_pending_merges(tree, output, verbose=True)
97
115
        self.assertEqualDiff('pending merges:\n'
98
116
                             '  Joe Foo 2007-12-04 another non-ghost\n'
99
 
                             '    Joe Foo 2007-12-04 commit with ghost\n'
 
117
                             '    Joe Foo 2007-12-04 [merge] commit with ghost\n'
100
118
                             '    (ghost) a-ghost-revision\n'
101
119
                             '    Joe Foo 2007-12-04 a non-ghost\n',
102
120
                             output.getvalue())
112
130
                     revision=[RevisionSpec.from_string("revid:%s" % r1_id),
113
131
                               RevisionSpec.from_string("revid:%s" % r2_id)])
114
132
        # return does not matter as long as it did not raise.
115
 
 
116
 
    def test_pending_specific_files(self):
117
 
        """With a specific file list, pending merges are not shown."""
118
 
        tree = self.make_branch_and_tree('tree')
119
 
        self.build_tree_contents([('tree/a', 'content of a\n')])
120
 
        tree.add('a')
121
 
        r1_id = tree.commit('one')
122
 
        alt = tree.bzrdir.sprout('alt').open_workingtree()
123
 
        self.build_tree_contents([('alt/a', 'content of a\nfrom alt\n')])
124
 
        alt_id = alt.commit('alt')
125
 
        tree.merge_from_branch(alt.branch)
126
 
        output = StringIO()
127
 
        show_tree_status(tree, to_file=output)
128
 
        self.assertContainsRe(output.getvalue(), 'pending merges:')
129
 
        output = StringIO()
130
 
        show_tree_status(tree, to_file=output, specific_files=['a'])
131
 
        self.assertNotContainsRe(output.getvalue(), 'pending merges:')