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

  • Committer: Jelmer Vernooij
  • Date: 2018-02-18 21:42:57 UTC
  • mto: This revision was merged to the branch mainline in revision 6859.
  • Revision ID: jelmer@jelmer.uk-20180218214257-jpevutp1wa30tz3v
Update TODO to reference Breezy, not Bazaar.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
 
18
 
from io import BytesIO
19
18
import os
20
19
import sys
21
20
from textwrap import dedent
27
26
    shelf,
28
27
    tests,
29
28
    )
 
29
from ..sixish import (
 
30
    BytesIO,
 
31
    )
30
32
from . import script
31
33
from . import (
32
34
    features,
60
62
        return response
61
63
 
62
64
 
63
 
LINES_AJ = b'a\nb\nc\nd\ne\nf\ng\nh\ni\nj\n'
64
 
 
65
 
 
66
 
LINES_ZY = b'z\nb\nc\nd\ne\nf\ng\nh\ni\ny\n'
67
 
 
68
 
 
69
 
LINES_AY = b'a\nb\nc\nd\ne\nf\ng\nh\ni\ny\n'
 
65
LINES_AJ = 'a\nb\nc\nd\ne\nf\ng\nh\ni\nj\n'
 
66
 
 
67
 
 
68
LINES_ZY = 'z\nb\nc\nd\ne\nf\ng\nh\ni\ny\n'
 
69
 
 
70
 
 
71
LINES_AY = 'a\nb\nc\nd\ne\nf\ng\nh\ni\ny\n'
70
72
 
71
73
 
72
74
class ShelfTestCase(tests.TestCaseWithTransport):
74
76
    def create_shelvable_tree(self):
75
77
        tree = self.make_branch_and_tree('tree')
76
78
        self.build_tree_contents([('tree/foo', LINES_AJ)])
77
 
        tree.add('foo', b'foo-id')
 
79
        tree.add('foo', 'foo-id')
78
80
        tree.commit('added foo')
79
81
        self.build_tree_contents([('tree/foo', LINES_ZY)])
80
82
        return tree
151
153
 
152
154
    def test_shelve_binary_change(self):
153
155
        tree = self.create_shelvable_tree()
154
 
        self.build_tree_contents([('tree/foo', b'\x00')])
 
156
        self.build_tree_contents([('tree/foo', '\x00')])
155
157
        tree.lock_tree_write()
156
158
        self.addCleanup(tree.unlock)
157
159
        shelver = ExpectShelver(tree, tree.basis_tree())
217
219
        self.requireFeature(features.SymlinkFeature)
218
220
        tree = self.create_shelvable_tree()
219
221
        os.symlink('bar', 'tree/baz')
220
 
        tree.add('baz', b'baz-id')
 
222
        tree.add('baz', 'baz-id')
221
223
        tree.commit("Add symlink")
222
224
        os.unlink('tree/baz')
223
225
        os.symlink('vax', 'tree/baz')
226
228
        shelver = ExpectShelver(tree, tree.basis_tree())
227
229
        self.addCleanup(shelver.finalize)
228
230
        shelver.expect('Shelve changing target of "baz" from "bar" to '
229
 
                       '"vax"?', 0)
 
231
                '"vax"?', 0)
230
232
        shelver.expect('Shelve 1 change(s)?', 0)
231
233
        shelver.run()
232
234
        self.assertEqual('bar', os.readlink('tree/baz'))
253
255
        self.assertFileEqual(LINES_ZY, 'tree/foo')
254
256
 
255
257
    def test_shelve_all(self):
256
 
        self.create_shelvable_tree()
 
258
        tree = self.create_shelvable_tree()
257
259
        shelver = ExpectShelver.from_args(sys.stdout, all=True,
258
 
                                          directory='tree')
 
260
            directory='tree')
259
261
        try:
260
262
            shelver.run()
261
263
        finally:
300
302
    def test_shelve_old_root_preserved(self):
301
303
        tree1 = self.make_branch_and_tree('tree1')
302
304
        tree1.commit('add root')
303
 
        tree1_root_id = tree1.path2id('')
 
305
        tree1_root_id = tree1.get_root_id()
304
306
        tree2 = self.make_branch_and_tree('tree2')
305
307
        rev2 = tree2.commit('add root')
306
 
        self.assertNotEqual(tree1_root_id, tree2.path2id(''))
 
308
        self.assertNotEqual(tree1_root_id, tree2.get_root_id())
307
309
        tree1.merge_from_branch(tree2.branch,
308
310
                                from_revision=revision.NULL_REVISION)
309
311
        tree1.commit('merging in tree2')
310
 
        self.assertEqual(tree1_root_id, tree1.path2id(''))
 
312
        self.assertEqual(tree1_root_id, tree1.get_root_id())
311
313
        # This is essentially assertNotRaises(InconsistentDelta)
312
314
        # With testtools 0.9.9, it can be rewritten as:
313
315
        # with ExpectedException(AssertionError,
376
378
 
377
379
    def test_shelve_binary_change(self):
378
380
        tree = self.create_shelvable_tree()
379
 
        self.build_tree_contents([('tree/foo', b'\x00')])
 
381
        self.build_tree_contents([('tree/foo', '\x00')])
380
382
        tree.lock_tree_write()
381
383
        self.addCleanup(tree.unlock)
382
384
        shelver = ExpectShelver(tree, tree.basis_tree(),
437
439
        tree.lock_tree_write()
438
440
        self.addCleanup(tree.unlock)
439
441
        shelver = ExpectShelver(tree, tree.basis_tree(),
440
 
                                reporter=shelf_ui.ApplyReporter())
 
442
                               reporter=shelf_ui.ApplyReporter())
441
443
        self.addCleanup(shelver.finalize)
442
444
        shelver.expect('Change "foo" from directory to a file?', 0)
443
445
        shelver.expect('Apply 1 change(s)?', 0)
446
448
        self.requireFeature(features.SymlinkFeature)
447
449
        tree = self.create_shelvable_tree()
448
450
        os.symlink('bar', 'tree/baz')
449
 
        tree.add('baz', b'baz-id')
 
451
        tree.add('baz', 'baz-id')
450
452
        tree.commit("Add symlink")
451
453
        os.unlink('tree/baz')
452
454
        os.symlink('vax', 'tree/baz')
469
471
        tree.lock_write()
470
472
        try:
471
473
            self.build_tree_contents([('tree/foo', LINES_AJ)])
472
 
            tree.add('foo', b'foo-id')
 
474
            tree.add('foo', 'foo-id')
473
475
            tree.commit('added foo')
474
476
            self.build_tree_contents([('tree/foo', LINES_ZY)])
475
477
            shelver = shelf_ui.Shelver(tree, tree.basis_tree(),
503
505
    def test_unshelve_args_dry_run(self):
504
506
        tree = self.create_tree_with_shelf()
505
507
        unshelver = shelf_ui.Unshelver.from_args(directory='tree',
506
 
                                                 action='dry-run')
 
508
            action='dry-run')
507
509
        try:
508
510
            unshelver.run()
509
511
        finally:
541
543
            +y
542
544
 
543
545
            """)
544
 
        self.assertEqualDiff(expected.encode('utf-8'), diff[-len(expected):])
 
546
        self.assertEqualDiff(expected, diff[-len(expected):])
545
547
 
546
548
    def test_unshelve_args_delete_only(self):
547
549
        tree = self.make_branch_and_tree('tree')
548
550
        manager = tree.get_shelf_manager()
549
551
        shelf_file = manager.new_shelf()[1]
550
552
        try:
551
 
            shelf_file.write(b'garbage')
 
553
            shelf_file.write('garbage')
552
554
        finally:
553
555
            shelf_file.close()
554
556
        unshelver = shelf_ui.Unshelver.from_args(directory='tree',
564
566
        manager = tree.get_shelf_manager()
565
567
        shelf_file = manager.new_shelf()[1]
566
568
        try:
567
 
            shelf_file.write(b'garbage')
 
569
            shelf_file.write('garbage')
568
570
        finally:
569
571
            shelf_file.close()
570
572
        self.assertRaises(shelf.InvalidShelfId,
571
 
                          shelf_ui.Unshelver.from_args, directory='tree',
572
 
                          action='delete-only', shelf_id='foo')
573
 
 
574
 
 
575
 
class TestUnshelveScripts(TestUnshelver,
576
 
                          script.TestCaseWithTransportAndScript):
 
573
            shelf_ui.Unshelver.from_args, directory='tree',
 
574
            action='delete-only', shelf_id='foo')
 
575
 
 
576
 
 
577
class TestUnshelveScripts(TestUnshelver, 
 
578
                          script.TestCaseWithTransportAndScript): 
577
579
 
578
580
    def test_unshelve_messages_keep(self):
579
581
        self.create_tree_with_shelf()