Extract exceptions - toot - Unnamed repository; edit this file 'description' to… | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit 7bbc98363edfb64ca7e07bbe1dab7b46ab1210bd | |
parent 177af4fac959be2a22940d141feab4f8848379c5 | |
Author: Ivan Habunek <[email protected]> | |
Date: Sat, 30 Dec 2017 13:32:52 +0100 | |
Extract exceptions | |
Diffstat: | |
tests/test_console.py | 3 ++- | |
toot/__init__.py | 4 ---- | |
toot/api.py | 13 +------------ | |
toot/app.py | 2 +- | |
toot/auth.py | 5 +++-- | |
toot/commands.py | 3 ++- | |
toot/console.py | 5 +++-- | |
toot/exceptions.py | 14 ++++++++++++++ | |
8 files changed, 26 insertions(+), 23 deletions(-) | |
--- | |
diff --git a/tests/test_console.py b/tests/test_console.py | |
@@ -3,7 +3,8 @@ import pytest | |
import requests | |
import re | |
-from toot import console, User, App, ConsoleError | |
+from toot import console, User, App | |
+from toot.exceptions import ConsoleError | |
from tests.utils import MockResponse | |
diff --git a/toot/__init__.py b/toot/__init__.py | |
@@ -9,7 +9,3 @@ DEFAULT_INSTANCE = 'mastodon.social' | |
CLIENT_NAME = 'toot - a Mastodon CLI client' | |
CLIENT_WEBSITE = 'https://github.com/ihabunek/toot' | |
- | |
- | |
-class ConsoleError(Exception): | |
- pass | |
diff --git a/toot/api.py b/toot/api.py | |
@@ -9,22 +9,11 @@ from urllib.parse import urlparse, urlencode | |
from toot import CLIENT_NAME, CLIENT_WEBSITE | |
from toot.utils import domain_exists | |
from toot.logging import log_request, log_response | |
+from toot.exceptions import ApiError, AuthenticationError, NotFoundError | |
SCOPES = 'read write follow' | |
-class ApiError(Exception): | |
- pass | |
- | |
- | |
-class NotFoundError(ApiError): | |
- pass | |
- | |
- | |
-class AuthenticationError(ApiError): | |
- pass | |
- | |
- | |
def _process_response(response): | |
log_response(response) | |
diff --git a/toot/app.py b/toot/app.py | |
@@ -4,7 +4,7 @@ import webbrowser | |
from textwrap import wrap | |
-from toot import ConsoleError | |
+from toot.exceptions import ConsoleError | |
from toot.utils import format_content | |
# Attempt to load curses, which is not available on windows | |
diff --git a/toot/auth.py b/toot/auth.py | |
@@ -5,7 +5,8 @@ import webbrowser | |
from builtins import input | |
from getpass import getpass | |
-from toot import api, config, DEFAULT_INSTANCE, User, App, ConsoleError | |
+from toot import api, config, DEFAULT_INSTANCE, User, App | |
+from toot.exceptions import ApiError, ConsoleError | |
from toot.output import print_out | |
@@ -59,7 +60,7 @@ def login_interactive(app, email=None): | |
try: | |
print_out("Authenticating...") | |
response = api.login(app, email, password) | |
- except api.ApiError: | |
+ except ApiError: | |
raise ConsoleError("Login failed") | |
return create_user(app, email, response['access_token']) | |
diff --git a/toot/commands.py b/toot/commands.py | |
@@ -6,8 +6,9 @@ from itertools import zip_longest | |
from itertools import chain | |
from textwrap import TextWrapper | |
-from toot import api, config, ConsoleError | |
+from toot import api, config | |
from toot.auth import login_interactive, login_browser_interactive, create_app… | |
+from toot.exceptions import ConsoleError | |
from toot.output import print_out, print_instance, print_account, print_search… | |
diff --git a/toot/console.py b/toot/console.py | |
@@ -5,7 +5,8 @@ import logging | |
from argparse import ArgumentParser, FileType | |
from collections import namedtuple | |
-from toot import config, api, commands, ConsoleError, CLIENT_NAME, CLIENT_WEBS… | |
+from toot import config, commands, CLIENT_NAME, CLIENT_WEBSITE | |
+from toot.exceptions import ApiError, ConsoleError | |
from toot.output import print_out, print_err | |
@@ -311,6 +312,6 @@ def main(): | |
except ConsoleError as e: | |
print_err(str(e)) | |
sys.exit(1) | |
- except api.ApiError as e: | |
+ except ApiError as e: | |
print_err(str(e)) | |
sys.exit(1) | |
diff --git a/toot/exceptions.py b/toot/exceptions.py | |
@@ -0,0 +1,14 @@ | |
+class ApiError(Exception): | |
+ """Raised when an API request fails for whatever reason.""" | |
+ | |
+ | |
+class NotFoundError(ApiError): | |
+ """Raised when an API requests returns a 404.""" | |
+ | |
+ | |
+class AuthenticationError(ApiError): | |
+ """Raised when login fails.""" | |
+ | |
+ | |
+class ConsoleError(Exception): | |
+ """Raised when an error occurs which needs to be show to the user.""" |