mirror of
https://github.com/RYDE-WORK/full-stack-fastapi-template.git
synced 2026-01-19 21:23:36 +08:00
31 lines
940 B
Python
31 lines
940 B
Python
from unittest.mock import MagicMock, patch
|
|
|
|
from sqlmodel import select
|
|
|
|
from app.tests_pre_start import init, logger
|
|
|
|
|
|
def test_init_successful_connection() -> None:
|
|
engine_mock = MagicMock()
|
|
|
|
session_mock = MagicMock()
|
|
exec_mock = MagicMock(return_value=True)
|
|
session_mock.configure_mock(**{"exec.return_value": exec_mock})
|
|
|
|
with patch("sqlmodel.Session", return_value=session_mock), patch.object(
|
|
logger, "info"
|
|
), patch.object(logger, "error"), patch.object(logger, "warn"):
|
|
try:
|
|
init(engine_mock)
|
|
connection_successful = True
|
|
except Exception:
|
|
connection_successful = False
|
|
|
|
assert (
|
|
connection_successful
|
|
), "The database connection should be successful and not raise an exception."
|
|
|
|
assert session_mock.exec.called_once_with(
|
|
select(1)
|
|
), "The session should execute a select statement once."
|