mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-07-24 07:39:41 +02:00
wip: pagination-repository (#1316)
* bump mypy * add pagination + refactor generic repo * add pagination test * remove all query object
This commit is contained in:
parent
00f144a622
commit
4c594a48dc
21 changed files with 237 additions and 215 deletions
38
tests/unit_tests/repository_tests/test_pagination.py
Normal file
38
tests/unit_tests/repository_tests/test_pagination.py
Normal file
|
@ -0,0 +1,38 @@
|
|||
from mealie.repos.repository_factory import AllRepositories
|
||||
from mealie.schema.response.pagination import PaginationQuery
|
||||
from mealie.services.seeder.seeder_service import SeederService
|
||||
from tests.utils.fixture_schemas import TestUser
|
||||
|
||||
|
||||
def test_repository_pagination(database: AllRepositories, unique_user: TestUser):
|
||||
group = database.groups.get_one(unique_user.group_id)
|
||||
|
||||
seeder = SeederService(database, None, group)
|
||||
seeder.seed_foods("en-US")
|
||||
|
||||
foods_repo = database.ingredient_foods.by_group(unique_user.group_id) # type: ignore
|
||||
|
||||
query = PaginationQuery(
|
||||
page=1,
|
||||
order_by="id",
|
||||
per_page=10,
|
||||
)
|
||||
|
||||
seen = []
|
||||
|
||||
for _ in range(10):
|
||||
results = foods_repo.pagination(query)
|
||||
|
||||
assert len(results.data) == 10
|
||||
|
||||
for result in results.data:
|
||||
assert result.id not in seen
|
||||
|
||||
seen += [result.id for result in results.data]
|
||||
|
||||
query.page += 1
|
||||
|
||||
results = foods_repo.pagination(query)
|
||||
|
||||
for result in results.data:
|
||||
assert result.id not in seen
|
Loading…
Add table
Add a link
Reference in a new issue