~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Andrew Bennetts
  • Date: 2009-09-08 08:09:25 UTC
  • mto: (4634.6.27 2.0)
  • mto: This revision was merged to the branch mainline in revision 4680.
  • Revision ID: andrew.bennetts@canonical.com-20090908080925-ccmjw4kzzz7bepg7
Fix more tests to cope with new commit_write_group strictness.

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
18
18
 
19
19
import os
20
20
 
21
 
from bzrlib import uncommit
 
21
from bzrlib import uncommit, workingtree
22
22
from bzrlib.bzrdir import BzrDirMetaFormat1
23
 
from bzrlib.errors import BoundBranchOutOfDate
 
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)
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())
280
255
        tree.commit(u'\u1234 message')
281
256
        out, err = self.run_bzr('uncommit --force tree', encoding='ascii')
282
257
        self.assertContainsRe(out, r'\? message')
283
 
 
284
 
    def test_uncommit_removes_tags(self):
285
 
        tree = self.make_branch_and_tree('tree')
286
 
        revid = tree.commit('message')
287
 
        tree.branch.tags.set_tag("atag", revid)
288
 
        out, err = self.run_bzr('uncommit --force tree')
289
 
        self.assertEquals({}, tree.branch.tags.get_tag_dict())
290
 
 
291
 
    def test_uncommit_keep_tags(self):
292
 
        tree = self.make_branch_and_tree('tree')
293
 
        revid = tree.commit('message')
294
 
        tree.branch.tags.set_tag("atag", revid)
295
 
        out, err = self.run_bzr('uncommit --keep-tags --force tree')
296
 
        self.assertEquals({"atag": revid}, tree.branch.tags.get_tag_dict())