17
17
from optparse import make_option
18
from abrek.command import AbrekCmd, get_command, get_all_cmds
18
from abrek.command import (
20
AbrekCmdWithSubcommands,
21
26
class testAbrekCmd(unittest.TestCase):
72
77
self.assertTrue(expected_str in cmd.help())
74
79
def test_subcmds(self):
75
expected_str = 'Sub-Commands:\n foo'
76
class subcmd_test(AbrekCmd):
80
expected_str = 'Available sub-commands:\n foo'
79
class cmd_test_subcmds(AbrekCmd):
80
subcmds = {'foo':subcmd_test()}
82
class cmd_test_subcmds(AbrekCmdWithSubcommands):
83
"""Help for test-subcmds."""
84
class cmd_foo(AbrekCmd):
82
86
cmd = cmd_test_subcmds()
83
self.assertTrue(expected_str in cmd.help())
88
expected_str in cmd.help()
89
and 'Help for test-subcmds.' in cmd.help())
85
91
def test_subcmds_run(self):
86
92
expected_str = "subcmd test str"
87
class subcmd_test(AbrekCmd):
91
class cmd_test_subcmds(AbrekCmd):
92
subcmds = {'foo':subcmd_test()}
94
class cmd_test_subcmds(AbrekCmdWithSubcommands):
95
class cmd_foo(AbrekCmd):
94
98
cmd = cmd_test_subcmds()
96
100
self.assertEqual(expected_str, cmd.main(argv))
102
def test_subcmds_name(self):
103
expected_str = "subcmd test str"
105
class cmd_test_subcmds(AbrekCmdWithSubcommands):
106
class cmd_foo(AbrekCmd):
109
cmd = cmd_test_subcmds().get_subcommand('foo')
110
self.assertEqual('test-subcmds foo', cmd.name())
112
def test_subcmds_help(self):
113
expected_str = "subcmd test str"
115
class cmd_test_subcmds(AbrekCmdWithSubcommands):
116
class cmd_foo(AbrekCmd):
120
cmd = cmd_test_subcmds().get_subcommand('foo')
122
'test-subcmds foo' in cmd.help()
123
and 'Help for foo.' in cmd.help())
98
125
def test_subcmd_strip_argv(self):
100
127
Make sure that the argv list is stripped after calling the subcmd
102
class subcmd_test(AbrekCmd):
103
def main(self, argv):
106
class cmd_test_subcmds(AbrekCmd):
107
subcmds = {'foo':subcmd_test()}
130
class cmd_test_subcmds(AbrekCmdWithSubcommands):
131
class cmd_foo(AbrekCmd):
132
def main(self, argv):
109
134
cmd = cmd_test_subcmds()
111
136
self.assertEqual(0, cmd.main(argv))