Coverage for src/tests/modules/portal/test_update_news_item.py: 100%
13 statements
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
1"""Module for testing the "Update News" use case."""
3from kwai_bc_portal.applications.application_db_repository import (
4 ApplicationDbRepository,
5)
6from kwai_bc_portal.domain.news_item import NewsItemEntity
7from kwai_bc_portal.news.news_item_db_repository import NewsItemDbRepository
8from kwai_bc_portal.update_news_item import UpdateNewsItem, UpdateNewsItemCommand
9from kwai_core.db.database import Database
10from kwai_core.domain.presenter import EntityPresenter
11from kwai_core.domain.use_case import TextCommand
14async def test_update_news(database: Database, make_news_item_in_db):
15 """Test the "Update News" use case."""
16 news_item = await make_news_item_in_db()
18 command = UpdateNewsItemCommand(
19 id=news_item.id.value,
20 texts=[
21 TextCommand(
22 locale=text.locale.value,
23 format=text.format.value,
24 title=text.title,
25 summary=text.summary,
26 content=text.content,
27 )
28 for text in news_item.texts
29 ],
30 application=news_item.application.id.value,
31 publish_datetime=str(news_item.period.start_date),
32 enabled=news_item.enabled,
33 end_datetime=str(news_item.period.end_date),
34 promotion=news_item.promotion.priority,
35 promotion_end_datetime=str(news_item.promotion.end_date),
36 remark="Updated with test_update_news_item",
37 )
38 presenter = EntityPresenter[NewsItemEntity]()
39 await UpdateNewsItem(
40 NewsItemDbRepository(database),
41 ApplicationDbRepository(database),
42 news_item.texts[0].author,
43 presenter,
44 ).execute(command)
45 assert presenter.entity is not None, "There should be a an updated news item."