summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Hellmann <doug@doughellmann.com>2017-07-06 15:17:12 -0400
committerRajath Agasthya <rajathagasthya@gmail.com>2017-07-06 15:39:39 -0700
commitd025ad9cd35189c363e89a82395c54f504264aa7 (patch)
treec762223e91ecb3264850a9c26082c114df6057ad
parentc6d258da1ca18b9330f5b0554f57e8f67542b9fe (diff)
downloadcliff-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.py102
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)