55 lines
1.8 KiB
Python
Raw Normal View History

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
from spiffworkflow_backend.models.user import UserModel
2022-08-02 10:49:43 -04:00
from spiffworkflow_backend.services.authentication_service import (
PublicAuthenticationService,
)
from spiffworkflow_backend.services.user_service import UserService
2022-07-25 13:35:10 -04:00
class BaseTest:
"""BaseTest."""
@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):
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