diff --git a/rtv/content.py b/rtv/content.py index 8a4537d..8fb199c 100644 --- a/rtv/content.py +++ b/rtv/content.py @@ -429,7 +429,10 @@ class SubredditContent(Content): try: self.get(0) except IndexError: - raise exceptions.SubredditError('No submissions') + full_name = self.name + if self.order: + full_name += '/' + self.order + raise exceptions.NoSubmissionsError(full_name) @classmethod def from_name(cls, reddit, name, loader, order=None, query=None): diff --git a/rtv/exceptions.py b/rtv/exceptions.py index fd1432d..4cd582b 100644 --- a/rtv/exceptions.py +++ b/rtv/exceptions.py @@ -22,8 +22,13 @@ class SubmissionError(RTVError): "Submission could not be loaded" -class SubredditError(RTVError): - "Subreddit could not be reached" +class NoSubmissionsError(RTVError): + "No submissions for the given page" + + def __init__(self, name): + self.name = name + message = '`{0}` has no submissions'.format(name) + super(NoSubmissionsError, self).__init__(message) class SubscriptionError(RTVError): diff --git a/rtv/objects.py b/rtv/objects.py index 377751f..bfa18bb 100644 --- a/rtv/objects.py +++ b/rtv/objects.py @@ -120,6 +120,7 @@ class LoadScreen(object): (praw.errors.OAuthScopeRequired, 'Not logged in'), (praw.errors.LoginRequired, 'Not logged in'), (praw.errors.InvalidCaptcha, 'Error, captcha required'), + (praw.errors.InvalidSubreddit, '{0.args[0]}'), (praw.errors.PRAWException, '{0.__class__.__name__}'), (requests.exceptions.RequestException, '{0.__class__.__name__}'), ] diff --git a/tests/test_content.py b/tests/test_content.py index 8435808..69d9627 100644 --- a/tests/test_content.py +++ b/tests/test_content.py @@ -399,8 +399,9 @@ def test_content_subreddit_me(reddit, oauth, refresh_token, terminal): # If there is no submitted content, an error should be raised if terminal.loader.exception: - assert isinstance(terminal.loader.exception, exceptions.SubredditError) - + assert isinstance(terminal.loader.exception, + exceptions.NoSubmissionsError) + assert terminal.loader.exception.name == '/u/me' def test_content_subscription(reddit, terminal):