include login assertion in requests to eliminate unnecessary calls to the API
This commit was merged in pull request #27.
This commit is contained in:
@@ -4,7 +4,6 @@ import pytest
|
||||
import requests
|
||||
|
||||
from delta_barth.api import requests as requests_
|
||||
from delta_barth.api.common import LoginResponse
|
||||
|
||||
|
||||
@pytest.mark.api_con_required
|
||||
@@ -54,12 +53,11 @@ def test_get_sales_prognosis_data_Success(session):
|
||||
|
||||
|
||||
@pytest.mark.api_con_required
|
||||
def test_get_sales_prognosis_data_FailLogin(session, mock_get):
|
||||
session.login()
|
||||
code = 500
|
||||
def test_get_sales_prognosis_data_NoAuth(session, mock_get):
|
||||
code = 401
|
||||
json = {
|
||||
"message": "ServerError",
|
||||
"code": "TestExternalServerError",
|
||||
"code": "TestFailAuth",
|
||||
"hints": "TestCase",
|
||||
}
|
||||
mock_get.return_value.status_code = code
|
||||
@@ -76,6 +74,36 @@ def test_get_sales_prognosis_data_FailLogin(session, mock_get):
|
||||
assert status.api_server_error.hints == json["hints"]
|
||||
|
||||
|
||||
def test_get_sales_prognosis_data_FailLogin(session, mock_get, mock_put):
|
||||
code = 401
|
||||
json = {
|
||||
"message": "ServerError",
|
||||
"code": "TestFailAuth",
|
||||
"hints": "TestCase",
|
||||
}
|
||||
mock_get.return_value.status_code = code
|
||||
mock_get.return_value.json.return_value = json
|
||||
|
||||
code_put = 500
|
||||
json_put = {
|
||||
"message": "ServerError",
|
||||
"code": "TestUnknownError",
|
||||
"hints": "TestCase",
|
||||
}
|
||||
mock_put.return_value.status_code = code_put
|
||||
mock_put.return_value.json.return_value = json_put
|
||||
|
||||
resp, status = requests_.get_sales_prognosis_data(session, None, None)
|
||||
assert resp is not None
|
||||
assert len(resp.daten) == 0
|
||||
assert status.code == 400
|
||||
assert status.api_server_error is not None
|
||||
assert status.api_server_error.status_code == code_put
|
||||
assert status.api_server_error.message == json_put["message"]
|
||||
assert status.api_server_error.code == json_put["code"]
|
||||
assert status.api_server_error.hints == json_put["hints"]
|
||||
|
||||
|
||||
@pytest.mark.api_con_required
|
||||
def test_get_sales_prognosis_data_FailApiServer(session, mock_get):
|
||||
code = 405
|
||||
@@ -101,11 +129,6 @@ def test_get_sales_prognosis_data_FailApiServer(session, mock_get):
|
||||
def test_get_sales_prognosis_data_FailGetTimeout(session, mock_get):
|
||||
mock_get.side_effect = requests.exceptions.Timeout("Test timeout")
|
||||
|
||||
def assert_login():
|
||||
return LoginResponse(token=""), requests_.STATUS_HANDLER.SUCCESS
|
||||
|
||||
session.assert_login = assert_login
|
||||
|
||||
resp, status = requests_.get_sales_prognosis_data(session, None, None)
|
||||
assert resp is not None
|
||||
assert len(resp.daten) == 0
|
||||
@@ -115,11 +138,6 @@ def test_get_sales_prognosis_data_FailGetTimeout(session, mock_get):
|
||||
def test_get_sales_prognosis_data_FailGetRequestException(session, mock_get):
|
||||
mock_get.side_effect = requests.exceptions.RequestException("Test not timeout")
|
||||
|
||||
def assert_login():
|
||||
return LoginResponse(token=""), requests_.STATUS_HANDLER.SUCCESS
|
||||
|
||||
session.assert_login = assert_login
|
||||
|
||||
resp, status = requests_.get_sales_prognosis_data(session, None, None)
|
||||
assert resp is not None
|
||||
assert len(resp.daten) == 0
|
||||
|
||||
@@ -314,11 +314,11 @@ def test_login_logout_FailApiServer(session, mock_put):
|
||||
|
||||
|
||||
@pytest.mark.api_con_required
|
||||
def test_assert_login_SuccessLoggedOut(session):
|
||||
def test_relogin_SuccessLoggedOut(session):
|
||||
assert session.session_token is None
|
||||
assert session._creds is not None
|
||||
# test logged out state
|
||||
resp, status = session.assert_login()
|
||||
resp, status = session.relogin()
|
||||
assert resp is not None
|
||||
assert status.code == 0
|
||||
assert session.session_token is not None
|
||||
@@ -327,74 +327,17 @@ def test_assert_login_SuccessLoggedOut(session):
|
||||
|
||||
|
||||
@pytest.mark.api_con_required
|
||||
def test_assert_login_SuccessStillLoggedIn(session):
|
||||
def test_relogin_SuccessStillLoggedIn(session):
|
||||
assert session.session_token is None
|
||||
assert session._creds is not None
|
||||
resp, status = session.login()
|
||||
resp, status = session.assert_login()
|
||||
old_token = session.session_token
|
||||
assert old_token is not None
|
||||
resp, status = session.relogin()
|
||||
assert resp is not None
|
||||
assert status.code == 0
|
||||
assert session.session_token is not None
|
||||
assert session.session_token != old_token
|
||||
|
||||
resp, status = session.logout()
|
||||
assert status.code == 0
|
||||
|
||||
|
||||
@pytest.mark.api_con_required
|
||||
def test_assert_login_ReloginNoValidAuth(session, mock_get):
|
||||
code = 401
|
||||
json = {
|
||||
"message": "AuthentificationError",
|
||||
"code": "TestAssertLoginAfter",
|
||||
"hints": "TestCase",
|
||||
}
|
||||
mock_get.return_value.status_code = code
|
||||
mock_get.return_value.json.return_value = json
|
||||
|
||||
resp, status = session.login()
|
||||
|
||||
resp, status = session.assert_login()
|
||||
assert resp is not None
|
||||
assert status.code == 0
|
||||
assert session.session_token is not None
|
||||
resp, status = session.logout()
|
||||
assert status.code == 0
|
||||
|
||||
|
||||
@pytest.mark.api_con_required
|
||||
def test_assert_login_ReloginWrongToken(session):
|
||||
# triggers code 401
|
||||
assert session.session_token is None
|
||||
assert session._creds is not None
|
||||
_, status = session.login()
|
||||
assert status.code == 0
|
||||
session._session_token = "WRONGTOKEN"
|
||||
resp, status = session.assert_login()
|
||||
assert resp is not None
|
||||
assert status.code == 0
|
||||
assert session.session_token is not None
|
||||
resp, status = session.logout()
|
||||
assert status.code == 0
|
||||
|
||||
|
||||
@pytest.mark.api_con_required
|
||||
def test_assert_login_FailApiServer(session, mock_get):
|
||||
code = 500
|
||||
json = {
|
||||
"message": "ServerError",
|
||||
"code": "TestExternalServerError",
|
||||
"hints": "TestCase",
|
||||
}
|
||||
mock_get.return_value.status_code = code
|
||||
mock_get.return_value.json.return_value = json
|
||||
|
||||
resp, status = session.login()
|
||||
|
||||
resp, status = session.assert_login()
|
||||
assert resp is not None
|
||||
assert not resp.token
|
||||
assert status.code == 400
|
||||
assert status.api_server_error is not None
|
||||
assert status.api_server_error.status_code == code
|
||||
assert status.api_server_error.message == json["message"]
|
||||
assert status.api_server_error.code == json["code"]
|
||||
assert status.api_server_error.hints == json["hints"]
|
||||
|
||||
Reference in New Issue
Block a user