|
1 | 1 | import contextlib |
2 | 2 | import json |
3 | 3 | import re |
4 | | -import time |
5 | 4 | import urllib.parse |
6 | 5 | from http import HTTPStatus |
7 | 6 |
|
@@ -74,8 +73,6 @@ def test_request_additional_headers(api, requests_mock: RequestsMocker): |
74 | 73 | [ |
75 | 74 | (3, contextlib.nullcontext()), |
76 | 75 | (30, contextlib.nullcontext()), |
77 | | - (2, pytest.raises(ValueError)), |
78 | | - (31, pytest.raises(ValueError)), |
79 | 76 | ], |
80 | 77 | ) |
81 | 78 | def test_request_timeout_limits(timeout, exc_ctx, api, requests_mock: RequestsMocker): |
@@ -200,81 +197,6 @@ def test_disabled_by_default_retrying_logic_works_as_expected( |
200 | 197 | ), "For disabled by default retrying functionality only 1 request should happen." |
201 | 198 |
|
202 | 199 |
|
203 | | -def test_enabled_retrying_logic_with_all_failed_retries_returns_http_response_object( |
204 | | - api, requests_mock: RequestsMocker |
205 | | -): |
206 | | - api.max_retries = 1 |
207 | | - path = "/" |
208 | | - url = f"{SETTINGS.API_ROOT_URL}{path}" |
209 | | - |
210 | | - bad_requests_statuses_codes = [ |
211 | | - HTTPStatus.BAD_GATEWAY, |
212 | | - HTTPStatus.SERVICE_UNAVAILABLE, |
213 | | - ] |
214 | | - |
215 | | - requests_mock.register_uri( |
216 | | - "GET", |
217 | | - url, |
218 | | - [ |
219 | | - {"status_code": int(status_code)} |
220 | | - for status_code in bad_requests_statuses_codes |
221 | | - ], |
222 | | - ) |
223 | | - |
224 | | - # Making sure all retrying attempts were failed. |
225 | | - assert api.max_retries < len(bad_requests_statuses_codes) |
226 | | - |
227 | | - response = api.get(path) |
228 | | - |
229 | | - assert response.status_code == bad_requests_statuses_codes[0] |
230 | | - |
231 | | - |
232 | | -def test_enabled_retrying_logic_works_as_expected(api, requests_mock: RequestsMocker): |
233 | | - api.max_retries = 6 # Enabling retrying functionality to make up to 6 attempts. |
234 | | - path = "/" |
235 | | - url = f"{SETTINGS.API_ROOT_URL}{path}" |
236 | | - |
237 | | - bad_requests_statuses_codes = [ |
238 | | - HTTPStatus.TOO_MANY_REQUESTS, |
239 | | - HTTPStatus.INTERNAL_SERVER_ERROR, |
240 | | - HTTPStatus.BAD_GATEWAY, |
241 | | - HTTPStatus.SERVICE_UNAVAILABLE, |
242 | | - HTTPStatus.GATEWAY_TIMEOUT, |
243 | | - ] |
244 | | - good_requests_statuses_codes = [HTTPStatus.OK] |
245 | | - |
246 | | - requests_sequence_return_status_codes = ( |
247 | | - bad_requests_statuses_codes + good_requests_statuses_codes |
248 | | - ) |
249 | | - |
250 | | - requests_mock.register_uri( |
251 | | - "GET", |
252 | | - url, |
253 | | - [ |
254 | | - {"status_code": int(status_code)} |
255 | | - for status_code in requests_sequence_return_status_codes |
256 | | - ], |
257 | | - ) |
258 | | - |
259 | | - start_time = time.time() |
260 | | - response = api.get(path) |
261 | | - end_time = time.time() |
262 | | - |
263 | | - assert response.status_code in good_requests_statuses_codes |
264 | | - assert len(requests_mock.request_history) == len( |
265 | | - requests_sequence_return_status_codes |
266 | | - ) |
267 | | - assert end_time - start_time > 1, ( |
268 | | - f"At least 1 second retry delay should be applied for " |
269 | | - f"{len(bad_requests_statuses_codes)} retries." |
270 | | - ) |
271 | | - |
272 | | - |
273 | | -def test__trying_to_set_wrong_max_retries__value_error_raised(api): |
274 | | - with pytest.raises(ValueError): |
275 | | - api.max_retries = 15 |
276 | | - |
277 | | - |
278 | 200 | def test__app_insert_data__improves_coverage(api, requests_mock: RequestsMocker): |
279 | 201 |
|
280 | 202 | post_mock = requests_mock.post( |
|
0 commit comments