~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to tests/test_prepare_shelf.py

  • Committer: Aaron Bentley
  • Date: 2008-10-06 19:34:00 UTC
  • mto: (0.15.1 unshelve)
  • mto: This revision was merged to the branch mainline in revision 3820.
  • Revision ID: aaron@aaronbentley.com-20081006193400-ioply4z1koumdv5z
Add support for writing shelves

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
import os
18
18
 
19
 
from bzrlib import tests
20
 
from bzrlib.plugins.shelf2 import prepare_shelf
 
19
from bzrlib import pack, tests, transform
 
20
from bzrlib.plugins.shelf2 import prepare_shelf, serialize_transform
21
21
 
22
22
 
23
23
class TestPrepareShelf(tests.TestCaseWithTransport):
126
126
        self.failIfExists('foo')
127
127
        limbo_name = creator.shelf_transform._limbo_name(s_trans_id)
128
128
        self.assertEqual('bar', os.readlink(limbo_name))
 
129
 
 
130
    def test_write_shelf(self):
 
131
        tree = self.make_branch_and_tree('tree')
 
132
        self.build_tree(['tree/foo'])
 
133
        tree.add('foo', 'foo-id')
 
134
        creator = prepare_shelf.ShelfCreator(tree)
 
135
        list(creator)
 
136
        creator.shelve_creation('foo-id', 'file')
 
137
        filename = creator.write_shelf()
 
138
        self.assertContainsRe(filename, 'tree/.shelf2/01$')
 
139
        self.failUnlessExists(filename)
 
140
        parser = pack.ContainerPushParser()
 
141
        shelf_file = open(filename, 'rb')
 
142
        try:
 
143
            parser.accept_bytes(shelf_file.read())
 
144
        finally:
 
145
            shelf_file.close()
 
146
        tt = transform.TransformPreview(tree)
 
147
        serialize_transform.deserialize(tt,
 
148
            iter(parser.read_pending_records()))