~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/per_branch/test_stacking.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-02-11 04:02:41 UTC
  • mfrom: (5017.2.2 tariff)
  • Revision ID: pqm@pqm.ubuntu.com-20100211040241-w6n021dz0uus341n
(mbp) add import-tariff tests

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2008, 2009, 2010 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
23
23
    errors,
24
24
    )
25
25
from bzrlib.revision import NULL_REVISION
26
 
from bzrlib.tests import TestNotApplicable, transport_util
 
26
from bzrlib.smart import server
 
27
from bzrlib.tests import TestNotApplicable, KnownFailure, transport_util
27
28
from bzrlib.tests.per_branch import TestCaseWithBranch
 
29
from bzrlib.transport import get_transport
28
30
 
29
31
 
30
32
unstackable_format_errors = (
205
207
        self.assertRaises(errors.NotStacked,
206
208
            new_branch.get_stacked_on_url)
207
209
 
208
 
    def test_unstack_already_locked(self):
209
 
        """Removing the stacked-on branch with an already write-locked branch
210
 
        works.
211
 
 
212
 
        This was bug 551525.
213
 
        """
214
 
        try:
215
 
            stacked_bzrdir = self.make_stacked_bzrdir()
216
 
        except unstackable_format_errors, e:
217
 
            raise TestNotApplicable(e)
218
 
        stacked_branch = stacked_bzrdir.open_branch()
219
 
        stacked_branch.lock_write()
220
 
        stacked_branch.set_stacked_on_url(None)
221
 
        stacked_branch.unlock()
222
 
 
223
 
    def test_unstack_already_multiple_locked(self):
224
 
        """Unstacking a branch preserves the lock count (even though it
225
 
        replaces the br.repository object).
226
 
 
227
 
        This is a more extreme variation of test_unstack_already_locked.
228
 
        """
229
 
        try:
230
 
            stacked_bzrdir = self.make_stacked_bzrdir()
231
 
        except unstackable_format_errors, e:
232
 
            raise TestNotApplicable(e)
233
 
        stacked_branch = stacked_bzrdir.open_branch()
234
 
        stacked_branch.lock_write()
235
 
        stacked_branch.lock_write()
236
 
        stacked_branch.lock_write()
237
 
        stacked_branch.set_stacked_on_url(None)
238
 
        stacked_branch.unlock()
239
 
        stacked_branch.unlock()
240
 
        stacked_branch.unlock()
241
 
 
242
210
    def make_stacked_bzrdir(self, in_directory=None):
243
211
        """Create a stacked branch and return its bzrdir.
244
212
 
254
222
        tree = self.make_branch_and_tree(prefix + 'stacked-on')
255
223
        tree.commit('Added foo')
256
224
        stacked_bzrdir = tree.branch.bzrdir.sprout(
257
 
            self.get_url(prefix + 'stacked'), tree.branch.last_revision(),
258
 
            stacked=True)
 
225
            prefix + 'stacked', tree.branch.last_revision(), stacked=True)
259
226
        return stacked_bzrdir
260
227
 
261
228
    def test_clone_from_stacked_branch_preserve_stacking(self):
283
250
        except unstackable_format_errors, e:
284
251
            raise TestNotApplicable(e)
285
252
        stacked_bzrdir.open_branch().set_stacked_on_url('../stacked-on')
286
 
        cloned_bzrdir = stacked_bzrdir.clone(
287
 
            self.get_url('cloned'), preserve_stacking=True)
 
253
        cloned_bzrdir = stacked_bzrdir.clone('cloned', preserve_stacking=True)
288
254
        self.assertEqual(
289
255
            '../dir/stacked-on',
290
256
            cloned_bzrdir.open_branch().get_stacked_on_url())