45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
"""Testing helper functions."""
|
|
|
|
import os
|
|
|
|
import bcrypt
|
|
|
|
from sqlmodel import Session
|
|
from sshecret_admin.auth.models import User
|
|
|
|
|
|
def get_test_user_details() -> tuple[str, str]:
|
|
"""Resolve testing user."""
|
|
test_user = os.getenv("SSHECRET_TEST_USERNAME") or "test"
|
|
test_password = os.getenv("SSHECRET_TEST_PASSWORD") or "test"
|
|
if test_user and test_password:
|
|
return (test_user, test_password)
|
|
|
|
raise RuntimeError(
|
|
"Error: No testing username and password registered in environment."
|
|
)
|
|
|
|
|
|
def is_testing_mode() -> bool:
|
|
"""Check if we're running in test mode.
|
|
|
|
We will determine this by looking for the environment variable SSHECRET_TEST_MODE=1
|
|
"""
|
|
if os.environ.get("PYTEST_VERSION") is not None:
|
|
return True
|
|
return False
|
|
|
|
|
|
def create_test_user(session: Session, username: str, password: str) -> User:
|
|
"""Create test user.
|
|
|
|
We create a user with whatever username and password is supplied.
|
|
"""
|
|
salt = bcrypt.gensalt()
|
|
hashed_password = bcrypt.hashpw(password.encode(), salt)
|
|
user = User(username=username, hashed_password=hashed_password.decode())
|
|
session.add(user)
|
|
session.commit()
|
|
return user
|
|
|