mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-07-18 20:59:41 +02:00
* bump mypy * add pagination + refactor generic repo * add pagination test * remove all query object
38 lines
1 KiB
Python
38 lines
1 KiB
Python
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
|