Skip to content

Commit c4705e9

Browse files
committed
Økt timeout for spørring i apidata til 20 sekunder, og forsøker spørring igjen 5 ganger.
1 parent 0815c11 commit c4705e9

2 files changed

Lines changed: 11 additions & 5 deletions

File tree

src/statbank/get_apidata.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
from typing import TypeVar
1010

1111
import requests as r
12+
from requests.adapters import HTTPAdapter
13+
from requests.adapters import Retry
1214

1315
if TYPE_CHECKING:
1416
from collections.abc import Iterable
@@ -69,7 +71,11 @@ def apidata(
6971

7072
logger.info(url)
7173
# Spør APIet om å få resultatet med requests-biblioteket
72-
resultat = r.post(url, json=payload_now, timeout=10)
74+
with r.Session() as s:
75+
retries = Retry(total=5, backoff_factor=0.1)
76+
s.mount("http://", HTTPAdapter(max_retries=retries))
77+
resultat = s.post(url, json=payload_now, timeout=20)
78+
7379
if not resultat.ok:
7480
_read_error(id_or_url, payload_now, resultat)
7581

tests/test_apidata.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ def test_client_apidata_rotate_05300(
302302
assert ind.isdigit()
303303

304304

305-
@mock.patch.object(requests, "post")
305+
@mock.patch.object(requests.Session, "post")
306306
def test_apidata_raises_parameter_error(
307307
fake_post: Callable,
308308
query_all_05300: pd.DataFrame,
@@ -313,7 +313,7 @@ def test_apidata_raises_parameter_error(
313313
apidata("05300", query_all_05300, include_id=True)
314314

315315

316-
@mock.patch.object(requests, "post")
316+
@mock.patch.object(requests.Session, "post")
317317
@mock.patch.object(requests, "get")
318318
def test_apidata_raises_variable_error(
319319
fake_meta_get: Callable,
@@ -327,7 +327,7 @@ def test_apidata_raises_variable_error(
327327
apidata("05300", query_all_05300, include_id=True)
328328

329329

330-
@mock.patch.object(requests, "post")
330+
@mock.patch.object(requests.Session, "post")
331331
def test_apidata_raises_too_big_error(
332332
fake_post: Callable,
333333
query_all_05300: pd.DataFrame,
@@ -338,7 +338,7 @@ def test_apidata_raises_too_big_error(
338338
apidata("05300", query_all_05300, include_id=True)
339339

340340

341-
@mock.patch.object(requests, "post")
341+
@mock.patch.object(requests.Session, "post")
342342
def test_apidata_raises_500(
343343
fake_post: Callable,
344344
query_all_05300: pd.DataFrame,

0 commit comments

Comments
 (0)