mirror of
https://github.com/simple-login/app.git
synced 2024-11-16 08:58:30 +01:00
50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
import pytest
|
|
from http import HTTPStatus
|
|
|
|
from app.errors import ProtonAccountNotVerified
|
|
from app.proton import proton_client
|
|
|
|
|
|
def test_convert_access_token_valid():
|
|
res = proton_client.convert_access_token("pt-abc-123")
|
|
assert res.session_id == "abc"
|
|
assert res.access_token == "123"
|
|
|
|
|
|
def test_convert_access_token_not_containing_pt():
|
|
with pytest.raises(Exception):
|
|
proton_client.convert_access_token("pb-abc-123")
|
|
|
|
|
|
def test_convert_access_token_not_containing_invalid_length():
|
|
cases = ["pt-abc-too-long", "pt-short"]
|
|
for case in cases:
|
|
with pytest.raises(Exception):
|
|
proton_client.convert_access_token(case)
|
|
|
|
|
|
def test_handle_response_not_ok_account_not_verified():
|
|
res = proton_client.handle_response_not_ok(
|
|
status=HTTPStatus.UNPROCESSABLE_ENTITY,
|
|
body={"Code": proton_client.PROTON_ERROR_CODE_HV_NEEDED},
|
|
text="",
|
|
)
|
|
assert isinstance(res, ProtonAccountNotVerified)
|
|
|
|
|
|
def test_handle_response_unprocessable_entity_not_account_not_verified():
|
|
error_text = "some error text"
|
|
res = proton_client.handle_response_not_ok(
|
|
status=HTTPStatus.UNPROCESSABLE_ENTITY, body={"Code": 4567}, text=error_text
|
|
)
|
|
assert error_text in res.args[0]
|
|
|
|
|
|
def test_handle_response_not_ok_unknown_error():
|
|
error_text = "some error text"
|
|
res = proton_client.handle_response_not_ok(
|
|
status=123,
|
|
body={"Code": proton_client.PROTON_ERROR_CODE_HV_NEEDED},
|
|
text=error_text,
|
|
)
|
|
assert error_text in res.args[0]
|