Coverage for src/tests/modules/portal/news/test_news_item_db_repository.py: 100%

24 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2024-01-01 00:00 +0000

1"""Module for testing the news item database repository.""" 

2 

3import pytest 

4 

5from kwai_bc_portal.news.news_item_db_repository import NewsItemDbRepository 

6from kwai_bc_portal.news.news_item_repository import ( 

7 NewsItemNotFoundException, 

8) 

9from kwai_core.db.database import Database 

10 

11 

12pytestmark = pytest.mark.db 

13 

14 

15async def test_create(make_news_item_in_db): 

16 """Test if the creation was successful.""" 

17 news_item = await make_news_item_in_db() 

18 assert not news_item.id.is_empty(), "There should be a news item created" 

19 

20 

21async def test_get_all(make_news_item_in_db, database: Database): 

22 """Test for get_all.""" 

23 news_item = await make_news_item_in_db() 

24 repo = NewsItemDbRepository(database) 

25 news_item = await repo.get_by_id(news_item.id) 

26 assert news_item is not None, "There should be a news item" 

27 

28 

29async def test_get_by_id(make_news_item_in_db, database: Database): 

30 """Test for get_by_id.""" 

31 news_item = await make_news_item_in_db() 

32 repo = NewsItemDbRepository(database) 

33 entity = await repo.get_by_id(news_item.id) 

34 assert entity is not None, f"There should be a news item with id {news_item.id}" 

35 

36 

37async def test_delete(make_news_item_in_db, database: Database): 

38 """Test the deletion of a news item.""" 

39 news_item = await make_news_item_in_db() 

40 repo = NewsItemDbRepository(database) 

41 

42 await repo.delete(news_item) 

43 

44 with pytest.raises(NewsItemNotFoundException): 

45 await repo.get_by_id(news_item.id)