Skip to content

Commit

Permalink
improve tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Kukant committed Oct 17, 2024
1 parent 10003c3 commit df86260
Showing 1 changed file with 55 additions and 6 deletions.
61 changes: 55 additions & 6 deletions tests/mocks/test_retry.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
from .table_responses import list_response


class NoRetriesEndpoint(Endpoint):
def __init__(self, root_url, token):
super().__init__(root_url, 'no-retries', token, max_requests_retries=0)
class RetriesEndpoint(Endpoint):
def __init__(self, root_url, token, retries_count):
super().__init__(root_url, 'retries', token, max_requests_retries=retries_count)

def list(self):
return self._get(self.base_url)
Expand All @@ -29,7 +29,8 @@ def setUp(self):
token = 'dummy_token'
base_url = 'https://connection.keboola.com/'
self.tables = Tables(base_url, token)
self.no_retries = NoRetriesEndpoint(base_url, token)
self.no_retries = RetriesEndpoint(base_url, token, 0)
self.two_retries = RetriesEndpoint(base_url, token, 2)

@responses.activate
@patch('time.sleep', return_value=None)
Expand Down Expand Up @@ -104,17 +105,65 @@ def test_no_retries(self, sleep_mock):
responses.add(
responses.Response(
method='GET',
url='https://connection.keboola.com/v2/storage/no-retries',
url='https://connection.keboola.com/v2/storage/retries',
json=list_response,
status=502
)
)
responses.add(
responses.Response(
method='GET',
url='https://connection.keboola.com/v2/storage/no-retries',
url='https://connection.keboola.com/v2/storage/retries',
json=list_response,
)
)
with self.assertRaises(requests.exceptions.HTTPError):
self.no_retries.list()

@responses.activate
@patch('time.sleep', return_value=None)
def test_two_retries_fail(self, sleep_mock):
"""
Request wont be retried for endpoints that configured it.
"""
for i in range(3):
responses.add(
responses.Response(
method='GET',
url='https://connection.keboola.com/v2/storage/retries',
json=list_response,
status=502
)
)
responses.add(
responses.Response(
method='GET',
url='https://connection.keboola.com/v2/storage/retries',
json=list_response,
)
)
with self.assertRaises(requests.exceptions.HTTPError):
self.two_retries.list()

@responses.activate
@patch('time.sleep', return_value=None)
def test_two_retries_ok(self, sleep_mock):
"""
Request wont be retried for endpoints that configured it.
"""
responses.add(
responses.Response(
method='GET',
url='https://connection.keboola.com/v2/storage/retries',
json=list_response,
status=502
)
)
responses.add(
responses.Response(
method='GET',
url='https://connection.keboola.com/v2/storage/retries',
json=list_response,
)
)
assert isinstance(self.two_retries.list(), list)

0 comments on commit df86260

Please sign in to comment.