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
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
1"""Module for testing the page database repository."""
3from dataclasses import replace
5import pytest
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
12@pytest.fixture
13def page_repo(database: Database) -> PageRepository:
14 """Fixture for a page repository."""
15 return PageDbRepository(database)
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."
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"
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."
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."