~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to tests.py

  • Committer: Michael Ellerman
  • Date: 2006-03-11 12:53:48 UTC
  • mto: (325.1.2 bzrtools) (0.3.1 shelf-dev)
  • mto: This revision was merged to the branch mainline in revision 334.
  • Revision ID: michael@ellerman.id.au-20060311125348-7a2b246f343db243
Add a test to make sure we don't delete the shelved patch if unshelving
fails. And make the error a little nicer.

Show diffs side-by-side

added added

removed removed

Lines of Context:
184
184
        stderr = self.run_bzr_captured(['shelf', 'show', '00'], retcode=None)[1]
185
185
        self.assertTrue("Patch '00' doesn't exist on shelf default!" in stderr)
186
186
 
 
187
    def test_shelf_unshelve_failure(self):
 
188
        tree = self.make_branch_and_tree('.')
 
189
 
 
190
        self.__create_and_add_test_file(tree)
 
191
 
 
192
        # Modify the test file
 
193
        file('test_file', 'w').write(self.MODIFIED)
 
194
 
 
195
        # Shelve the changes
 
196
        self.run_bzr('shelve', retcode=0)
 
197
 
 
198
        # Write an unapplyable patch into the shelf
 
199
        shelf = open(os.path.join(tree.branch.base,
 
200
                    '.shelf/shelves/default/00'), 'w')
 
201
        shelf.write(self.DIFF_2)
 
202
        shelf.close()
 
203
 
 
204
        # Unshelve, should fail
 
205
        self.run_bzr('unshelve', retcode=3)
 
206
 
 
207
        # Make sure the patch is still there, eventhough it's broken
 
208
        shelf = open(os.path.join(tree.branch.base,
 
209
                    '.shelf/shelves/default/00')).read()
 
210
        self.assertEqual(shelf, self.DIFF_2)