login tests, session model

This commit is contained in:
Diogo Sousa
2023-02-02 17:15:17 +00:00
parent ac00d522cf
commit 9df58b633a
2 changed files with 59 additions and 1 deletions

View File

@@ -49,7 +49,7 @@ def login(session: dict) -> LoginStatus:
The session info.
"""
response = Hub.fetch_user_configs(session)
if response:
if response is not None:
if response.status_code == 200:
configs = json.loads(response.content)
email = configs.get("email", "")

View File

@@ -1,8 +1,10 @@
# IMPORTATION STANDARD
# IMPORTATION THIRDPARTY
import json
from unittest.mock import patch
import pytest
from requests import Response
# IMPORTATION INTERNAL
from openbb_terminal.session import session_model
@@ -43,3 +45,59 @@ def test_create_session(email, password, save):
mock_get_session.assert_called_once_with(email, password)
if save and session:
mock_save_session.assert_called_once_with(session)
@patch("openbb_terminal.session.session_model.Hub.fetch_user_configs")
@patch("openbb_terminal.session.session_model.Local.apply_configs")
@patch("openbb_terminal.session.session_model.User.load_user_info")
@patch("openbb_terminal.session.session_model.User.update_flair")
def test_login_no_response(
mock_update_flair, mock_load_user_info, mock_apply_configs, mock_fetch_user_configs
):
mock_fetch_user_configs.return_value = None
assert session_model.login(TEST_SESSION) == session_model.LoginStatus.NO_RESPONSE
mock_fetch_user_configs.assert_called_once_with(TEST_SESSION)
mock_apply_configs.assert_not_called()
mock_load_user_info.assert_not_called()
mock_update_flair.assert_not_called()
@patch("openbb_terminal.session.session_model.Hub.fetch_user_configs")
@patch("openbb_terminal.session.session_model.Local.apply_configs")
@patch("openbb_terminal.session.session_model.User.load_user_info")
@patch("openbb_terminal.session.session_model.User.update_flair")
def test_login_fail_response(
mock_update_flair, mock_load_user_info, mock_apply_configs, mock_fetch_user_configs
):
response = Response()
response.status_code = 400
mock_fetch_user_configs.return_value = response
assert session_model.login(TEST_SESSION) == session_model.LoginStatus.FAILED
mock_fetch_user_configs.assert_called_once_with(TEST_SESSION)
mock_apply_configs.assert_not_called()
mock_load_user_info.assert_not_called()
mock_update_flair.assert_not_called()
@patch("openbb_terminal.session.session_model.Hub.fetch_user_configs")
@patch("openbb_terminal.session.session_model.Local.apply_configs")
@patch("openbb_terminal.session.session_model.User.load_user_info")
@patch("openbb_terminal.session.session_model.User.update_flair")
def test_login_success_response(
mock_update_flair, mock_load_user_info, mock_apply_configs, mock_fetch_user_configs
):
response = Response()
response.status_code = 200
response._content = json.dumps(TEST_SESSION) # pylint: disable=protected-access
mock_fetch_user_configs.return_value = response
assert session_model.login(TEST_SESSION) == session_model.LoginStatus.SUCCESS
mock_fetch_user_configs.assert_called_once_with(TEST_SESSION)
mock_apply_configs.assert_called_once()
mock_load_user_info.assert_called_once()
mock_update_flair.assert_called_once()