/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_branch.py

  • Committer: Breezy landing bot
  • Author(s): Jelmer Vernooij
  • Date: 2018-07-14 19:47:11 UTC
  • mfrom: (7027.4.12 python3-blackbox)
  • Revision ID: breezy.the.bot@gmail.com-20180714194711-h73vd0gzphiab6vf
Change run_bzr to use StringIOWithEncoding for stderr and stdout on python 3.

Merged from https://code.launchpad.net/~jelmer/brz/python3-blackbox/+merge/349090

Show diffs side-by-side

added added

removed removed

Lines of Context:
83
83
        self.assertEqual(
84
84
            """Created a standalone tree (format: development-colo)\n""",
85
85
            out)
86
 
        self.assertEqual(b'', err)
 
86
        self.assertEqual('', err)
87
87
        out, err = self.run_bzr(
88
88
            'branch a file:b,branch=thiswasa')
89
 
        self.assertEqual(b'', out)
90
 
        self.assertEqual(b'Branched 2 revisions.\n', err)
 
89
        self.assertEqual('', out)
 
90
        self.assertEqual('Branched 2 revisions.\n', err)
91
91
        out, err = self.run_bzr('branches b')
92
 
        self.assertEqual(b"  orig\n  thiswasa\n", out)
93
 
        self.assertEqual(b'', err)
 
92
        self.assertEqual("  orig\n  thiswasa\n", out)
 
93
        self.assertEqual('', err)
94
94
        out, err = self.run_bzr('branch a file:b,branch=orig', retcode=3)
95
 
        self.assertEqual(b'', out)
 
95
        self.assertEqual('', out)
96
96
        self.assertEqual(
97
 
            b'brz: ERROR: Already a branch: "file:b,branch=orig".\n', err)
 
97
            'brz: ERROR: Already a branch: "file:b,branch=orig".\n', err)
98
98
 
99
99
    def test_from_colocated(self):
100
100
        """Branch from a colocated branch into a regular branch."""
102
102
        tree.controldir.create_branch(name='somecolo')
103
103
        out, err = self.run_bzr('branch %s,branch=somecolo' %
104
104
            local_path_to_url('a'))
105
 
        self.assertEqual(b'', out)
106
 
        self.assertEqual(b'Branched 0 revisions.\n', err)
 
105
        self.assertEqual('', out)
 
106
        self.assertEqual('Branched 0 revisions.\n', err)
107
107
        self.assertPathExists("somecolo")
108
108
 
109
109
    def test_branch_broken_pack(self):
124
124
            else:
125
125
                corrupt = b'\xFF'
126
126
            f.write(corrupt) # make sure we corrupt something
127
 
        self.run_bzr_error([b'Corruption while decompressing repository file'],
 
127
        self.run_bzr_error(['Corruption while decompressing repository file'],
128
128
                            'branch a b', retcode=3)
129
129
 
130
130
    def test_branch_switch_no_branch(self):
132
132
        #  => new branch will be created, but switch fails
133
133
        self.example_branch('a')
134
134
        self.make_repository('current')
135
 
        self.run_bzr_error([b'No WorkingTree exists for'],
 
135
        self.run_bzr_error(['No WorkingTree exists for'],
136
136
            'branch --switch ../a ../b', working_dir='current')
137
137
        a = branch.Branch.open('a')
138
138
        b = branch.Branch.open('b')
144
144
        #     branch is unmodified
145
145
        self.example_branch('a')
146
146
        self.make_branch('current')
147
 
        self.run_bzr_error([b'No WorkingTree exists for'],
 
147
        self.run_bzr_error(['No WorkingTree exists for'],
148
148
            'branch --switch ../a ../b', working_dir='current')
149
149
        a = branch.Branch.open('a')
150
150
        b = branch.Branch.open('b')
159
159
        self.example_branch('a')
160
160
        tree = self.make_branch_and_tree('current')
161
161
        c1 = tree.commit('some diverged change')
162
 
        self.run_bzr_error([b'Cannot switch a branch, only a checkout'],
 
162
        self.run_bzr_error(['Cannot switch a branch, only a checkout'],
163
163
            'branch --switch ../a ../b', working_dir='current')
164
164
        a = branch.Branch.open('a')
165
165
        b = branch.Branch.open('b')
185
185
        self.assertEqual(a.last_revision(), b.last_revision())
186
186
        work = WorkingTree.open('current')
187
187
        self.assertEndsWith(work.branch.get_bound_location(), '/b/')
188
 
        self.assertContainsRe(err, b"Switched to branch: .*/b/")
 
188
        self.assertContainsRe(err, "Switched to branch: .*/b/")
189
189
 
190
190
    def test_branch_switch_lightweight_checkout(self):
191
191
        # Lightweight checkout in the current directory:
200
200
        self.assertEqual(a.last_revision(), b.last_revision())
201
201
        work = WorkingTree.open('current')
202
202
        self.assertEndsWith(work.branch.base, '/b/')
203
 
        self.assertContainsRe(err, b"Switched to branch: .*/b/")
 
203
        self.assertContainsRe(err, "Switched to branch: .*/b/")
204
204
 
205
205
    def test_branch_only_copies_history(self):
206
206
        # Knit branches should only push the history for the current revision.
296
296
        self.build_tree_contents([('b/goodbye', b'baz')])# same content
297
297
        # fails without --use-existing-dir
298
298
        out, err = self.run_bzr('branch a b', retcode=3)
299
 
        self.assertEqual(b'', out)
300
 
        self.assertEqual(b'brz: ERROR: Target directory "b" already exists.\n',
 
299
        self.assertEqual('', out)
 
300
        self.assertEqual('brz: ERROR: Target directory "b" already exists.\n',
301
301
            err)
302
302
        # force operation
303
303
        self.run_bzr('branch a b --use-existing-dir')
306
306
        self.assertPathDoesNotExist('b/godbye.moved')
307
307
        # we can't branch into branch
308
308
        out, err = self.run_bzr('branch a b --use-existing-dir', retcode=3)
309
 
        self.assertEqual(b'', out)
310
 
        self.assertEqual(b'brz: ERROR: Already a branch: "b".\n', err)
 
309
        self.assertEqual('', out)
 
310
        self.assertEqual('brz: ERROR: Already a branch: "b".\n', err)
311
311
 
312
312
    def test_branch_bind(self):
313
313
        self.example_branch('a')
314
314
        out, err = self.run_bzr('branch a b --bind')
315
 
        self.assertEndsWith(err, b"New branch bound to a\n")
 
315
        self.assertEndsWith(err, "New branch bound to a\n")
316
316
        b = branch.Branch.open('b')
317
317
        self.assertEndsWith(b.get_bound_location(), '/a/')
318
318
 
394
394
        # branching our local branch gives us a new stacked branch pointing at
395
395
        # mainline.
396
396
        out, err = self.run_bzr(['branch', 'branch', 'newbranch'])
397
 
        self.assertEqual(b'', out)
398
 
        self.assertEqual(b'Branched 2 revisions.\n',
 
397
        self.assertEqual('', out)
 
398
        self.assertEqual('Branched 2 revisions.\n',
399
399
            err)
400
400
        # it should have preserved the branch format, and so it should be
401
401
        # capable of supporting stacking, but not actually have a stacked_on
419
419
        work_tree.branch.push(branch_tree.branch)
420
420
        # you can chain branches on from there
421
421
        out, err = self.run_bzr(['branch', 'branch', '--stacked', 'branch2'])
422
 
        self.assertEqual(b'', out)
423
 
        self.assertEqual(b'Created new stacked branch referring to %s.\n' %
424
 
            branch_tree.branch.base.encode('utf-8'), err)
 
422
        self.assertEqual('', out)
 
423
        self.assertEqual('Created new stacked branch referring to %s.\n' %
 
424
            branch_tree.branch.base, err)
425
425
        self.assertEqual(branch_tree.branch.base,
426
426
            branch.Branch.open('branch2').get_stacked_on_url())
427
427
        branch2_tree = WorkingTree.open('branch2')
441
441
        # and a branch from it which is stacked
442
442
        out, err = self.run_bzr(['branch', '--stacked', 'mainline',
443
443
            'newbranch'])
444
 
        self.assertEqual(b'', out)
445
 
        self.assertEqual(b'Created new stacked branch referring to %s.\n' %
446
 
            trunk_tree.branch.base.encode('utf-8'), err)
 
444
        self.assertEqual('', out)
 
445
        self.assertEqual('Created new stacked branch referring to %s.\n' %
 
446
            trunk_tree.branch.base, err)
447
447
        self.assertRevisionNotInRepository('newbranch', original_revid)
448
448
        new_branch = branch.Branch.open('newbranch')
449
449
        self.assertEqual(trunk_tree.branch.base,
463
463
            ['branch', '--stacked', 'trunk', 'shallow'])
464
464
        # We should notify the user that we upgraded their format
465
465
        self.assertEqualDiff(
466
 
            b'Source repository format does not support stacking, using format:\n'
467
 
            b'  Packs 5 (adds stacking support, requires bzr 1.6)\n'
468
 
            b'Source branch format does not support stacking, using format:\n'
469
 
            b'  Branch format 7\n'
470
 
            b'Doing on-the-fly conversion from RepositoryFormatKnitPack1() to RepositoryFormatKnitPack5().\n'
471
 
            b'This may take some time. Upgrade the repositories to the same format for better performance.\n'
472
 
            b'Created new stacked branch referring to %s.\n' %
473
 
            (trunk.base.encode('utf-8'),),
 
466
            'Source repository format does not support stacking, using format:\n'
 
467
            '  Packs 5 (adds stacking support, requires bzr 1.6)\n'
 
468
            'Source branch format does not support stacking, using format:\n'
 
469
            '  Branch format 7\n'
 
470
            'Doing on-the-fly conversion from RepositoryFormatKnitPack1() to RepositoryFormatKnitPack5().\n'
 
471
            'This may take some time. Upgrade the repositories to the same format for better performance.\n'
 
472
            'Created new stacked branch referring to %s.\n' %
 
473
            (trunk.base,),
474
474
            err)
475
475
 
476
476
    def test_branch_stacked_from_rich_root_non_stackable(self):
479
479
            ['branch', '--stacked', 'trunk', 'shallow'])
480
480
        # We should notify the user that we upgraded their format
481
481
        self.assertEqualDiff(
482
 
            b'Source repository format does not support stacking, using format:\n'
483
 
            b'  Packs 5 rich-root (adds stacking support, requires bzr 1.6.1)\n'
484
 
            b'Source branch format does not support stacking, using format:\n'
485
 
            b'  Branch format 7\n'
486
 
            b'Doing on-the-fly conversion from RepositoryFormatKnitPack4() to RepositoryFormatKnitPack5RichRoot().\n'
487
 
            b'This may take some time. Upgrade the repositories to the same format for better performance.\n'
488
 
            b'Created new stacked branch referring to %s.\n' % (trunk.base.encode('utf-8'),),
 
482
            'Source repository format does not support stacking, using format:\n'
 
483
            '  Packs 5 rich-root (adds stacking support, requires bzr 1.6.1)\n'
 
484
            'Source branch format does not support stacking, using format:\n'
 
485
            '  Branch format 7\n'
 
486
            'Doing on-the-fly conversion from RepositoryFormatKnitPack4() to RepositoryFormatKnitPack5RichRoot().\n'
 
487
            'This may take some time. Upgrade the repositories to the same format for better performance.\n'
 
488
            'Created new stacked branch referring to %s.\n' % (trunk.base,),
489
489
            err)
490
490
 
491
491