Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions click_plugins/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,6 @@ def invoke(self, ctx):

click.echo(self.help, color=ctx.color)
ctx.exit(1)

def parse_args(self, ctx, args):
return args
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
"via setuptools entry-points.",
extras_require={
'dev': [
'pytest>=3',
'pytest>=3.6',
'pytest-cov',
'wheel',
'coveralls'
Expand Down
36 changes: 29 additions & 7 deletions tests/test_plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,23 +78,23 @@ def test_registered():
def test_register_and_run(runner):

result = runner.invoke(good_cli)
assert result.exit_code is 0
assert result.exit_code == 0

for ep in iter_entry_points('_test_click_plugins.test_plugins'):
cmd_result = runner.invoke(good_cli, [ep.name, 'something'])
assert cmd_result.exit_code is 0
assert cmd_result.exit_code == 0
assert cmd_result.output.strip() == 'passed'


def test_broken_register_and_run(runner):

result = runner.invoke(broken_cli)
assert result.exit_code is 0
assert result.exit_code == 0
assert u'\U0001F4A9' in result.output or u'\u2020' in result.output

for ep in iter_entry_points('_test_click_plugins.broken_plugins'):
cmd_result = runner.invoke(broken_cli, [ep.name])
assert cmd_result.exit_code is not 0
assert cmd_result.exit_code != 0
assert 'Traceback' in cmd_result.output


Expand All @@ -108,7 +108,7 @@ def sub_cli():
pass

result = runner.invoke(good_cli)
assert result.exit_code is 0
assert result.exit_code == 0
assert sub_cli.name in result.output
for ep in iter_entry_points('_test_click_plugins.test_plugins'):
assert ep.name in result.output
Expand All @@ -121,13 +121,13 @@ def sub_cli_plugins():
pass

result = runner.invoke(good_cli, ['sub-cli-plugins'])
assert result.exit_code is 0
assert result.exit_code == 0
for ep in iter_entry_points('_test_click_plugins.test_plugins'):
assert ep.name in result.output

# Execute one of the sub-group's commands
result = runner.invoke(good_cli, ['sub-cli-plugins', 'cmd1', 'something'])
assert result.exit_code is 0
assert result.exit_code == 0
assert result.output.strip() == 'passed'


Expand All @@ -138,3 +138,25 @@ def test_exception():
@click.command()
def cli():
"""Whatever"""


def test_broken_register_and_run_with_help(runner):
result = runner.invoke(broken_cli)
assert result.exit_code == 0
assert u'\U0001F4A9' in result.output or u'\u2020' in result.output

for ep in iter_entry_points('_test_click_plugins.broken_plugins'):
cmd_result = runner.invoke(broken_cli, [ep.name, "--help"])
assert cmd_result.exit_code != 0
assert 'Traceback' in cmd_result.output


def test_broken_register_and_run_with_args(runner):
result = runner.invoke(broken_cli)
assert result.exit_code == 0
assert u'\U0001F4A9' in result.output or u'\u2020' in result.output

for ep in iter_entry_points('_test_click_plugins.broken_plugins'):
cmd_result = runner.invoke(broken_cli, [ep.name, "-a", "b"])
assert cmd_result.exit_code != 0
assert 'Traceback' in cmd_result.output