~bzr-pqm/bzr/bzr.dev

2052.3.2 by John Arbash Meinel
Change Copyright .. by Canonical to Copyright ... Canonical
1
# Copyright (C) 2005, 2006 Canonical Ltd
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
2
#
1553.4.3 by Michael Ellerman
Add custom description for help's --long option, this fixes bug #31217.
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
7
#
1553.4.3 by Michael Ellerman
Add custom description for help's --long option, this fixes bug #31217.
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
12
#
1553.4.3 by Michael Ellerman
Add custom description for help's --long option, this fixes bug #31217.
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
17
18
"""Black-box tests for bzr help.
19
"""
20
21
22
from bzrlib.tests.blackbox import ExternalBase
23
24
25
class TestHelp(ExternalBase):
26
27
    def test_help_basic(self):
1616.1.15 by Martin Pool
Handle 'bzr ?', etc.
28
        for cmd in ['--help', 'help', '-h', '-?']:
29
            output = self.runbzr(cmd)[0]
30
            line1 = output.split('\n')[0]
1861.2.6 by Alexander Belchenko
branding: change Bazaar-NG to Bazaar
31
            if not line1.startswith('Bazaar'):
1616.1.15 by Martin Pool
Handle 'bzr ?', etc.
32
                self.fail("bad output from bzr %s:\n%r" % (cmd, output))
1616.1.13 by Martin Pool
Fix 'bzr -h' to show help (#35940)
33
        # see https://launchpad.net/products/bzr/+bug/35940, -h doesn't work
1553.4.3 by Michael Ellerman
Add custom description for help's --long option, this fixes bug #31217.
34
2023.1.1 by ghigo
add topics help
35
    def test_help_topics(self):
36
        """Smoketest for 'bzr help topics'"""
37
        out, err = self.run_bzr('help', 'topics')
38
        self.assertContainsRe(out, 'basic')
39
        self.assertContainsRe(out, 'topics')
2070.4.7 by ghigo
Updates on the basis of the Richard Wilbur suggestions
40
        self.assertContainsRe(out, 'commands')
41
        self.assertContainsRe(out, 'revisionspec')
2023.1.1 by ghigo
add topics help
42
43
    def test_help_revisionspec(self):
44
        """Smoke test for 'bzr help revisionspec'"""
45
        out, err = self.run_bzr('help', 'revisionspec')
46
        self.assertContainsRe(out, 'revno:')
47
        self.assertContainsRe(out, 'date:')
2070.4.7 by ghigo
Updates on the basis of the Richard Wilbur suggestions
48
        self.assertContainsRe(out, 'revid:')
49
        self.assertContainsRe(out, 'last:')
50
        self.assertContainsRe(out, 'before:')
51
        self.assertContainsRe(out, 'ancestor:')
52
        self.assertContainsRe(out, 'branch:')
2023.1.1 by ghigo
add topics help
53
2245.7.1 by James Westby
Add a help topic describing checkouts and how they work.
54
    def test_help_checkouts(self):
55
        """Smoke test for 'bzr help checkouts'"""
56
        out, err = self.runbzr('help checkouts')
57
        self.assertContainsRe(out, 'checkout')
58
        self.assertContainsRe(out, 'lightweight')
59
1553.4.3 by Michael Ellerman
Add custom description for help's --long option, this fixes bug #31217.
60
    def test_help_commands(self):
61
        dash_help  = self.runbzr('--help commands')[0]
62
        commands   = self.runbzr('help commands')[0]
1551.9.14 by Aaron Bentley
Change topic to hidden-commands
63
        hidden = self.runbzr('help hidden-commands')[0]
1553.4.3 by Michael Ellerman
Add custom description for help's --long option, this fixes bug #31217.
64
        long_help  = self.runbzr('help --long')[0]
65
        qmark_long = self.runbzr('? --long')[0]
66
        qmark_cmds = self.runbzr('? commands')[0]
67
        self.assertEquals(dash_help, commands)
68
        self.assertEquals(dash_help, long_help)
69
        self.assertEquals(dash_help, qmark_long)
70
        self.assertEquals(dash_help, qmark_cmds)
71
1551.9.13 by Aaron Bentley
add "hidden" topic
72
    def test_hidden(self):
1551.9.14 by Aaron Bentley
Change topic to hidden-commands
73
        commands = self.runbzr('help commands')[0]
74
        hidden = self.runbzr('help hidden-commands')[0]
1551.9.13 by Aaron Bentley
add "hidden" topic
75
        self.assertTrue('commit' in commands)
76
        self.assertTrue('commit' not in hidden)
77
        self.assertTrue('rocks' in hidden)
78
        self.assertTrue('rocks' not in commands)
79
1553.4.3 by Michael Ellerman
Add custom description for help's --long option, this fixes bug #31217.
80
    def test_help_detail(self):
81
        dash_h  = self.runbzr('commit -h')[0]
82
        help_x  = self.runbzr('help commit')[0]
83
        qmark_x = self.runbzr('help commit')[0]
84
        self.assertEquals(dash_h, help_x)
85
        self.assertEquals(dash_h, qmark_x)
86
87
    def test_help_help(self):
88
        help = self.runbzr('help help')[0]
89
        qmark = self.runbzr('? ?')[0]
90
        self.assertEquals(help, qmark)
91
        for line in help.split('\n'):
92
            if '--long' in line:
93
                self.assertTrue('show help on all commands' in line)
2245.7.1 by James Westby
Add a help topic describing checkouts and how they work.
94