mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-07-23 15:19:41 +02:00
feat: Add Households to Mealie (#3970)
This commit is contained in:
parent
0c29cef17d
commit
eb170cc7e5
315 changed files with 6975 additions and 3577 deletions
|
@ -1,30 +1,30 @@
|
|||
import pytest
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from mealie.repos.repository_factory import AllRepositories
|
||||
from tests.utils import TestUser, api_routes
|
||||
from tests.utils.factories import random_email, random_int, random_string
|
||||
|
||||
|
||||
@pytest.mark.parametrize("use_admin_user", [True, False])
|
||||
def test_get_all_users_admin(
|
||||
request: pytest.FixtureRequest, database: AllRepositories, api_client: TestClient, use_admin_user: bool
|
||||
):
|
||||
def test_get_all_users_admin(request: pytest.FixtureRequest, api_client: TestClient, use_admin_user: bool):
|
||||
user: TestUser
|
||||
if use_admin_user:
|
||||
user = request.getfixturevalue("admin_user")
|
||||
else:
|
||||
user = request.getfixturevalue("unique_user")
|
||||
|
||||
database = user.repos
|
||||
user_ids: set[str] = set()
|
||||
for _ in range(random_int(2, 5)):
|
||||
group = database.groups.create({"name": random_string()})
|
||||
household = database.households.create({"name": random_string(), "group_id": group.id})
|
||||
for _ in range(random_int(2, 5)):
|
||||
new_user = database.users.create(
|
||||
{
|
||||
"username": random_string(),
|
||||
"email": random_email(),
|
||||
"group": group.name,
|
||||
"household": household.name,
|
||||
"full_name": random_string(),
|
||||
"password": random_string(),
|
||||
"admin": False,
|
||||
|
@ -43,56 +43,3 @@ def test_get_all_users_admin(
|
|||
response_user_ids = {user["id"] for user in response.json()["items"]}
|
||||
for user_id in user_ids:
|
||||
assert user_id in response_user_ids
|
||||
|
||||
|
||||
@pytest.mark.parametrize("use_admin_user", [True, False])
|
||||
def test_get_all_group_users(
|
||||
request: pytest.FixtureRequest, database: AllRepositories, api_client: TestClient, use_admin_user: bool
|
||||
):
|
||||
user: TestUser
|
||||
if use_admin_user:
|
||||
user = request.getfixturevalue("admin_user")
|
||||
else:
|
||||
user = request.getfixturevalue("unique_user")
|
||||
|
||||
other_group_user_ids: set[str] = set()
|
||||
for _ in range(random_int(2, 5)):
|
||||
group = database.groups.create({"name": random_string()})
|
||||
for _ in range(random_int(2, 5)):
|
||||
new_user = database.users.create(
|
||||
{
|
||||
"username": random_string(),
|
||||
"email": random_email(),
|
||||
"group": group.name,
|
||||
"full_name": random_string(),
|
||||
"password": random_string(),
|
||||
"admin": False,
|
||||
}
|
||||
)
|
||||
other_group_user_ids.add(str(new_user.id))
|
||||
|
||||
user_group = database.groups.get_by_slug_or_id(user.group_id)
|
||||
assert user_group
|
||||
same_group_user_ids: set[str] = {user.user_id}
|
||||
for _ in range(random_int(2, 5)):
|
||||
new_user = database.users.create(
|
||||
{
|
||||
"username": random_string(),
|
||||
"email": random_email(),
|
||||
"group": user_group.name,
|
||||
"full_name": random_string(),
|
||||
"password": random_string(),
|
||||
"admin": False,
|
||||
}
|
||||
)
|
||||
same_group_user_ids.add(str(new_user.id))
|
||||
|
||||
response = api_client.get(api_routes.users_group_users, params={"perPage": -1}, headers=user.token)
|
||||
assert response.status_code == 200
|
||||
response_user_ids = {user["id"] for user in response.json()["items"]}
|
||||
|
||||
# assert only users from the same group are returned
|
||||
for user_id in other_group_user_ids:
|
||||
assert user_id not in response_user_ids
|
||||
for user_id in same_group_user_ids:
|
||||
assert user_id in response_user_ids
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue