Change entry point group naming for subcommands
and use fallback to find subcommands registered via legacy naming
This commit is contained in:
parent
d8252f029d
commit
ea9a9ade57
3 changed files with 57 additions and 32 deletions
|
@ -6,6 +6,7 @@ from unittest import TestCase
|
|||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from wuttjamaican.commands import base
|
||||
from wuttjamaican.commands.setup import Setup
|
||||
|
||||
|
||||
class TestCommand(TestCase):
|
||||
|
@ -17,6 +18,27 @@ class TestCommand(TestCase):
|
|||
self.assertIn('setup', cmd.subcommands)
|
||||
self.assertEqual(str(cmd), 'wutta')
|
||||
|
||||
def test_subcommand_entry_points(self):
|
||||
with patch('wuttjamaican.commands.base.load_entry_points') as load_entry_points:
|
||||
|
||||
# empty entry points
|
||||
load_entry_points.side_effect = lambda group: {}
|
||||
cmd = base.Command()
|
||||
self.assertEqual(cmd.subcommands, {})
|
||||
|
||||
# typical entry points
|
||||
load_entry_points.side_effect = lambda group: {'setup': Setup}
|
||||
cmd = base.Command()
|
||||
self.assertEqual(cmd.subcommands, {'setup': Setup})
|
||||
self.assertEqual(cmd.subcommands['setup'].name, 'setup')
|
||||
|
||||
# legacy entry points
|
||||
# nb. mock returns entry points only when legacy name is used
|
||||
load_entry_points.side_effect = lambda group: {} if 'subcommands' in group else {'setup': Setup}
|
||||
cmd = base.Command()
|
||||
self.assertEqual(cmd.subcommands, {'setup': Setup})
|
||||
self.assertEqual(cmd.subcommands['setup'].name, 'setup')
|
||||
|
||||
def test_sorted_subcommands(self):
|
||||
cmd = base.Command(subcommands={'foo': 'FooSubcommand',
|
||||
'bar': 'BarSubcommand'})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue