~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_shelf.py

  • Committer: John Ferlito
  • Date: 2009-09-02 04:31:45 UTC
  • mto: (4665.7.1 serve-init)
  • mto: This revision was merged to the branch mainline in revision 4913.
  • Revision ID: johnf@inodes.org-20090902043145-gxdsfw03ilcwbyn5
Add a debian init script for bzr --serve

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2008-2011 Canonical Ltd
 
1
# Copyright (C) 2008 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
 
 
134
111
    def assertShelvedFileEqual(self, expected_content, creator, file_id):
135
112
        s_trans_id = creator.shelf_transform.trans_id_file_id(file_id)
136
113
        shelf_file = creator.shelf_transform._limbo_name(s_trans_id)
191
168
        s_trans_id = creator.shelf_transform.trans_id_file_id('foo-id')
192
169
        self.assertEqual('foo-id',
193
170
                         creator.shelf_transform.final_file_id(s_trans_id))
194
 
        self.assertPathDoesNotExist('foo')
195
 
        self.assertPathDoesNotExist('bar')
 
171
        self.failIfExists('foo')
 
172
        self.failIfExists('bar')
196
173
        self.assertShelvedFileEqual('a\n', creator, 'foo-id')
197
174
        s_bar_trans_id = creator.shelf_transform.trans_id_file_id('bar-id')
198
175
        self.assertEqual('directory',
231
208
            creator.shelve_creation('foo-id')
232
209
        creator.transform()
233
210
        s_trans_id = creator.shelf_transform.trans_id_file_id('foo-id')
234
 
        self.assertPathDoesNotExist(link_name)
 
211
        self.failIfExists(link_name)
235
212
        limbo_name = creator.shelf_transform._limbo_name(s_trans_id)
236
213
        self.assertEqual(link_target, osutils.readlink(limbo_name))
237
214
        ptree = creator.shelf_transform.get_preview_tree()
310
287
        s_trans_id = creator.shelf_transform.trans_id_file_id('foo-id')
311
288
        self.assertEqual('foo-id',
312
289
                         creator.shelf_transform.final_file_id(s_trans_id))
313
 
        self.assertPathDoesNotExist('foo')
 
290
        self.failIfExists('foo')
314
291
 
315
292
    def prepare_shelve_deletion(self):
316
293
        tree = self.make_branch_and_tree('tree')
362
339
                         sorted(list(creator.iter_shelvable())))
363
340
        creator.shelve_deletion('foo-id')
364
341
        creator.transform()
365
 
        self.assertPathExists('tree/foo')
 
342
        self.failUnlessExists('tree/foo')
366
343
 
367
344
    def prepare_shelve_change_kind(self):
368
345
        tree = self.make_branch_and_tree('tree')
421
398
                         sorted(list(creator.iter_shelvable())))
422
399
        creator.shelve_deletion('foo-id')
423
400
        creator.transform()
424
 
        self.assertPathExists('tree/foo')
 
401
        self.failUnlessExists('tree/foo')
425
402
 
426
403
    def test_shelve_serialization(self):
427
404
        tree = self.make_branch_and_tree('.')
526
503
            shelf_file.seek(0)
527
504
            unshelver = shelf.Unshelver.from_tree_and_shelf(tree, shelf_file)
528
505
            unshelver.make_merger().do_merge()
529
 
            self.addCleanup(unshelver.finalize)
530
506
            self.assertFileEqual('bar', 'tree/foo')
531
507
        finally:
532
508
            shelf_file.close()
550
526
        self.build_tree_contents([('tree/foo', 'z\na\nb\nc\n')])
551
527
        shelf_file.seek(0)
552
528
        unshelver = shelf.Unshelver.from_tree_and_shelf(tree, shelf_file)
553
 
        self.addCleanup(unshelver.finalize)
554
529
        unshelver.make_merger().do_merge()
555
530
        self.assertFileEqual('z\na\nb\nd\n', 'tree/foo')
556
531
 
579
554
        self.assertFileEqual('baz', 'tree/foo/bar')
580
555
        shelf_file.seek(0)
581
556
        unshelver = shelf.Unshelver.from_tree_and_shelf(tree, shelf_file)
582
 
        self.addCleanup(unshelver.finalize)
583
557
        unshelver.make_merger().do_merge()
584
558
        self.assertFalse('foo-id' in tree)
585
559
        self.assertFalse('bar-id' in tree)
623
597
                              shelf_file)
624
598
        self.assertEqual('Shelf corrupt.', str(e))
625
599
 
626
 
    def test_unshelve_subdir_in_now_removed_dir(self):
627
 
        tree = self.make_branch_and_tree('.')
628
 
        self.addCleanup(tree.lock_write().unlock)
629
 
        self.build_tree(['dir/', 'dir/subdir/', 'dir/subdir/foo'])
630
 
        tree.add(['dir'], ['dir-id'])
631
 
        tree.commit('versioned dir')
632
 
        tree.add(['dir/subdir', 'dir/subdir/foo'], ['subdir-id', 'foo-id'])
633
 
        creator = shelf.ShelfCreator(tree, tree.basis_tree())
634
 
        self.addCleanup(creator.finalize)
635
 
        for change in creator.iter_shelvable():
636
 
            creator.shelve_change(change)
637
 
        shelf_manager = tree.get_shelf_manager()
638
 
        shelf_id = shelf_manager.shelve_changes(creator)
639
 
        self.assertPathDoesNotExist('dir/subdir')
640
 
        tree.remove(['dir'])
641
 
        unshelver = shelf_manager.get_unshelver(shelf_id)
642
 
        self.addCleanup(unshelver.finalize)
643
 
        unshelver.make_merger().do_merge()
644
 
        self.assertPathExists('dir/subdir/foo')
645
 
        self.assertEqual('dir-id', tree.path2id('dir'))
646
 
        self.assertEqual('subdir-id', tree.path2id('dir/subdir'))
647
 
        self.assertEqual('foo-id', tree.path2id('dir/subdir/foo'))
648
 
 
649
600
 
650
601
class TestShelfManager(tests.TestCaseWithTransport):
651
602
 
746
697
        creator.shelve_creation('foo-id')
747
698
        shelf_manager = tree.get_shelf_manager()
748
699
        shelf_id = shelf_manager.shelve_changes(creator)
749
 
        self.assertPathDoesNotExist('tree/foo')
 
700
        self.failIfExists('tree/foo')
750
701
        unshelver = shelf_manager.get_unshelver(shelf_id)
751
 
        self.addCleanup(unshelver.finalize)
752
702
        unshelver.make_merger().do_merge()
753
703
        self.assertFileEqual('bar', 'tree/foo')
754
704