签入版本
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
"""notice service 单元测试(回归富文本 content 空值保护)。"""
|
||||
import json
|
||||
|
||||
from modules.notice.service import notice_service
|
||||
from modules.notice.models import Notice
|
||||
from modules.notice.repository import notice_repo
|
||||
from modules.notice.schemas import NoticeForm
|
||||
|
||||
|
||||
def _resp_body(resp):
|
||||
return json.loads(resp.body)
|
||||
|
||||
|
||||
def _form(**overrides):
|
||||
data = dict(title="测试通知", source=1, url="https://example.com", status=1, isTop=1, click=0)
|
||||
data.update(overrides)
|
||||
return NoticeForm(**data)
|
||||
|
||||
|
||||
def test_add_notice_content_none_saves_null(fake_request, sqlite_db):
|
||||
resp = notice_service.add(fake_request, _form(content=None))
|
||||
assert _resp_body(resp)["code"] == 0
|
||||
row = notice_repo.filter(Notice.title == "测试通知").first()
|
||||
assert row is not None
|
||||
assert row.content is None
|
||||
|
||||
|
||||
def test_add_notice_plain_text_stored_as_is(fake_request, sqlite_db):
|
||||
resp = notice_service.add(fake_request, _form(title="纯文本通知", content="hello world"))
|
||||
assert _resp_body(resp)["code"] == 0
|
||||
row = notice_repo.filter(Notice.title == "纯文本通知").first()
|
||||
assert row.content == "hello world"
|
||||
|
||||
|
||||
def test_update_notice_content_none_keeps_old(fake_request, sqlite_db):
|
||||
notice_service.add(fake_request, _form(title="保留旧内容", content="old-content"))
|
||||
row = notice_repo.filter(Notice.title == "保留旧内容").first()
|
||||
|
||||
resp = notice_service.update(
|
||||
fake_request,
|
||||
_form(title="保留旧内容", content=None, id=row.id),
|
||||
)
|
||||
assert _resp_body(resp)["code"] == 0
|
||||
assert notice_repo.get_by_id(row.id).content == "old-content"
|
||||
Reference in New Issue
Block a user