feat: list moderators (#204)
This commit is contained in:
@@ -100,6 +100,26 @@ def list_toolkits() -> None:
|
|||||||
print(f" - [bold]{toolkit_name}[/bold]: {first_line_of_doc}")
|
print(f" - [bold]{toolkit_name}[/bold]: {first_line_of_doc}")
|
||||||
|
|
||||||
|
|
||||||
|
@goose_cli.group()
|
||||||
|
def moderators() -> None:
|
||||||
|
"""Manage moderators"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@moderators.command(name="list")
|
||||||
|
def list_moderators() -> None:
|
||||||
|
"""List available moderators"""
|
||||||
|
from exchange.moderators import load_plugins
|
||||||
|
|
||||||
|
moderators = load_plugins(group="exchange.moderator")
|
||||||
|
|
||||||
|
print("[green]Available moderators:[/green]")
|
||||||
|
for moderator_name, moderator in moderators.items():
|
||||||
|
lines_doc = moderator.__doc__.split("\n") if moderator.__doc__ else ["No description available"]
|
||||||
|
first_line_of_doc = lines_doc[0]
|
||||||
|
print(f" - [bold]{moderator_name}[/bold]: {first_line_of_doc}")
|
||||||
|
|
||||||
|
|
||||||
@goose_cli.group()
|
@goose_cli.group()
|
||||||
def providers() -> None:
|
def providers() -> None:
|
||||||
"""Manage providers"""
|
"""Manage providers"""
|
||||||
|
|||||||
@@ -163,3 +163,13 @@ def test_goose_no_args_print_help():
|
|||||||
assert "Usage:" in result.output
|
assert "Usage:" in result.output
|
||||||
assert "Options:" in result.output
|
assert "Options:" in result.output
|
||||||
assert "Commands:" in result.output
|
assert "Commands:" in result.output
|
||||||
|
|
||||||
|
|
||||||
|
def test_moderators_list_command():
|
||||||
|
runner = CliRunner()
|
||||||
|
result = runner.invoke(cli, ["moderators", "list"])
|
||||||
|
assert result.exit_code == 0
|
||||||
|
assert "Available moderators:" in result.output
|
||||||
|
assert "passive" in result.output
|
||||||
|
assert "summarize" in result.output
|
||||||
|
assert "truncate" in result.output
|
||||||
|
|||||||
Reference in New Issue
Block a user