/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 bzrlib/tests/test_shelf.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-01-14 00:01:32 UTC
  • mfrom: (4957.1.1 jam-integration)
  • Revision ID: pqm@pqm.ubuntu.com-20100114000132-3p3rabnonjw3gzqb
(jam) Merge bzr.stable, bringing in bug fixes #175839, #504390

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2008 Canonical Ltd
 
1
# Copyright (C) 2008, 2009, 2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
108
108
        creator.shelve_change(('rename', 'baz-id', 'foo/baz', 'bar/baz'))
109
109
        self.check_shelve_move(creator, tree)
110
110
 
 
111
    def test_shelve_changed_root_id(self):
 
112
        tree = self.make_branch_and_tree('.')
 
113
        self.build_tree(['foo'])
 
114
        tree.set_root_id('first-root-id')
 
115
        tree.add(['foo'], ['foo-id'])
 
116
        tree.commit('foo')
 
117
        tree.set_root_id('second-root-id')
 
118
        tree.lock_tree_write()
 
119
        self.addCleanup(tree.unlock)
 
120
        creator = shelf.ShelfCreator(tree, tree.basis_tree())
 
121
        self.addCleanup(creator.finalize)
 
122
        self.expectFailure('shelf doesn\'t support shelving root changes yet',
 
123
            self.assertEqual, [
 
124
                ('delete file', 'first-root-id', 'directory', ''),
 
125
                ('add file', 'second-root-id', 'directory', ''),
 
126
                ('rename', 'foo-id', u'foo', u'foo'),
 
127
                ], list(creator.iter_shelvable()))
 
128
 
 
129
        self.assertEqual([('delete file', 'first-root-id', 'directory', ''),
 
130
                          ('add file', 'second-root-id', 'directory', ''),
 
131
                          ('rename', 'foo-id', u'foo', u'foo'),
 
132
                         ], list(creator.iter_shelvable()))
 
133
 
111
134
    def assertShelvedFileEqual(self, expected_content, creator, file_id):
112
135
        s_trans_id = creator.shelf_transform.trans_id_file_id(file_id)
113
136
        shelf_file = creator.shelf_transform._limbo_name(s_trans_id)
476
499
    def test_shelve_skips_added_root(self):
477
500
        """Skip adds of the root when iterating through shelvable changes."""
478
501
        tree = self.make_branch_and_tree('tree')
 
502
        tree.lock_tree_write()
 
503
        self.addCleanup(tree.unlock)
479
504
        creator = shelf.ShelfCreator(tree, tree.basis_tree())
480
505
        self.addCleanup(creator.finalize)
481
506
        self.assertEqual([], list(creator.iter_shelvable()))
501
526
            shelf_file.seek(0)
502
527
            unshelver = shelf.Unshelver.from_tree_and_shelf(tree, shelf_file)
503
528
            unshelver.make_merger().do_merge()
 
529
            self.addCleanup(unshelver.finalize)
504
530
            self.assertFileEqual('bar', 'tree/foo')
505
531
        finally:
506
532
            shelf_file.close()
524
550
        self.build_tree_contents([('tree/foo', 'z\na\nb\nc\n')])
525
551
        shelf_file.seek(0)
526
552
        unshelver = shelf.Unshelver.from_tree_and_shelf(tree, shelf_file)
 
553
        self.addCleanup(unshelver.finalize)
527
554
        unshelver.make_merger().do_merge()
528
555
        self.assertFileEqual('z\na\nb\nd\n', 'tree/foo')
529
556
 
552
579
        self.assertFileEqual('baz', 'tree/foo/bar')
553
580
        shelf_file.seek(0)
554
581
        unshelver = shelf.Unshelver.from_tree_and_shelf(tree, shelf_file)
 
582
        self.addCleanup(unshelver.finalize)
555
583
        unshelver.make_merger().do_merge()
556
584
        self.assertFalse('foo-id' in tree)
557
585
        self.assertFalse('bar-id' in tree)
697
725
        shelf_id = shelf_manager.shelve_changes(creator)
698
726
        self.failIfExists('tree/foo')
699
727
        unshelver = shelf_manager.get_unshelver(shelf_id)
 
728
        self.addCleanup(unshelver.finalize)
700
729
        unshelver.make_merger().do_merge()
701
730
        self.assertFileEqual('bar', 'tree/foo')
702
731