2022-07-25 13:35:10 -04:00
|
|
|
"""Base_test."""
|
|
|
|
from flask.app import Flask
|
2022-08-02 11:06:40 -04:00
|
|
|
from flask_bpmn.api.api_error import ApiError
|
2022-07-29 13:39:57 -04:00
|
|
|
|
2022-08-02 10:46:53 -04:00
|
|
|
from spiffworkflow_backend.models.user import UserModel
|
2022-08-02 10:49:43 -04:00
|
|
|
from spiffworkflow_backend.services.authentication_service import (
|
|
|
|
PublicAuthenticationService,
|
|
|
|
)
|
2022-08-02 10:46:53 -04:00
|
|
|
from spiffworkflow_backend.services.user_service import UserService
|
2022-07-25 13:35:10 -04:00
|
|
|
|
|
|
|
|
|
|
|
class BaseTest:
|
|
|
|
"""BaseTest."""
|
|
|
|
|
2022-08-02 10:46:53 -04:00
|
|
|
@staticmethod
|
|
|
|
def find_or_create_user(username: str = "test_user1") -> UserModel:
|
|
|
|
"""Find_or_create_user."""
|
|
|
|
user = UserModel.query.filter_by(username=username).first()
|
|
|
|
if isinstance(user, UserModel):
|
|
|
|
return user
|
|
|
|
|
2022-08-02 11:08:37 -04:00
|
|
|
user = UserService().create_user("local", username, username=username)
|
2022-08-02 11:06:40 -04:00
|
|
|
if isinstance(user, UserModel):
|
2022-08-02 10:46:53 -04:00
|
|
|
UserService().create_principal(user_id=user.id)
|
|
|
|
return user
|
|
|
|
|
2022-08-02 11:08:37 -04:00
|
|
|
raise ApiError(
|
|
|
|
code="create_user_error", message=f"Cannot find or create user: {username}"
|
|
|
|
)
|
2022-08-02 11:06:40 -04:00
|
|
|
|
2022-07-25 13:35:10 -04:00
|
|
|
@staticmethod
|
|
|
|
def get_keycloak_constants(app: Flask) -> tuple:
|
|
|
|
"""Get_keycloak_constants."""
|
2022-07-29 13:39:57 -04:00
|
|
|
keycloak_server_url = app.config["KEYCLOAK_SERVER_URL"]
|
2022-07-25 13:35:10 -04:00
|
|
|
keycloak_client_id = app.config["KEYCLOAK_CLIENT_ID"]
|
|
|
|
keycloak_realm_name = app.config["KEYCLOAK_REALM_NAME"]
|
2022-07-29 13:39:57 -04:00
|
|
|
keycloak_client_secret_key = app.config[
|
|
|
|
"KEYCLOAK_CLIENT_SECRET_KEY"
|
|
|
|
] # noqa: S105
|
2022-07-25 13:35:10 -04:00
|
|
|
|
2022-07-29 13:39:57 -04:00
|
|
|
return (
|
|
|
|
keycloak_server_url,
|
|
|
|
keycloak_client_id,
|
|
|
|
keycloak_realm_name,
|
|
|
|
keycloak_client_secret_key,
|
|
|
|
)
|
2022-07-25 14:05:32 -04:00
|
|
|
|
|
|
|
@staticmethod
|
2022-08-01 16:20:36 -04:00
|
|
|
def get_public_access_token(username: str, password: str) -> dict:
|
2022-07-29 13:39:57 -04:00
|
|
|
"""Get_public_access_token."""
|
|
|
|
public_access_token = PublicAuthenticationService().get_public_access_token(
|
|
|
|
username, password
|
|
|
|
)
|
2022-07-25 14:05:32 -04:00
|
|
|
return public_access_token
|