35
35
def make_trees(self):
36
36
grandparent_tree = BzrDir.create_standalone_workingtree('grandparent')
37
self.build_tree_contents([('grandparent/file1', 'grandparent')])
38
grandparent_tree.add('file1')
37
39
grandparent_tree.commit('initial commit', rev_id='revision1')
38
40
parent_bzrdir = grandparent_tree.bzrdir.sprout('parent')
39
41
parent_tree = parent_bzrdir.open_workingtree()
40
42
parent_tree.commit('next commit', rev_id='revision2')
41
43
branch_tree = parent_tree.bzrdir.sprout('branch').open_workingtree()
44
self.build_tree_contents([('branch/file1', 'branch')])
42
45
branch_tree.commit('last commit', rev_id='revision3')
44
47
def test_uses_parent(self):
53
56
br = read_bundle(StringIO(stdout))
54
57
self.assertRevisions(br, ['revision3'])
59
def test_bundle(self):
60
"""Bundle works like send, except -o is not required"""
62
os.chdir('grandparent')
63
errmsg = self.run_bzr('bundle', retcode=3)[1]
64
self.assertContainsRe(errmsg, 'No submit branch known or specified')
66
stdout, stderr = self.run_bzr('bundle')
67
self.assertEqual(stderr.count('Using saved location'), 1)
68
br = read_bundle(StringIO(stdout))
69
self.assertRevisions(br, ['revision3'])
56
71
def assertRevisions(self, bi, expected):
57
72
self.assertEqual(set(r.revision_id for r in bi.revisions),
124
139
md = self.send_directive([])
125
140
self.assertIsNot(None, md.bundle)
126
141
self.assertIsNot(None, md.patch)
143
md = self.send_directive(['--format=0.9'])
144
self.assertIsNot(None, md.bundle)
145
self.assertIsNot(None, md.patch)
127
147
md = self.send_directive(['--no-patch'])
128
148
self.assertIsNot(None, md.bundle)
129
149
self.assertIs(None, md.patch)
150
self.run_bzr_error(['Format 0.9 does not permit bundle with no patch'],
151
'send --no-patch --format=0.9 -o-')
130
153
md = self.send_directive(['--no-bundle', '.', '.'])
131
154
self.assertIs(None, md.bundle)
132
155
self.assertIsNot(None, md.patch)
157
md = self.send_directive(['--no-bundle', '--format=0.9', '../parent',
159
self.assertIs(None, md.bundle)
160
self.assertIsNot(None, md.patch)
133
162
md = self.send_directive(['--no-bundle', '--no-patch', '.', '.'])
134
163
self.assertIs(None, md.bundle)
135
164
self.assertIs(None, md.patch)
166
md = self.send_directive(['--no-bundle', '--no-patch', '--format=0.9',
168
self.assertIs(None, md.bundle)
169
self.assertIs(None, md.patch)
137
171
def test_from_option(self):
138
172
self.make_trees()
139
173
self.run_bzr('send', retcode=3)
156
190
self.make_trees()
157
191
self.run_bzr_error(('File must be specified with --output',),
158
192
'send -f branch')
194
def test_format(self):
196
s = StringIO(self.run_bzr('send -f branch -o- --format=4')[0])
197
md = merge_directive.MergeDirective.from_lines(s.readlines())
198
self.assertIs(merge_directive.MergeDirective2, md.__class__)
199
s = StringIO(self.run_bzr('send -f branch -o- --format=0.9')[0])
200
md = merge_directive.MergeDirective.from_lines(s.readlines())
201
self.assertContainsRe(md.get_raw_bundle().splitlines()[0],
202
'# Bazaar revision bundle v0.9')
203
s = StringIO(self.run_bzr('bundle -f branch -o- --format=0.9')[0])
204
md = merge_directive.MergeDirective.from_lines(s.readlines())
205
self.assertContainsRe(md.get_raw_bundle().splitlines()[0],
206
'# Bazaar revision bundle v0.9')
207
self.assertIs(merge_directive.MergeDirective, md.__class__)
208
self.run_bzr_error(['Bad value .* for option .format.'],
209
'send -f branch -o- --format=0.999')[0]