diff options
author | Doug Hellmann <doug.hellmann@dreamhost.com> | 2012-04-29 15:22:20 -0400 |
---|---|---|
committer | Doug Hellmann <doug.hellmann@dreamhost.com> | 2012-04-29 15:22:20 -0400 |
commit | 607d283d8809efee02c86b3a73e2d3b3227a6ffe (patch) | |
tree | 84dbb10b5b01fd460faa8805d9b3bcfd05a2c3f6 | |
parent | 00b9564a09484b62d9de55c0db2f726e0b79b020 (diff) | |
download | cliff-tablib-607d283d8809efee02c86b3a73e2d3b3227a6ffe.tar.gz |
100% coverage for 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'] |