diff --git a/tests/integration/test_lists.py b/tests/integration/test_lists.py
index c9fd392..dc2e3f5 100644
--- a/tests/integration/test_lists.py
+++ b/tests/integration/test_lists.py
@@ -1,6 +1,7 @@
-from toot import api
+import pytest
from tests.integration.conftest import register_account
+from toot.exceptions import ConsoleError
def test_lists_empty(run):
@@ -35,6 +36,10 @@ def test_list_create_delete(run):
out = run("lists")
assert out == "You have no lists defined."
+ with pytest.raises(ConsoleError) as exc:
+ run("list_delete", "mango")
+ assert str(exc.value) == "List not found"
+
def test_list_add_remove(run, app):
acc = register_account(app)
@@ -51,6 +56,16 @@ def test_list_add_remove(run, app):
out = run("list_accounts", "foo")
assert acc.username in out
+ # Account doesn't exist
+ with pytest.raises(ConsoleError) as exc:
+ run("list_add", "foo", "does_not_exist")
+ assert str(exc.value) == "Account not found"
+
+ # List doesn't exist
+ with pytest.raises(ConsoleError) as exc:
+ run("list_add", "does_not_exist", acc.username)
+ assert str(exc.value) == "List not found"
+
out = run("list_remove", "foo", acc.username)
assert out == f'✓ Removed account "{acc.username}"'
diff --git a/toot/commands.py b/toot/commands.py
index ce34e58..b17cf72 100644
--- a/toot/commands.py
+++ b/toot/commands.py
@@ -434,11 +434,7 @@ def lists(app, user, args):
def list_accounts(app, user, args):
- list_id = args.id if args.id else api.find_list_id(app, user, args.title)
- if not list_id:
- print_out("List not found")
- return
-
+ list_id = _get_list_id(app, user, args)
response = api.get_list_accounts(app, user, list_id)
print_list_accounts(response)
@@ -449,24 +445,15 @@ def list_create(app, user, args):
def list_delete(app, user, args):
- list_id = args.id if args.id else api.find_list_id(app, user, args.title)
- if not list_id:
- print_out("List not found")
- return
-
+ list_id = _get_list_id(app, user, args)
api.delete_list(app, user, list_id)
print_out(f"✓ List \"{args.title if args.title else args.id}\" deleted.")
def list_add(app, user, args):
- list_id = args.id if args.id else api.find_list_id(app, user, args.title)
- if not list_id:
- print_out("List not found")
- return
+ list_id = _get_list_id(app, user, args)
account = find_account(app, user, args.account)
- if not account:
- print_out("Account not found")
- return
+
try:
api.add_accounts_to_list(app, user, list_id, [account['id']])
except Exception as ex:
@@ -484,22 +471,24 @@ def list_add(app, user, args):
else:
print_out(f"{ex}")
return
+
print_out(f"✓ Added account \"{args.account}\"")
def list_remove(app, user, args):
- list_id = args.id if args.id else api.find_list_id(app, user, args.title)
- if not list_id:
- print_out("List not found")
- return
+ list_id = _get_list_id(app, user, args)
account = find_account(app, user, args.account)
- if not account:
- print_out("Account not found")
- return
api.remove_accounts_from_list(app, user, list_id, [account['id']])
print_out(f"✓ Removed account \"{args.account}\"")
+def _get_list_id(app, user, args):
+ list_id = args.id or api.find_list_id(app, user, args.title)
+ if not list_id:
+ raise ConsoleError("List not found")
+ return list_id
+
+
def mute(app, user, args):
account = find_account(app, user, args.account)
api.mute(app, user, account['id'])