Merge "add hook for get_epilog"
This commit is contained in:
commit
f9466f238d
|
@ -89,6 +89,16 @@ class Command(object):
|
|||
|
||||
def get_epilog(self):
|
||||
"""Return the command epilog."""
|
||||
hook_epilogs = filter(
|
||||
None,
|
||||
(h.obj.get_epilog() for h in self._hooks),
|
||||
)
|
||||
if hook_epilogs:
|
||||
# combine them, replacing a None in self._epilog with an
|
||||
# empty string
|
||||
parts = [self._epilog or '']
|
||||
parts.extend(hook_epilogs)
|
||||
return '\n\n'.join(parts)
|
||||
return self._epilog
|
||||
|
||||
def get_parser(self, prog_name):
|
||||
|
|
|
@ -36,3 +36,8 @@ class CommandHook(object):
|
|||
:returns: ArgumentParser
|
||||
"""
|
||||
return parser
|
||||
|
||||
@abc.abstractmethod
|
||||
def get_epilog(self):
|
||||
"Return text to add to the command help epilog."
|
||||
return ''
|
||||
|
|
|
@ -66,6 +66,9 @@ class TestHook(hooks.CommandHook):
|
|||
parser.add_argument('--added-by-hook')
|
||||
return parser
|
||||
|
||||
def get_epilog(self):
|
||||
return 'hook epilog'
|
||||
|
||||
|
||||
class TestCommandLoadHooks(base.TestBase):
|
||||
|
||||
|
@ -83,10 +86,10 @@ class TestCommandLoadHooks(base.TestBase):
|
|||
self.assertEqual('cliff.tests.test', kwargs['namespace'])
|
||||
|
||||
|
||||
class TestParserHook(base.TestBase):
|
||||
class TestHooks(base.TestBase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestParserHook, self).setUp()
|
||||
super(TestHooks, self).setUp()
|
||||
self.app = make_app()
|
||||
self.cmd = TestCommand(self.app, None, cmd_name='test')
|
||||
self.hook = TestHook(self.cmd)
|
||||
|
@ -105,3 +108,7 @@ class TestParserHook(base.TestBase):
|
|||
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)
|
||||
|
|
|
@ -39,3 +39,6 @@ class Hook(CommandHook):
|
|||
print('sample hook get_parser()')
|
||||
parser.add_argument('--added-by-hook')
|
||||
return parser
|
||||
|
||||
def get_epilog(self):
|
||||
return 'extension epilog text'
|
||||
|
|
|
@ -293,6 +293,8 @@ single ``--added-by-hook`` option.
|
|||
-h, --help show this help message and exit
|
||||
--added-by-hook ADDED_BY_HOOK
|
||||
|
||||
extension epilog text
|
||||
|
||||
.. seealso::
|
||||
|
||||
:class:`cliff.hooks.CommandHook` -- The API for command hooks.
|
||||
|
|
Loading…
Reference in New Issue