/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 breezy/tests/blackbox/test_send.py

  • Committer: Jelmer Vernooij
  • Date: 2018-07-17 21:20:55 UTC
  • mto: (7045.3.3 python3-r)
  • mto: This revision was merged to the branch mainline in revision 7050.
  • Revision ID: jelmer@jelmer.uk-20180717212055-apkv1s70oo6wpi6o
Fix a few more tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
50
50
                            error_regexes=err_re)
51
51
 
52
52
    def get_MD(self, args, cmd=None, wd='branch'):
53
 
        out = BytesIO(self.run_send(args, cmd=cmd, wd=wd)[0])
 
53
        md = self.run_send(args, cmd=cmd, wd=wd)[0]
 
54
        out = BytesIO(md.encode('utf-8'))
54
55
        return merge_directive.MergeDirective.from_lines(out)
55
56
 
56
57
    def assertBundleContains(self, revs, args, cmd=None, wd='branch'):
86
87
        self.assertContainsRe(errmsg, 'No submit branch known or specified')
87
88
        stdout, stderr = self.run_send([])
88
89
        self.assertEqual(stderr.count('Using saved parent location'), 1)
89
 
        self.assertBundleContains(['rev3'], [])
 
90
        self.assertBundleContains([b'rev3'], [])
90
91
 
91
92
    def test_bundle(self):
92
93
        """Bundle works like send, except -o is not required"""
94
95
        self.assertContainsRe(errmsg, 'No submit branch known or specified')
95
96
        stdout, stderr = self.run_send([], cmd=['bundle'])
96
97
        self.assertEqual(stderr.count('Using saved parent location'), 1)
97
 
        self.assertBundleContains(['rev3'], [], cmd=['bundle'])
 
98
        self.assertBundleContains([b'rev3'], [], cmd=['bundle'])
98
99
 
99
100
    def test_uses_submit(self):
100
101
        """Submit location can be used and set"""
101
 
        self.assertBundleContains(['rev3'], [])
102
 
        self.assertBundleContains(['rev3', 'rev2'], ['../grandparent'])
 
102
        self.assertBundleContains([b'rev3'], [])
 
103
        self.assertBundleContains([b'rev3', b'rev2'], ['../grandparent'])
103
104
        # submit location should be auto-remembered
104
 
        self.assertBundleContains(['rev3', 'rev2'], [])
 
105
        self.assertBundleContains([b'rev3', b'rev2'], [])
105
106
 
106
107
        self.run_send(['../parent'])
107
108
        # We still point to ../grandparent
108
 
        self.assertBundleContains(['rev3', 'rev2'], [])
 
109
        self.assertBundleContains([b'rev3', b'rev2'], [])
109
110
        # Remember parent now
110
111
        self.run_send(['../parent', '--remember'])
111
112
        # Now we point to parent
112
 
        self.assertBundleContains(['rev3'], [])
 
113
        self.assertBundleContains([b'rev3'], [])
113
114
 
114
115
        err = self.run_send(['--remember'], rc=3)[1]
115
116
        self.assertContainsRe(err,
116
 
                              b'--remember requires a branch to be specified.')
 
117
                              '--remember requires a branch to be specified.')
117
118
 
118
119
    def test_revision_branch_interaction(self):
119
 
        self.assertBundleContains(['rev3', 'rev2'], ['../grandparent'])
120
 
        self.assertBundleContains(['rev2'], ['../grandparent', '-r-2'])
121
 
        self.assertBundleContains(['rev3', 'rev2'],
 
120
        self.assertBundleContains([b'rev3', b'rev2'], ['../grandparent'])
 
121
        self.assertBundleContains([b'rev2'], ['../grandparent', '-r-2'])
 
122
        self.assertBundleContains([b'rev3', b'rev2'],
122
123
                                  ['../grandparent', '-r-2..-1'])
123
124
        md = self.get_MD(['-r-2..-1'])
124
 
        self.assertEqual('rev2', md.base_revision_id)
125
 
        self.assertEqual('rev3', md.revision_id)
 
125
        self.assertEqual(b'rev2', md.base_revision_id)
 
126
        self.assertEqual(b'rev3', md.revision_id)
126
127
 
127
128
    def test_output(self):
128
129
        # check output for consistency
129
130
        # win32 stdout converts LF to CRLF,
130
131
        # which would break patch-based bundles
131
 
        self.assertBundleContains(['rev3'], [])
 
132
        self.assertBundleContains([b'rev3'], [])
132
133
 
133
134
    def test_no_common_ancestor(self):
134
135
        foo = self.make_branch_and_tree('foo')
174
175
    def test_from_option(self):
175
176
        self.run_bzr('send', retcode=3)
176
177
        md = self.get_MD(['--from', 'branch'])
177
 
        self.assertEqual('rev3', md.revision_id)
 
178
        self.assertEqual(b'rev3', md.revision_id)
178
179
        md = self.get_MD(['-f', 'branch'])
179
 
        self.assertEqual('rev3', md.revision_id)
 
180
        self.assertEqual(b'rev3', md.revision_id)
180
181
 
181
182
    def test_output_option(self):
182
183
        stdout = self.run_bzr('send -f branch --output file1')[0]
183
184
        self.assertEqual('', stdout)
184
185
        md_file = open('file1', 'rb')
185
186
        self.addCleanup(md_file.close)
186
 
        self.assertContainsRe(md_file.read(), 'rev3')
 
187
        self.assertContainsRe(md_file.read(), b'rev3')
187
188
        stdout = self.run_bzr('send -f branch --output -')[0]
188
189
        self.assertContainsRe(stdout, 'rev3')
189
190
 
217
218
    def test_format(self):
218
219
        md = self.get_MD(['--format=4'])
219
220
        self.assertIs(merge_directive.MergeDirective2, md.__class__)
220
 
        self.assertFormatIs('# Bazaar revision bundle v4', md)
 
221
        self.assertFormatIs(b'# Bazaar revision bundle v4', md)
221
222
 
222
223
        md = self.get_MD(['--format=0.9'])
223
 
        self.assertFormatIs('# Bazaar revision bundle v0.9', md)
 
224
        self.assertFormatIs(b'# Bazaar revision bundle v0.9', md)
224
225
 
225
226
        md = self.get_MD(['--format=0.9'], cmd=['bundle'])
226
 
        self.assertFormatIs('# Bazaar revision bundle v0.9', md)
 
227
        self.assertFormatIs(b'# Bazaar revision bundle v0.9', md)
227
228
        self.assertIs(merge_directive.MergeDirective, md.__class__)
228
229
 
229
230
        self.run_bzr_error(['Bad value .* for option .format.'],
238
239
 
239
240
        conf.set('child_submit_format', '0.9')
240
241
        md = self.get_MD([])
241
 
        self.assertFormatIs('# Bazaar revision bundle v0.9', md)
 
242
        self.assertFormatIs(b'# Bazaar revision bundle v0.9', md)
242
243
 
243
244
        md = self.get_MD([], cmd=['bundle'])
244
 
        self.assertFormatIs('# Bazaar revision bundle v0.9', md)
 
245
        self.assertFormatIs(b'# Bazaar revision bundle v0.9', md)
245
246
        self.assertIs(merge_directive.MergeDirective, md.__class__)
246
247
 
247
248
        conf.set('child_submit_format', '0.999')
257
258
 
258
259
    def test_omitted_revision(self):
259
260
        md = self.get_MD(['-r-2..'])
260
 
        self.assertEqual('rev2', md.base_revision_id)
261
 
        self.assertEqual('rev3', md.revision_id)
 
261
        self.assertEqual(b'rev2', md.base_revision_id)
 
262
        self.assertEqual(b'rev3', md.revision_id)
262
263
        md = self.get_MD(['-r..3', '--from', 'branch', 'grandparent'], wd='.')
263
 
        self.assertEqual('rev1', md.base_revision_id)
264
 
        self.assertEqual('rev3', md.revision_id)
 
264
        self.assertEqual(b'rev1', md.base_revision_id)
 
265
        self.assertEqual(b'rev3', md.revision_id)
265
266
 
266
267
    def test_nonexistant_branch(self):
267
268
        self.vfs_transport_factory = memory.MemoryServer
287
288
 
288
289
    _default_command = ['send', '-o-', '../parent']
289
290
    _default_wd = 'local'
290
 
    _default_sent_revs = ['local']
291
 
    _default_errors = [b'Working tree ".*/local/" has uncommitted '
292
 
                       b'changes \\(See brz status\\)\\.',]
293
 
    _default_additional_error = b'Use --no-strict to force the send.\n'
294
 
    _default_additional_warning = b'Uncommitted changes will not be sent.'
 
291
    _default_sent_revs = [b'local']
 
292
    _default_errors = ['Working tree ".*/local/" has uncommitted '
 
293
                       'changes \\(See brz status\\)\\.',]
 
294
    _default_additional_error = 'Use --no-strict to force the send.\n'
 
295
    _default_additional_warning = 'Uncommitted changes will not be sent.'
295
296
 
296
297
    def set_config_send_strict(self, value):
297
298
        br = branch.Branch.open('local')
318
319
            self.assertEndsWith(err, bundling_revs)
319
320
        else:
320
321
            self.assertEqual(bundling_revs, err)
321
 
        md = merge_directive.MergeDirective.from_lines(BytesIO(out))
322
 
        self.assertEqual('parent', md.base_revision_id)
 
322
        md = merge_directive.MergeDirective.from_lines(BytesIO(out.encode('utf-8')))
 
323
        self.assertEqual(b'parent', md.base_revision_id)
323
324
        br = serializer.read_bundle(BytesIO(md.get_raw_bundle()))
324
325
        self.assertEqual(set(revs), set(r.revision_id for r in br.revisions))
325
326
 
404
405
        self._default_wd = 'checkout'
405
406
        self._default_errors = ["Working tree is out of date, please run"
406
407
                                " 'brz update'\\.",]
407
 
        self._default_sent_revs = ['modified-in-local', 'local']
 
408
        self._default_sent_revs = [b'modified-in-local', b'local']
408
409
 
409
410
    def test_send_default(self):
410
411
        self.assertSendSucceeds([], with_warning=True)
411
412
 
412
413
    def test_send_with_revision(self):
413
 
        self.assertSendSucceeds(['-r', 'revid:local'], revs=['local'])
 
414
        self.assertSendSucceeds(['-r', 'revid:local'], revs=[b'local'])
414
415
 
415
416
    def test_send_no_strict(self):
416
417
        self.assertSendSucceeds(['--no-strict'])