18
15
+goodbye test world
21
DIFF_2 = """--- test_file\t
30
18
def test_shelf(self):
31
19
from bzrlib.branch import Branch
32
from bzrlib.workingtree import WorkingTree
33
20
b = Branch.initialize('.')
34
tree = WorkingTree(b.base, b)
36
22
# Create a test file and commit it
37
23
file('test_file', 'w').write(self.ORIGINAL)
39
tree.commit(message='add test_file')
25
b.commit(message='add test_file')
41
27
# Modify the test file
42
28
file('test_file', 'w').write(self.MODIFIED)
44
30
# Check the diff is right
45
self.assertEqual(self.capture('diff', retcode=1),
46
self.DIFF_HEADER + self.DIFF_1 + '\n')
31
self.assertEqual(self.capture('diff'),
32
self.DIFF_HEADER + self.DIFF + '\n')
48
34
# Shelve the changes
49
self.run_bzr('shelve', '--all', retcode=1)
35
self.run_bzr('shelve', '--all', retcode=True)
51
37
# Make sure there is no diff anymore
52
38
self.assertEqual(self.capture('diff'), '')
57
43
# Check the shelf is right
58
44
shelf = file('.bzr-shelf').read()
59
self.assertEqual(shelf, self.DIFF_1)
45
self.assertEqual(shelf, self.DIFF)
62
self.run_bzr('unshelve', retcode=1)
48
self.run_bzr('unshelve', retcode=True)
64
50
# Check the diff is right again
65
self.assertEqual(self.capture('diff', retcode=1),
66
self.DIFF_HEADER + self.DIFF_1 + '\n')
51
self.assertEqual(self.capture('diff'),
52
self.DIFF_HEADER + self.DIFF + '\n')
68
54
# Make sure the file is back the way it should be
69
55
self.assertEqual(file('test_file').read(), self.MODIFIED)
71
57
def test_shelf_nothing_to_shelve(self):
72
59
from bzrlib.branch import Branch
73
from bzrlib.workingtree import WorkingTree
74
60
b = Branch.initialize('.')
75
tree = WorkingTree(b.base, b)
77
62
# Create a test file and commit it
78
63
file('test_file', 'w').write(self.ORIGINAL)
80
tree.commit(message='add test_file')
65
b.commit(message='add test_file')
82
67
# Shelve the changes
83
self.run_bzr('shelve', '--all')
68
self.run_bzr('shelve', '--all', retcode=True)
85
70
if os.path.exists('.bzr-shelf'):
86
71
self.fail("Shelf exists, but it shouldn't")
88
def test_shelf_with_revision(self):
89
from bzrlib.branch import Branch
90
from bzrlib.workingtree import WorkingTree
91
b = Branch.initialize('.')
92
tree = WorkingTree(b.base, b)
94
# Create a test file and commit it
95
file('test_file', 'w').write(self.ORIGINAL)
97
tree.commit(message='add test_file')
99
# Modify the test file and commit it
100
file('test_file', 'w').write(self.MODIFIED)
101
tree.commit(message='update test_file')
104
self.run_bzr('shelve', '-r', '1', '--all', retcode=1)
106
# Check the diff is right
107
self.assertEqual(self.capture('diff', retcode=1),
108
self.DIFF_HEADER + self.DIFF_2 + '\n')
110
# Make sure the file is the way it should be
111
self.assertEqual(file('test_file').read(), self.ORIGINAL)
114
self.run_bzr('unshelve', retcode=1)
116
# Make sure the file is back the way it should be
117
self.assertEqual(file('test_file').read(), self.MODIFIED)
119
def test_shelf_with_two_revisions(self):
120
from bzrlib.branch import Branch
121
b = Branch.initialize('.')
123
cmd = 'shelve -r 1..2'
124
(stdout, stderr) = self.run_bzr_captured(cmd.split(), retcode=None)
126
self.assertEqual(stderr.split('\n')[0],
127
'bzr: ERROR: bzrlib.errors.BzrCommandError: shelve only accepts a single revision parameter.')
129
def test_shelf_with_whitespace(self):
130
"""Shows that bzr doesn't handle whitespace well"""
132
file('file name', 'wb').write('hello')
134
self.run_bzr('commit', '-m', 'added')
135
file('file name', 'wb').write('goodbye')
136
self.run_bzr('shelve', '--all', 'file name', retcode=1)
138
def test_whitespace_branches(self):
139
os.mkdir('name with space')
140
os.chdir('name with space')
142
file('filename', 'wb').write('hello')
144
self.run_bzr('commit', '-m', 'added')
145
file('filename', 'wb').write('goodbye')
146
self.run_bzr('shelve', '--all', 'filename', retcode=1)