Skip to content

Commit

Permalink
Added tests for request error/exception retry logic
Browse files Browse the repository at this point in the history
  • Loading branch information
fuzeman committed Jan 7, 2018
1 parent c85e496 commit 2187419
Showing 1 changed file with 85 additions and 0 deletions.
85 changes: 85 additions & 0 deletions tests/test_http.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
from trakt import Trakt

from httmock import HTTMock
from requests.exceptions import ConnectionError
from threading import Event
import httmock
import pytest


def test_shows_updates():
Expand All @@ -28,3 +32,84 @@ def test_show_progress_collection():

assert data['aired'] == 10
assert data['completed'] == 6


def test_exception():
ev = Event()

@httmock.all_requests
def handler(url, request):
if ev.is_set():
return httmock.response(201, request=request)

# Set event
ev.set()

# Raise error
raise ConnectionError('Example')

with HTTMock(handler):
with pytest.raises(ConnectionError):
Trakt.http.get('/test')


def test_exception_retry():
ev = Event()

@httmock.all_requests
def handler(url, request):
if ev.is_set():
return httmock.response(201, request=request)

# Set event
ev.set()

# Raise error
raise ConnectionError('Example')

with HTTMock(handler):
with Trakt.configuration.http(retry=True):
response = Trakt.http.get('/test')

assert response.status_code == 201


def test_error():
ev = Event()

@httmock.all_requests
def handler(url, request):
if ev.is_set():
return httmock.response(201, request=request)

# Set event
ev.set()

# Return error
return httmock.response(504, request=request)

with HTTMock(handler):
response = Trakt.http.get('/test')

assert response.status_code == 504


def test_error_retry():
ev = Event()

@httmock.all_requests
def handler(url, request):
if ev.is_set():
return httmock.response(201, request=request)

# Set event
ev.set()

# Return error
return httmock.response(504, request=request)

with HTTMock(handler):
with Trakt.configuration.http(retry=True):
response = Trakt.http.get('/test')

assert response.status_code == 201

0 comments on commit 2187419

Please sign in to comment.