~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_hooks.py

  • Committer: John Arbash Meinel
  • Date: 2008-07-09 21:42:24 UTC
  • mto: This revision was merged to the branch mainline in revision 3543.
  • Revision ID: john@arbash-meinel.com-20080709214224-r75k87r6a01pfc3h
Restore a real weave merge to 'bzr merge --weave'.

To do so efficiently, we only add the simple LCAs to the final weave
object, unless we run into complexities with the merge graph.
This gives the same effective result as adding all the texts,
with the advantage of not having to extract all of them.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2008, 2009, 2011, 2012, 2016 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
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
"""Tests for commands related to hooks"""
18
18
 
19
19
from bzrlib.branch import Branch
20
20
from bzrlib.tests import TestCaseWithTransport
21
21
 
22
 
def _foo_hook():
23
 
    pass
24
22
 
25
23
class TestHooks(TestCaseWithTransport):
26
24
 
27
25
    def _check_hooks_output(self, command_output, hooks):
28
26
        for hook_type in Branch.hooks:
29
27
            s = "\n  ".join(hooks.get(hook_type, ["<no hooks installed>"]))
30
 
            self.assertTrue("%s:\n    %s" % (hook_type, s) in command_output)
 
28
            self.assert_("%s:\n  %s" % (hook_type, s) in command_output)
31
29
 
32
30
    def test_hooks_with_no_hooks(self):
33
31
        self.make_branch('.')
39
37
    def test_hooks_with_unnamed_hook(self):
40
38
        self.make_branch('.')
41
39
        def foo(): return
42
 
        Branch.hooks.install_named_hook('post_push', foo, None)
 
40
        Branch.hooks.install_named_hook('set_rh', foo, None)
43
41
        out, err = self.run_bzr('hooks')
44
 
        self._check_hooks_output(out, {'post_push': ["No hook name"]})
 
42
        self._check_hooks_output(out, {'set_rh': ["No hook name"]})
45
43
 
46
44
    def test_hooks_with_named_hook(self):
47
45
        self.make_branch('.')
48
46
        def foo(): return
49
47
        name = "Foo Bar Hook"
50
 
        Branch.hooks.install_named_hook('post_push', foo, name)
 
48
        Branch.hooks.install_named_hook('set_rh', foo, name)
51
49
        out, err = self.run_bzr('hooks')
52
 
        self._check_hooks_output(out, {'post_push': [name]})
 
50
        self._check_hooks_output(out, {'set_rh': [name]})
53
51
 
54
52
    def test_hooks_no_branch(self):
55
 
        self.run_bzr('hooks')
56
 
 
57
 
    def test_hooks_lazy_with_unnamed_hook(self):
58
 
        self.make_branch('.')
59
 
        def foo(): return
60
 
        Branch.hooks.install_named_hook_lazy('post_push',
61
 
            'bzrlib.tests.blackbox.test_hooks',
62
 
            '_foo_hook',
63
 
            None)
64
 
        out, err = self.run_bzr('hooks')
65
 
        self._check_hooks_output(out, {'post_push': ["No hook name"]})
66
 
        
67
 
    def test_hooks_lazy_with_named_hook(self):
68
 
        self.make_branch('.')
69
 
        def foo(): return
70
 
        Branch.hooks.install_named_hook_lazy('post_push',
71
 
            'bzrlib.tests.blackbox.test_hooks',
72
 
            '_foo_hook',
73
 
            'hook has a name')
74
 
        out, err = self.run_bzr('hooks')
75
 
        self._check_hooks_output(out, {'post_push': ["hook has a name"]})
 
53
        self.run_bzr('hooks', retcode=3)