[Fix] Authentication token missing
Forgot to add the token to the NordigenClient. Made a test failing, and fixed it.
This commit is contained in:
parent
eb5c1781f0
commit
a3d2d8215e
@ -11,7 +11,7 @@ import pfbudget.db.model as t
|
|||||||
from pfbudget.utils.converters import convert
|
from pfbudget.utils.converters import convert
|
||||||
|
|
||||||
from .credentials import Credentials
|
from .credentials import Credentials
|
||||||
from .exceptions import BankError, CredentialsError
|
from .exceptions import BankError, CredentialsError, ExtractError
|
||||||
from .extract import Extract
|
from .extract import Extract
|
||||||
|
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ class PSD2Client(Extract):
|
|||||||
)
|
)
|
||||||
|
|
||||||
if credentials.token:
|
if credentials.token:
|
||||||
self._token = credentials.token
|
self._client.token = credentials.token
|
||||||
|
|
||||||
self._start = dt.date.min
|
self._start = dt.date.min
|
||||||
self._end = dt.date.max
|
self._end = dt.date.max
|
||||||
@ -46,7 +46,7 @@ class PSD2Client(Extract):
|
|||||||
downloaded = self.download(bank.nordigen.requisition_id)
|
downloaded = self.download(bank.nordigen.requisition_id)
|
||||||
except requests.HTTPError as e:
|
except requests.HTTPError as e:
|
||||||
print(f"There was an issue downloading from {bank.name} -> {e}")
|
print(f"There was an issue downloading from {bank.name} -> {e}")
|
||||||
continue
|
raise ExtractError(e)
|
||||||
|
|
||||||
if downloaded:
|
if downloaded:
|
||||||
self.dump(bank, downloaded)
|
self.dump(bank, downloaded)
|
||||||
|
|||||||
@ -12,21 +12,24 @@ from pfbudget.extract.psd2 import PSD2Client
|
|||||||
|
|
||||||
|
|
||||||
class MockGet:
|
class MockGet:
|
||||||
def __init__(self, status_code: int = 200, exception=None):
|
def __init__(self, mock_exception=None):
|
||||||
self._ok = True if status_code == 200 else False
|
self._status_code = 200
|
||||||
self._status_code = status_code
|
self._mock_exception = mock_exception
|
||||||
self._exception = exception
|
|
||||||
|
|
||||||
def __call__(self, *args, **kwargs):
|
def __call__(self, *args, **kwargs):
|
||||||
if self._exception:
|
if self._mock_exception:
|
||||||
raise self._exception
|
raise self._mock_exception
|
||||||
|
|
||||||
|
self._headers = kwargs["headers"]
|
||||||
|
if "Authorization" not in self._headers or not self._headers["Authorization"]:
|
||||||
|
self._status_code = 401
|
||||||
|
|
||||||
self.url = kwargs["url"]
|
self.url = kwargs["url"]
|
||||||
return self
|
return self
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def ok(self):
|
def ok(self):
|
||||||
return self._ok
|
return True if self._status_code < 400 else False
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def status_code(self):
|
def status_code(self):
|
||||||
@ -79,7 +82,9 @@ class TestExtractPSD2:
|
|||||||
client.extract([Bank("", "", "")])
|
client.extract([Bank("", "", "")])
|
||||||
|
|
||||||
def test_timeout(self, monkeypatch, client, banks):
|
def test_timeout(self, monkeypatch, client, banks):
|
||||||
monkeypatch.setattr("requests.get", MockGet(exception=requests.ReadTimeout))
|
monkeypatch.setattr(
|
||||||
|
"requests.get", MockGet(mock_exception=requests.ReadTimeout)
|
||||||
|
)
|
||||||
with pytest.raises(requests.Timeout):
|
with pytest.raises(requests.Timeout):
|
||||||
client.extract(banks)
|
client.extract(banks)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user