/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

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

  • Committer: Michael Ellerman
  • Date: 2006-05-31 08:44:29 UTC
  • mto: (1711.2.63 jam-integration)
  • mto: This revision was merged to the branch mainline in revision 1792.
  • Revision ID: michael@ellerman.id.au-20060531084429-35e5429abda9f560
Add optional location to ancestry and fix behaviour for checkouts.

This adds an optional location parameter to the ancestry command. It also
changes the behaviour of ancestry on checkouts such that if they have
been created with a subset of the branch history, only the subset is
shown by 'bzr ancestry'. Tests for all of that as well.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006, 2007, 2009, 2010 Canonical Ltd
2
 
#
 
1
# Copyright (C) 2005, 2006 by Canonical Ltd
 
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
5
5
# the Free Software Foundation; either version 2 of the License, or
6
6
# (at your option) any later version.
7
 
#
 
7
 
8
8
# This program is distributed in the hope that it will be useful,
9
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
11
# GNU General Public License for more details.
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
 
18
18
"""Black-box tests for bzr help.
19
19
"""
20
20
 
21
21
 
22
 
import bzrlib
23
22
from bzrlib.tests.blackbox import ExternalBase
24
 
from bzrlib.config import (ensure_config_dir_exists, config_filename)
25
23
 
26
24
 
27
25
class TestHelp(ExternalBase):
28
26
 
29
27
    def test_help_basic(self):
30
28
        for cmd in ['--help', 'help', '-h', '-?']:
31
 
            output = self.run_bzr(cmd)[0]
 
29
            output = self.runbzr(cmd)[0]
32
30
            line1 = output.split('\n')[0]
33
 
            if not line1.startswith('Bazaar'):
 
31
            if not line1.startswith('Bazaar-NG'):
34
32
                self.fail("bad output from bzr %s:\n%r" % (cmd, output))
35
33
        # see https://launchpad.net/products/bzr/+bug/35940, -h doesn't work
36
34
 
37
 
    def test_help_topics(self):
38
 
        """Smoketest for 'bzr help topics'"""
39
 
        out, err = self.run_bzr('help topics')
40
 
        self.assertContainsRe(out, 'basic')
41
 
        self.assertContainsRe(out, 'topics')
42
 
        self.assertContainsRe(out, 'commands')
43
 
        self.assertContainsRe(out, 'revisionspec')
44
 
 
45
 
    def test_help_revisionspec(self):
46
 
        """Smoke test for 'bzr help revisionspec'"""
47
 
        out, err = self.run_bzr('help revisionspec')
48
 
        self.assertContainsRe(out, 'revno:')
49
 
        self.assertContainsRe(out, 'date:')
50
 
        self.assertContainsRe(out, 'revid:')
51
 
        self.assertContainsRe(out, 'last:')
52
 
        self.assertContainsRe(out, 'before:')
53
 
        self.assertContainsRe(out, 'ancestor:')
54
 
        self.assertContainsRe(out, 'branch:')
55
 
 
56
 
    def test_help_checkouts(self):
57
 
        """Smoke test for 'bzr help checkouts'"""
58
 
        out, err = self.run_bzr('help checkouts')
59
 
        self.assertContainsRe(out, 'checkout')
60
 
        self.assertContainsRe(out, 'lightweight')
61
 
 
62
 
    def test_help_urlspec(self):
63
 
        """Smoke test for 'bzr help urlspec'"""
64
 
        out, err = self.run_bzr('help urlspec')
65
 
        self.assertContainsRe(out, 'aftp://')
66
 
        self.assertContainsRe(out, 'bzr://')
67
 
        self.assertContainsRe(out, 'bzr\+ssh://')
68
 
        self.assertContainsRe(out, 'file://')
69
 
        self.assertContainsRe(out, 'ftp://')
70
 
        self.assertContainsRe(out, 'http://')
71
 
        self.assertContainsRe(out, 'https://')
72
 
        self.assertContainsRe(out, 'sftp://')
73
 
 
74
 
    def test_help_repositories(self):
75
 
        """Smoke test for 'bzr help repositories'"""
76
 
        out, err = self.run_bzr('help repositories')
77
 
        from bzrlib.help_topics import help_as_plain_text, _repositories
78
 
        expected = help_as_plain_text(_repositories)
79
 
        self.assertEqual(expected, out)
80
 
 
81
 
    def test_help_working_trees(self):
82
 
        """Smoke test for 'bzr help working-trees'"""
83
 
        out, err = self.run_bzr('help working-trees')
84
 
        from bzrlib.help_topics import help_as_plain_text, _working_trees
85
 
        expected = help_as_plain_text(_working_trees)
86
 
        self.assertEqual(expected, out)
87
 
 
88
 
    def test_help_status_flags(self):
89
 
        """Smoke test for 'bzr help status-flags'"""
90
 
        out, err = self.run_bzr('help status-flags')
91
 
        from bzrlib.help_topics import help_as_plain_text, _status_flags
92
 
        expected = help_as_plain_text(_status_flags)
93
 
        self.assertEqual(expected, out)
94
 
 
95
35
    def test_help_commands(self):
96
 
        dash_help  = self.run_bzr('--help commands')[0]
97
 
        commands   = self.run_bzr('help commands')[0]
98
 
        hidden = self.run_bzr('help hidden-commands')[0]
99
 
        long_help  = self.run_bzr('help --long')[0]
100
 
        qmark_long = self.run_bzr('? --long')[0]
101
 
        qmark_cmds = self.run_bzr('? commands')[0]
 
36
        dash_help  = self.runbzr('--help commands')[0]
 
37
        commands   = self.runbzr('help commands')[0]
 
38
        long_help  = self.runbzr('help --long')[0]
 
39
        qmark_long = self.runbzr('? --long')[0]
 
40
        qmark_cmds = self.runbzr('? commands')[0]
102
41
        self.assertEquals(dash_help, commands)
103
42
        self.assertEquals(dash_help, long_help)
104
43
        self.assertEquals(dash_help, qmark_long)
105
44
        self.assertEquals(dash_help, qmark_cmds)
106
45
 
107
 
    def test_hidden(self):
108
 
        help_commands = self.run_bzr('help commands')[0]
109
 
        help_hidden = self.run_bzr('help hidden-commands')[0]
110
 
 
111
 
        def extract_cmd_names(help_output):
112
 
            # keep only the command names to avoid matching on help text (there
113
 
            # is a high risk to fail a test when a plugin get installed
114
 
            # otherwise)
115
 
            cmds = []
116
 
            for line in help_output.split('\n'):
117
 
                if line.startswith(' '):
118
 
                    continue # help on more than one line
119
 
                cmd = line.split(' ')[0]
120
 
                if line:
121
 
                    cmds.append(cmd)
122
 
            return cmds
123
 
        commands = extract_cmd_names(help_commands)
124
 
        hidden = extract_cmd_names(help_hidden)
125
 
        self.assertTrue('commit' in commands)
126
 
        self.assertTrue('commit' not in hidden)
127
 
        self.assertTrue('rocks' in hidden)
128
 
        self.assertTrue('rocks' not in commands)
129
 
 
130
46
    def test_help_detail(self):
131
 
        dash_h  = self.run_bzr('diff -h')[0]
132
 
        help_x  = self.run_bzr('help diff')[0]
 
47
        dash_h  = self.runbzr('commit -h')[0]
 
48
        help_x  = self.runbzr('help commit')[0]
 
49
        qmark_x = self.runbzr('help commit')[0]
133
50
        self.assertEquals(dash_h, help_x)
134
 
        self.assertContainsRe(help_x, "Purpose:")
135
 
        self.assertContainsRe(help_x, "Usage:")
136
 
        self.assertContainsRe(help_x, "Options:")
137
 
        self.assertContainsRe(help_x, "Description:")
138
 
        self.assertContainsRe(help_x, "Examples:")
139
 
        self.assertContainsRe(help_x, "See also:")
140
 
        self.assertContainsRe(help_x, "Aliases:")
141
 
 
142
 
    def test_help_usage(self):
143
 
        usage  = self.run_bzr('diff --usage')[0]
144
 
        self.assertContainsRe(usage, "Purpose:")
145
 
        self.assertContainsRe(usage, "Usage:")
146
 
        self.assertContainsRe(usage, "Options:")
147
 
        self.assertNotContainsRe(usage, "Description:")
148
 
        self.assertNotContainsRe(usage, "Examples:")
149
 
        self.assertContainsRe(usage, "See also:")
150
 
        self.assertContainsRe(usage, "Aliases:")
 
51
        self.assertEquals(dash_h, qmark_x)
151
52
 
152
53
    def test_help_help(self):
153
 
        help = self.run_bzr('help help')[0]
154
 
        qmark = self.run_bzr('? ?')[0]
 
54
        help = self.runbzr('help help')[0]
 
55
        qmark = self.runbzr('? ?')[0]
155
56
        self.assertEquals(help, qmark)
156
57
        for line in help.split('\n'):
157
58
            if '--long' in line:
158
 
                self.assertContainsRe(line,
159
 
                    r'Show help on all commands\.')
160
 
 
161
 
    def test_help_with_aliases(self):
162
 
        original = self.run_bzr('help cat')[0]
163
 
 
164
 
        ensure_config_dir_exists()
165
 
        CONFIG=("[ALIASES]\n"
166
 
        "c=cat\n"
167
 
        "cat=cat\n")
168
 
 
169
 
        open(config_filename(),'wb').write(CONFIG)
170
 
 
171
 
        expected = original + "'bzr cat' is an alias for 'bzr cat'.\n"
172
 
        self.assertEqual(expected, self.run_bzr('help cat')[0])
173
 
 
174
 
        self.assertEqual("'bzr c' is an alias for 'bzr cat'.\n",
175
 
                         self.run_bzr('help c')[0])
 
59
                self.assertTrue('show help on all commands' in line)