/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

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

  • Committer: Robert Collins
  • Date: 2010-05-06 23:41:35 UTC
  • mto: This revision was merged to the branch mainline in revision 5223.
  • Revision ID: robertc@robertcollins.net-20100506234135-yivbzczw1sejxnxc
Lock methods on ``Tree``, ``Branch`` and ``Repository`` are now
expected to return an object which can be used to unlock them. This reduces
duplicate code when using cleanups. The previous 'tokens's returned by
``Branch.lock_write`` and ``Repository.lock_write`` are now attributes
on the result of the lock_write. ``repository.RepositoryWriteLockResult``
and ``branch.BranchWriteLockResult`` document this. (Robert Collins)

``log._get_info_for_log_files`` now takes an add_cleanup callable.
(Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
import os
18
18
 
19
 
from breezy import shelf
20
 
from breezy.tests import TestCaseWithTransport
21
 
from breezy.tests.script import ScriptRunner
 
19
from bzrlib import shelf
 
20
from bzrlib.tests import TestCaseWithTransport
 
21
from bzrlib.tests.script import ScriptRunner
22
22
 
23
23
 
24
24
class TestShelveList(TestCaseWithTransport):
41
41
        self.assertEqual('', err)
42
42
        self.assertEqual('  1: Foo\n', out)
43
43
 
44
 
    def test_shelve_list_via_directory(self):
45
 
        tree = self.make_branch_and_tree('tree')
46
 
        creator = self.make_creator(tree)
47
 
        shelf_id = tree.get_shelf_manager().shelve_changes(creator, 'Foo')
48
 
        out, err = self.run_bzr('shelve -d tree --list', retcode=1)
49
 
        self.assertEqual('', err)
50
 
        self.assertEqual('  1: Foo\n', out)
51
 
 
52
44
    def test_shelve_no_message(self):
53
45
        tree = self.make_branch_and_tree('.')
54
46
        creator = self.make_creator(tree)
72
64
        self.build_tree(['file'])
73
65
        tree.add('file')
74
66
        self.run_bzr('shelve --all --destroy')
75
 
        self.assertPathDoesNotExist('file')
 
67
        self.failIfExists('file')
76
68
        self.assertIs(None, tree.get_shelf_manager().last_shelf())
77
69
 
78
70
    def test_unshelve_keep(self):
79
 
        # https://bugs.launchpad.net/bzr/+bug/492091
 
71
        # https://bugs.edge.launchpad.net/bzr/+bug/492091
80
72
        tree = self.make_branch_and_tree('.')
81
73
        # shelve apparently unhappy working with a tree with no root yet
82
74
        tree.commit('make root')
84
76
 
85
77
        sr = ScriptRunner()
86
78
        sr.run_script(self, '''
87
 
$ brz add file
88
 
adding file
89
 
$ brz shelve --all -m Foo
90
 
2>Selected changes:
91
 
2>-D  file
92
 
2>Changes shelved with id "1".
93
 
$ brz shelve --list
 
79
$ bzr add file
 
80
$ bzr shelve --all -m Foo
 
81
$ bzr shelve --list
94
82
  1: Foo
95
 
$ brz unshelve --keep
96
 
2>Using changes with id "1".
97
 
2>Message: Foo
98
 
2>+N  file
99
 
2>All changes applied successfully.
100
 
$ brz shelve --list
 
83
$ bzr unshelve --keep
 
84
$ bzr shelve --list
101
85
  1: Foo
102
86
$ cat file
103
87
contents of file
104
88
''')
105
89
 
106
90
 
107
 
class TestUnshelvePreview(TestCaseWithTransport):
108
 
 
109
 
    def test_non_ascii(self):
110
 
        """Test that we can show a non-ascii diff that would result from unshelving"""
111
 
 
112
 
        init_content = u'Initial: \u0418\u0437\u043d\u0430\u0447\n'.encode(
113
 
            'utf-8')
114
 
        more_content = u'More: \u0415\u0449\u0451\n'.encode('utf-8')
115
 
        next_content = init_content + more_content
116
 
        diff_part = b'@@ -1,1 +1,2 @@\n %s+%s' % (init_content, more_content)
117
 
 
118
 
        tree = self.make_branch_and_tree('.')
119
 
        self.build_tree_contents([('a_file', init_content)])
120
 
        tree.add('a_file')
121
 
        tree.commit(message='committed')
122
 
        self.build_tree_contents([('a_file', next_content)])
123
 
        self.run_bzr(['shelve', '--all'])
124
 
        out, err = self.run_bzr_raw(
125
 
            ['unshelve', '--preview'], encoding='latin-1')
126
 
 
127
 
        self.assertContainsString(out, diff_part)
128
 
 
129
91
 
130
92
class TestShelveRelpath(TestCaseWithTransport):
131
93
 
135
97
        tree.add('file')
136
98
        os.chdir('tree/dir')
137
99
        self.run_bzr('shelve --all ../file')
138
 
 
139
 
    def test_shelve_via_directory(self):
140
 
        tree = self.make_branch_and_tree('tree')
141
 
        self.build_tree(['tree/file', 'tree/dir/'])
142
 
        tree.add('file')
143
 
        self.run_bzr('shelve -d tree/dir --all ../file')
144
 
 
145
 
 
146
 
class TestShelveUnshelve(TestCaseWithTransport):
147
 
 
148
 
    def test_directory(self):
149
 
        """Test --directory option"""
150
 
        tree = self.make_branch_and_tree('tree')
151
 
        self.build_tree_contents([('tree/a', b'initial\n')])
152
 
        tree.add('a')
153
 
        tree.commit(message='committed')
154
 
        self.build_tree_contents([('tree/a', b'initial\nmore\n')])
155
 
        self.run_bzr('shelve -d tree --all')
156
 
        self.assertFileEqual(b'initial\n', 'tree/a')
157
 
        self.run_bzr('unshelve --directory tree')
158
 
        self.assertFileEqual(b'initial\nmore\n', 'tree/a')