Coverage for src/tests/modules/portal/pages/test_page_db_repository.py: 100%

26 statements  

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

1"""Module for testing the page database repository.""" 

2 

3from dataclasses import replace 

4 

5import pytest 

6 

7from kwai_bc_portal.pages.page_db_repository import PageDbRepository 

8from kwai_bc_portal.pages.page_repository import PageRepository 

9from kwai_core.db.database import Database 

10 

11 

12@pytest.fixture 

13def page_repo(database: Database) -> PageRepository: 

14 """Fixture for a page repository.""" 

15 return PageDbRepository(database) 

16 

17 

18async def test_create(make_page_in_db): 

19 """Test create page.""" 

20 page = await make_page_in_db() 

21 assert not page.id.is_empty(), "There should be a new page." 

22 

23 

24async def test_get_all(page_repo: PageRepository, make_page_in_db): 

25 """Test get all pages.""" 

26 page = await make_page_in_db() 

27 page_iterator = page_repo.get_all() 

28 page = await anext(p async for p in page_iterator if p.id == page.id) 

29 assert page is not None, "Page should be available" 

30 

31 

32async def test_get_by_id(page_repo: PageRepository, make_page_in_db): 

33 """Test get by id.""" 

34 page = await make_page_in_db() 

35 page = await page_repo.get_by_id(page.id) 

36 assert page is not None, "There should be a page." 

37 

38 

39async def test_update(page_repo: PageRepository, make_page_in_db): 

40 """Test update page.""" 

41 page = await make_page_in_db() 

42 changed_page = replace(page, remark="This is an update.") 

43 await page_repo.update(changed_page) 

44 page = await page_repo.get_by_id(changed_page.id) 

45 assert page.remark == "This is an update.", "The page should be updated."