315
315
unshelver.make_merger().do_merge()
316
316
self.assertFileEqual('z\na\nb\nd\n', 'tree/foo')
318
def test_unshelve_deleted(self):
319
tree = self.make_branch_and_tree('tree')
321
self.addCleanup(tree.unlock)
322
self.build_tree_contents([('tree/foo/',), ('tree/foo/bar', 'baz')])
323
tree.add(['foo', 'foo/bar'], ['foo-id', 'bar-id'])
324
tree.commit('Added file and directory')
325
tree.unversion(['foo-id', 'bar-id'])
326
os.unlink('tree/foo/bar')
328
creator = shelf.ShelfCreator(tree, tree.basis_tree())
329
list(creator.iter_shelvable())
330
creator.shelve_deletion('foo-id')
331
creator.shelve_deletion('bar-id')
332
shelf_file = open('shelf', 'w+b')
333
self.addCleanup(shelf_file.close)
334
creator.write_shelf(shelf_file)
337
# validate the test setup
338
self.assertTrue('foo-id' in tree)
339
self.assertTrue('bar-id' in tree)
340
self.assertFileEqual('baz', 'tree/foo/bar')
342
unshelver = shelf.Unshelver.from_tree_and_shelf(tree, shelf_file)
343
unshelver.make_merger().do_merge()
344
self.assertFalse('foo-id' in tree)
345
self.assertFalse('bar-id' in tree)
318
347
def test_unshelve_base(self):
319
348
tree = self.make_branch_and_tree('tree')
320
349
tree.lock_write()