~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Jelmer Vernooij
  • Date: 2011-12-05 14:12:23 UTC
  • mto: This revision was merged to the branch mainline in revision 6348.
  • Revision ID: jelmer@samba.org-20111205141223-8qxae4h37satlzgq
Move more functionality to vf_search.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
import os
20
20
 
21
 
from bzrlib import uncommit, workingtree
 
21
from bzrlib import uncommit
22
22
from bzrlib.bzrdir import BzrDirMetaFormat1
23
 
from bzrlib.errors import BzrError, BoundBranchOutOfDate
 
23
from bzrlib.errors import BoundBranchOutOfDate
24
24
from bzrlib.tests import TestCaseWithTransport
25
 
from bzrlib.tests.script import ScriptRunner
 
25
from bzrlib.tests.script import (
 
26
    run_script,
 
27
    ScriptRunner,
 
28
    )
26
29
 
27
30
 
28
31
class TestUncommit(TestCaseWithTransport):
61
64
        out, err = self.run_bzr('status')
62
65
        self.assertEquals(out, 'modified:\n  a\n')
63
66
 
 
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]es, [n]o): no
 
76
        <n
 
77
        Canceled
 
78
        """)
 
79
        self.assertEqual(['a2'], wt.get_parent_ids())
 
80
 
64
81
    def test_uncommit_no_history(self):
65
82
        wt = self.make_branch_and_tree('tree')
66
83
        out, err = self.run_bzr('uncommit --force', retcode=1)
102
119
        t_a.commit('commit 3')
103
120
        b = t_a.branch.create_checkout('b').branch
104
121
        uncommit.uncommit(b)
105
 
        self.assertEqual(len(b.revision_history()), 2)
106
 
        self.assertEqual(len(t_a.branch.revision_history()), 2)
 
122
        self.assertEqual(b.last_revision_info()[0], 2)
 
123
        self.assertEqual(t_a.branch.last_revision_info()[0], 2)
107
124
        # update A's tree to not have the uncommitted revision referenced.
108
125
        t_a.update()
109
126
        t_a.commit('commit 3b')
263
280
        tree.commit(u'\u1234 message')
264
281
        out, err = self.run_bzr('uncommit --force tree', encoding='ascii')
265
282
        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())