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
24
24
class TestShelveList(TestCaseWithTransport):
41
41
self.assertEqual('', err)
42
42
self.assertEqual(' 1: Foo\n', out)
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)
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'])
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())
78
70
def test_unshelve_keep(self):
85
77
sr = ScriptRunner()
86
78
sr.run_script(self, '''
89
$ brz shelve --all -m Foo
92
2>Changes shelved with id "1".
80
$ bzr shelve --all -m Foo
96
2>Using changes with id "1".
99
2>All changes applied successfully.
107
class TestUnshelvePreview(TestCaseWithTransport):
109
def test_non_ascii(self):
110
"""Test that we can show a non-ascii diff that would result from unshelving"""
112
init_content = u'Initial: \u0418\u0437\u043d\u0430\u0447\n'.encode(
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)
118
tree = self.make_branch_and_tree('.')
119
self.build_tree_contents([('a_file', init_content)])
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')
127
self.assertContainsString(out, diff_part)
130
92
class TestShelveRelpath(TestCaseWithTransport):
136
98
os.chdir('tree/dir')
137
99
self.run_bzr('shelve --all ../file')
139
def test_shelve_via_directory(self):
140
tree = self.make_branch_and_tree('tree')
141
self.build_tree(['tree/file', 'tree/dir/'])
143
self.run_bzr('shelve -d tree/dir --all ../file')
146
102
class TestShelveUnshelve(TestCaseWithTransport):
148
104
def test_directory(self):
149
105
"""Test --directory option"""
150
106
tree = self.make_branch_and_tree('tree')
151
self.build_tree_contents([('tree/a', b'initial\n')])
107
self.build_tree_contents([('tree/a', 'initial\n')])
153
109
tree.commit(message='committed')
154
self.build_tree_contents([('tree/a', b'initial\nmore\n')])
110
self.build_tree_contents([('tree/a', 'initial\nmore\n')])
155
111
self.run_bzr('shelve -d tree --all')
156
self.assertFileEqual(b'initial\n', 'tree/a')
112
self.assertFileEqual('initial\n', 'tree/a')
157
113
self.run_bzr('unshelve --directory tree')
158
self.assertFileEqual(b'initial\nmore\n', 'tree/a')
114
self.assertFileEqual('initial\nmore\n', 'tree/a')