Files
fquiz/api/tests/test_system_message_service.py
T
chengkai3 3899a2345e [fix]:[FL-145][系统消息要支持删除]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-16 17:44:11 +08:00

40 lines
1.3 KiB
Python

from __future__ import annotations
from sqlalchemy import create_engine, select
from sqlalchemy.orm import Session
from app.core.database import Base
from app.models.system_message import SystemMessage
from app.schemas.system_message import SystemMessageCreateRequest
from app.services.system_message_service import create_system_message, delete_system_message
def test_delete_system_message_removes_existing_message() -> None:
engine = create_engine("sqlite+pysqlite:///:memory:")
Base.metadata.create_all(bind=engine, tables=[SystemMessage.__table__])
with Session(engine) as db:
message = create_system_message(
db,
SystemMessageCreateRequest(
title="系统通知",
content="测试内容",
message_type="info",
),
)
deleted = delete_system_message(db, message.id)
assert deleted is True
assert db.scalar(select(SystemMessage).where(SystemMessage.id == message.id)) is None
def test_delete_system_message_returns_false_when_missing() -> None:
engine = create_engine("sqlite+pysqlite:///:memory:")
Base.metadata.create_all(bind=engine, tables=[SystemMessage.__table__])
with Session(engine) as db:
deleted = delete_system_message(db, "missing-message-id")
assert deleted is False