~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Vincent Ladeuil
  • Date: 2008-09-11 19:36:38 UTC
  • mfrom: (3703 +trunk)
  • mto: (3705.1.1 trunk2)
  • mto: This revision was merged to the branch mainline in revision 3708.
  • Revision ID: v.ladeuil+lp@free.fr-20080911193638-wtjyc1kcmacc6t1f
merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2010 Canonical Ltd
 
1
# Copyright (C) 2005, 2006, 2008 Canonical Ltd
2
2
#
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
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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
"""Test the uncommit command."""
18
18
 
22
22
from bzrlib.bzrdir import BzrDirMetaFormat1
23
23
from bzrlib.errors import BzrError, BoundBranchOutOfDate
24
24
from bzrlib.tests import TestCaseWithTransport
25
 
from bzrlib.tests.script import (
26
 
    run_script,
27
 
    ScriptRunner,
28
 
    )
29
25
 
30
26
 
31
27
class TestUncommit(TestCaseWithTransport):
64
60
        out, err = self.run_bzr('status')
65
61
        self.assertEquals(out, 'modified:\n  a\n')
66
62
 
67
 
    def test_uncommit_interactive(self):
68
 
        """Uncommit seeks confirmation, and doesn't proceed without it."""
69
 
        wt = self.create_simple_tree()
70
 
        os.chdir('tree')
71
 
        run_script(self, """    
72
 
        $ bzr uncommit
73
 
        ...
74
 
        The above revision(s) will be removed.
75
 
        2>Uncommit these revisions? [y/n]: 
76
 
        <n
77
 
        Canceled
78
 
        """)
79
 
        self.assertEqual(['a2'], wt.get_parent_ids())
80
 
 
81
63
    def test_uncommit_no_history(self):
82
64
        wt = self.make_branch_and_tree('tree')
83
65
        out, err = self.run_bzr('uncommit --force', retcode=1)
121
103
        uncommit.uncommit(b)
122
104
        self.assertEqual(len(b.revision_history()), 2)
123
105
        self.assertEqual(len(t_a.branch.revision_history()), 2)
124
 
        # update A's tree to not have the uncommitted revision referenced.
 
106
        # update A's tree to not have the uncomitted revision referenced.
125
107
        t_a.update()
126
108
        t_a.commit('commit 3b')
127
109
        self.assertRaises(BoundBranchOutOfDate, uncommit.uncommit, b)
234
216
    def test_uncommit_shows_log_with_revision_id(self):
235
217
        wt = self.create_simple_tree()
236
218
 
237
 
        script = ScriptRunner()
238
 
        script.run_script(self, """
239
 
$ cd tree
240
 
$ bzr uncommit --force 
241
 
    2 ...
242
 
      second commit
243
 
...
244
 
The above revision(s) will be removed.
245
 
You can restore the old tip by running:
246
 
  bzr pull . -r revid:a2
247
 
""")
 
219
        out, err = self.run_bzr('uncommit --force', working_dir='tree')
 
220
        self.assertContainsRe(out, r'second commit')
 
221
        self.assertContainsRe(err, r'You can restore the old tip by running')
 
222
        self.assertContainsRe(err, r'bzr pull . -r revid:a2')
248
223
 
249
224
    def test_uncommit_octopus_merge(self):
250
225
        # Check that uncommit keeps the pending merges in the same order
258
233
        tree3.commit('unchanged', rev_id='c3')
259
234
 
260
235
        wt.merge_from_branch(tree2.branch)
261
 
        wt.merge_from_branch(tree3.branch, force=True)
 
236
        wt.merge_from_branch(tree3.branch)
262
237
        wt.commit('merge b3, c3', rev_id='a3')
263
238
 
264
239
        tree2.commit('unchanged', rev_id='b4')
265
240
        tree3.commit('unchanged', rev_id='c4')
266
241
 
267
242
        wt.merge_from_branch(tree3.branch)
268
 
        wt.merge_from_branch(tree2.branch, force=True)
 
243
        wt.merge_from_branch(tree2.branch)
269
244
        wt.commit('merge b4, c4', rev_id='a4')
270
245
 
271
246
        self.assertEqual(['a4'], wt.get_parent_ids())