diff options
author | Doug Hellmann <doug@doughellmann.com> | 2017-07-06 15:17:12 -0400 |
---|---|---|
committer | Rajath Agasthya <rajathagasthya@gmail.com> | 2017-07-06 15:39:39 -0700 |
commit | d025ad9cd35189c363e89a82395c54f504264aa7 (patch) | |
tree | c762223e91ecb3264850a9c26082c114df6057ad | |
parent | c6d258da1ca18b9330f5b0554f57e8f67542b9fe (diff) | |
download | cliff-2.8.0.tar.gz |
add tests for display command classes and hooks2.8.0
Change-Id: Icf17fbcedf3ea9481abef0fd9ebb435648693be3
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
-rw-r--r-- | cliff/tests/test_command_hooks.py | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/cliff/tests/test_command_hooks.py b/cliff/tests/test_command_hooks.py index d4af103..589f067 100644 --- a/cliff/tests/test_command_hooks.py +++ b/cliff/tests/test_command_hooks.py @@ -14,6 +14,8 @@ from cliff import app as application from cliff import command from cliff import commandmanager from cliff import hooks +from cliff import lister +from cliff import show from cliff.tests import base import mock @@ -60,6 +62,22 @@ class TestCommand(command.Command): return 42 +class TestShowCommand(show.ShowOne): + """Description of command. + """ + + def take_action(self, parsed_args): + return (('Name',), ('value',)) + + +class TestListerCommand(lister.Lister): + """Description of command. + """ + + def take_action(self, parsed_args): + return (('Name',), [('value',)]) + + class TestHook(hooks.CommandHook): _before_called = False @@ -131,3 +149,87 @@ class TestHooks(base.TestBase): self.assertFalse(self.hook._after_called) self.cmd.run(None) self.assertTrue(self.hook._after_called) + + +class TestShowOneHooks(base.TestBase): + + def setUp(self): + super(TestShowOneHooks, self).setUp() + self.app = make_app() + self.cmd = TestShowCommand(self.app, None, cmd_name='test') + self.hook = TestHook(self.cmd) + self.mgr = extension.ExtensionManager.make_test_instance( + [extension.Extension( + 'parser-hook', + None, + None, + self.hook)], + ) + # Replace the auto-loaded hooks with our explicitly created + # manager. + self.cmd._hooks = self.mgr + + def test_get_parser(self): + parser = self.cmd.get_parser('test') + results = parser.parse_args(['--added-by-hook', 'value']) + self.assertEqual(results.added_by_hook, 'value') + + def test_get_epilog(self): + results = self.cmd.get_epilog() + self.assertIn('hook epilog', results) + + def test_before(self): + self.assertFalse(self.hook._before_called) + parser = self.cmd.get_parser('test') + results = parser.parse_args(['--added-by-hook', 'value']) + self.cmd.run(results) + self.assertTrue(self.hook._before_called) + + def test_after(self): + self.assertFalse(self.hook._after_called) + parser = self.cmd.get_parser('test') + results = parser.parse_args(['--added-by-hook', 'value']) + self.cmd.run(results) + self.assertTrue(self.hook._after_called) + + +class TestListerHooks(base.TestBase): + + def setUp(self): + super(TestListerHooks, self).setUp() + self.app = make_app() + self.cmd = TestListerCommand(self.app, None, cmd_name='test') + self.hook = TestHook(self.cmd) + self.mgr = extension.ExtensionManager.make_test_instance( + [extension.Extension( + 'parser-hook', + None, + None, + self.hook)], + ) + # Replace the auto-loaded hooks with our explicitly created + # manager. + self.cmd._hooks = self.mgr + + def test_get_parser(self): + parser = self.cmd.get_parser('test') + results = parser.parse_args(['--added-by-hook', 'value']) + self.assertEqual(results.added_by_hook, 'value') + + def test_get_epilog(self): + results = self.cmd.get_epilog() + self.assertIn('hook epilog', results) + + def test_before(self): + self.assertFalse(self.hook._before_called) + parser = self.cmd.get_parser('test') + results = parser.parse_args(['--added-by-hook', 'value']) + self.cmd.run(results) + self.assertTrue(self.hook._before_called) + + def test_after(self): + self.assertFalse(self.hook._after_called) + parser = self.cmd.get_parser('test') + results = parser.parse_args(['--added-by-hook', 'value']) + self.cmd.run(results) + self.assertTrue(self.hook._after_called) |