455
455
_mod_branch.BranchReferenceFormat().get_reference(checkout.bzrdir))
458
class TestHooks(tests.TestCase):
458
class TestHooks(tests.TestCaseWithTransport):
460
460
def test_constructor(self):
461
461
"""Check that creating a BranchHooks instance has the right defaults."""
469
469
"post_uncommit not in %s" % hooks)
470
470
self.assertTrue("post_change_branch_tip" in hooks,
471
471
"post_change_branch_tip not in %s" % hooks)
472
self.assertTrue("post_branch" in hooks,
473
"post_branch not in %s" % hooks)
474
self.assertTrue("post_switch" in hooks,
475
"post_switch not in %s" % hooks)
473
477
def test_installed_hooks_are_BranchHooks(self):
474
478
"""The installed hooks object should be a BranchHooks."""
476
480
self.assertIsInstance(self._preserved_hooks[_mod_branch.Branch][1],
477
481
_mod_branch.BranchHooks)
483
def test_post_branch_hook(self):
485
_mod_branch.Branch.hooks.install_named_hook('post_branch', lambda params, c=calls: c.append(params), None)
486
self.assertLength(0, calls)
487
branch = self.make_branch('a')
488
self.assertLength(1, calls)
490
self.assertIsInstance(params, _mod_branch.BranchHookParams)
491
self.assertTrue(hasattr(params, 'bzrdir'))
492
self.assertTrue(hasattr(params, 'branch'))
494
def test_post_switch_hook(self):
495
from bzrlib import switch
497
_mod_branch.Branch.hooks.install_named_hook('post_switch', lambda params, c=calls: c.append(params), None)
498
tree = self.make_branch_and_tree('branch-1')
499
self.build_tree(['branch-1/file-1'])
502
to_branch = tree.bzrdir.sprout('branch-2').open_branch()
503
self.build_tree(['branch-1/file-2'])
505
tree.remove('file-1')
507
checkout = tree.branch.create_checkout('checkout')
508
self.assertLength(0, calls)
509
switch.switch(checkout.bzrdir, to_branch)
510
self.assertLength(1, calls)
512
self.assertIsInstance(params, _mod_branch.SwitchHookParams)
513
self.assertTrue(hasattr(params, 'to_branch'))
514
self.assertTrue(hasattr(params, 'revision_id'))
480
516
class TestPullResult(tests.TestCase):