diff options
Diffstat (limited to 'tests/test_commandmanager.py')
-rw-r--r-- | tests/test_commandmanager.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/test_commandmanager.py b/tests/test_commandmanager.py index 6be244e..1945f2e 100644 --- a/tests/test_commandmanager.py +++ b/tests/test_commandmanager.py @@ -1,4 +1,6 @@ +import mock + from cliff.commandmanager import CommandManager @@ -47,3 +49,47 @@ def test_lookup_with_remainder(): ]: yield check, mgr, expected return + + +def test_find_invalid_command(): + mgr = TestCommandManager('test') + def check_one(argv): + try: + mgr.find_command(argv) + except ValueError as err: + assert '-b' in ('%s' % err) + else: + assert False, 'expected a failure' + for argv in [['a', '-b'], + ['-b'], + ]: + yield check_one, argv + + +def test_find_unknown_command(): + mgr = TestCommandManager('test') + try: + mgr.find_command(['a', 'b']) + except ValueError as err: + assert "['a', 'b']" in ('%s' % err) + else: + assert False, 'expected a failure' + + +def test_add_command(): + mgr = TestCommandManager('test') + mock_cmd = mock.Mock() + mgr.add_command('mock', mock_cmd) + found_cmd, name, args = mgr.find_command(['mock']) + assert found_cmd is mock_cmd + + +def test_load_commands(): + testcmd = mock.Mock(name='testcmd') + testcmd.name.replace.return_value = 'test' + mock_pkg_resources = mock.Mock(return_value=[testcmd]) + with mock.patch('pkg_resources.iter_entry_points', mock_pkg_resources) as iter_entry_points: + mgr = CommandManager('test') + assert iter_entry_points.called_once_with('test') + names = [n for n, v in mgr] + assert names == ['test'] |