Skip to content

Commit 0da9e39

Browse files
authored
Merge pull request #451 from jjlawren/raise_notfound
Raise NotFound on 404 errors
2 parents e56bb29 + 049791c commit 0da9e39

File tree

4 files changed

+12
-1
lines changed

4 files changed

+12
-1
lines changed

plexapi/client.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from plexapi import BASE_HEADERS, CONFIG, TIMEOUT, log, logfilter, utils
66
from plexapi.base import PlexObject
77
from plexapi.compat import ElementTree
8-
from plexapi.exceptions import BadRequest, Unauthorized, Unsupported
8+
from plexapi.exceptions import BadRequest, NotFound, Unauthorized, Unsupported
99
from plexapi.playqueue import PlayQueue
1010
from requests.status_codes import _codes as codes
1111

@@ -163,6 +163,8 @@ def query(self, path, method=None, headers=None, timeout=None, **kwargs):
163163
message = '(%s) %s; %s %s' % (response.status_code, codename, response.url, errtext)
164164
if response.status_code == 401:
165165
raise Unauthorized(message)
166+
elif response.status_code == 404:
167+
raise NotFound(message)
166168
else:
167169
raise BadRequest(message)
168170
data = response.text.encode('utf8')

plexapi/myplex.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,8 @@ def query(self, url, method=None, headers=None, timeout=None, **kwargs):
185185
message = '(%s) %s; %s %s' % (response.status_code, codename, response.url, errtext)
186186
if response.status_code == 401:
187187
raise Unauthorized(message)
188+
elif response.status_code == 404:
189+
raise NotFound(message)
188190
else:
189191
raise BadRequest(message)
190192
data = response.text.encode('utf8')

plexapi/server.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,8 @@ def query(self, key, method=None, headers=None, timeout=None, **kwargs):
427427
message = '(%s) %s; %s %s' % (response.status_code, codename, response.url, errtext)
428428
if response.status_code == 401:
429429
raise Unauthorized(message)
430+
elif response.status_code == 404:
431+
raise NotFound(message)
430432
else:
431433
raise BadRequest(message)
432434
data = response.text.encode('utf8')

tests/test_server.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ def _detect_color_image(file, thumb_size=150, MSE_cutoff=22, adjust_color_bias=T
9090
return 'blackandwhite'
9191

9292

93+
def test_server_fetchitem_notfound(plex):
94+
with pytest.raises(NotFound):
95+
plex.fetchItem(123456789)
96+
97+
9398
def test_server_search(plex, movie):
9499
title = movie.title
95100
# this search seem to fail on my computer but not at travis, wtf.

0 commit comments

Comments
 (0)