Skip to content

Commit 364096b

Browse files
committed
mv tests
1 parent 0b55e71 commit 364096b

File tree

3 files changed

+99
-102
lines changed

3 files changed

+99
-102
lines changed

services/web/server/src/simcore_service_webserver/api/v0/openapi.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10636,7 +10636,7 @@ components:
1063610636
read: true
1063710637
write: false
1063810638
description: Open to all users
10639-
gid: '0'
10639+
gid: 1
1064010640
label: All
1064110641
me:
1064210642
accessRights:

services/web/server/tests/unit/with_dbs/01/groups/test_groups_handlers_crud.py

Lines changed: 2 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,18 @@
66

77

88
import operator
9-
from typing import AsyncIterable
109

1110
import pytest
1211
from aiohttp.test_utils import TestClient
13-
from models_library.api_schemas_webserver.groups import (
14-
GroupGet,
15-
GroupUserGet,
16-
MyGroupsGet,
17-
)
12+
from models_library.api_schemas_webserver.groups import GroupGet, MyGroupsGet
1813
from pydantic import TypeAdapter
1914
from pytest_simcore.helpers.assert_checks import assert_status
20-
from pytest_simcore.helpers.webserver_login import NewUser, UserInfoDict
15+
from pytest_simcore.helpers.webserver_login import UserInfoDict
2116
from pytest_simcore.helpers.webserver_parametrizations import (
2217
ExpectedResponse,
2318
standard_role_response,
2419
)
2520
from servicelib.aiohttp import status
26-
from servicelib.status_codes_utils import is_2xx_success
2721
from simcore_postgres_database.models.users import UserRole
2822
from simcore_service_webserver._meta import API_VTAG
2923

@@ -222,96 +216,3 @@ async def test_group_creation_workflow(
222216
_, error = await assert_status(resp, status.HTTP_404_NOT_FOUND)
223217

224218
assert f"{group.gid}" in error["message"]
225-
226-
227-
@pytest.fixture
228-
async def other_user(
229-
client: TestClient, logged_user: UserInfoDict, is_private_user: bool
230-
) -> AsyncIterable[UserInfoDict]:
231-
# new user different from logged_user
232-
async with NewUser(
233-
{
234-
"name": f"other_than_{logged_user['name']}",
235-
"role": "USER",
236-
"privacy_hide_email": is_private_user,
237-
},
238-
client.app,
239-
) as user:
240-
yield user
241-
242-
243-
@pytest.mark.acceptance_test(
244-
"https://github.com/ITISFoundation/osparc-simcore/pull/6917"
245-
)
246-
@pytest.mark.parametrize("user_role", [UserRole.USER])
247-
@pytest.mark.parametrize("is_private_user", [True, False])
248-
@pytest.mark.parametrize("add_user_by", ["user_email", "user_id", "user_name"])
249-
async def test_create_organization_and_add_users(
250-
client: TestClient,
251-
user_role: UserRole,
252-
logged_user: UserInfoDict,
253-
other_user: UserInfoDict,
254-
is_private_user: bool,
255-
add_user_by: str,
256-
):
257-
assert client.app
258-
assert logged_user["id"] != 0
259-
assert logged_user["role"] == user_role.value
260-
261-
# CREATE GROUP
262-
url = client.app.router["create_group"].url_for()
263-
resp = await client.post(
264-
f"{url}",
265-
json={
266-
"label": "Amies sans-frontiers",
267-
"description": "A desperate attempt to make some friends",
268-
},
269-
)
270-
data, error = await assert_status(resp, status.HTTP_201_CREATED)
271-
272-
assert not error
273-
group = GroupGet.model_validate(data)
274-
275-
# i have another user
276-
user_id = other_user["id"]
277-
user_name = other_user["name"]
278-
user_email = other_user["email"]
279-
280-
assert user_id != logged_user["id"]
281-
assert user_name != logged_user["name"]
282-
assert user_email != logged_user["email"]
283-
284-
# ADD new user to GROUP
285-
url = client.app.router["add_group_user"].url_for(gid=f"{group.gid}")
286-
287-
expected_status = status.HTTP_204_NO_CONTENT
288-
match add_user_by:
289-
case "user_email":
290-
param = {"email": user_email}
291-
if is_private_user:
292-
expected_status = status.HTTP_404_NOT_FOUND
293-
case "user_id":
294-
param = {"uid": user_id}
295-
case "user_name":
296-
param = {"userName": user_name}
297-
case _:
298-
pytest.fail(reason=f"parameter {add_user_by} was not accounted for")
299-
300-
response = await client.post(f"{url}", json=param)
301-
await assert_status(response, expected_status)
302-
303-
# LIST USERS in GROUP
304-
url = client.app.router["get_all_group_users"].url_for(gid=f"{group.gid}")
305-
response = await client.get(f"{url}")
306-
data, _ = await assert_status(response, status.HTTP_200_OK)
307-
308-
group_members = TypeAdapter(list[GroupUserGet]).validate_python(data)
309-
if is_2xx_success(expected_status):
310-
assert user_id in [
311-
u.id for u in group_members
312-
], "failed to add other-user to the group!"
313-
314-
# DELETE GROUP
315-
url = client.app.router["delete_group"].url_for(gid=f"{group.gid}")
316-
resp = await client.delete(f"{url}")
317-
await assert_status(resp, status.HTTP_204_NO_CONTENT)

services/web/server/tests/unit/with_dbs/01/groups/test_groups_handlers_users.py

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,22 @@
66

77
from collections.abc import AsyncIterator
88
from contextlib import AsyncExitStack
9+
from typing import AsyncIterable
910

1011
import pytest
1112
from aiohttp.test_utils import TestClient
1213
from faker import Faker
1314
from models_library.api_schemas_webserver.groups import GroupGet, GroupUserGet
1415
from models_library.groups import AccessRightsDict, Group, StandardGroupCreate
16+
from pydantic import TypeAdapter
1517
from pytest_simcore.helpers.assert_checks import assert_status
1618
from pytest_simcore.helpers.webserver_login import LoggedUser, NewUser, UserInfoDict
1719
from pytest_simcore.helpers.webserver_parametrizations import (
1820
ExpectedResponse,
1921
standard_role_response,
2022
)
2123
from servicelib.aiohttp import status
24+
from servicelib.status_codes_utils import is_2xx_success
2225
from simcore_postgres_database.models.users import UserRole
2326
from simcore_service_webserver._meta import API_VTAG
2427
from simcore_service_webserver.groups._groups_api import (
@@ -514,3 +517,96 @@ async def test_adding_user_to_group_with_upper_case_email(
514517

515518
assert not data
516519
assert not error
520+
521+
522+
@pytest.fixture
523+
async def other_user(
524+
client: TestClient, logged_user: UserInfoDict, is_private_user: bool
525+
) -> AsyncIterable[UserInfoDict]:
526+
# new user different from logged_user
527+
async with NewUser(
528+
{
529+
"name": f"other_than_{logged_user['name']}",
530+
"role": "USER",
531+
"privacy_hide_email": is_private_user,
532+
},
533+
client.app,
534+
) as user:
535+
yield user
536+
537+
538+
@pytest.mark.acceptance_test(
539+
"https://github.com/ITISFoundation/osparc-simcore/pull/6917"
540+
)
541+
@pytest.mark.parametrize("user_role", [UserRole.USER])
542+
@pytest.mark.parametrize("is_private_user", [True, False])
543+
@pytest.mark.parametrize("add_user_by", ["user_email", "user_id", "user_name"])
544+
async def test_create_organization_and_add_users(
545+
client: TestClient,
546+
user_role: UserRole,
547+
logged_user: UserInfoDict,
548+
other_user: UserInfoDict,
549+
is_private_user: bool,
550+
add_user_by: str,
551+
):
552+
assert client.app
553+
assert logged_user["id"] != 0
554+
assert logged_user["role"] == user_role.value
555+
556+
# CREATE GROUP
557+
url = client.app.router["create_group"].url_for()
558+
resp = await client.post(
559+
f"{url}",
560+
json={
561+
"label": "Amies sans-frontiers",
562+
"description": "A desperate attempt to make some friends",
563+
},
564+
)
565+
data, error = await assert_status(resp, status.HTTP_201_CREATED)
566+
567+
assert not error
568+
group = GroupGet.model_validate(data)
569+
570+
# i have another user
571+
user_id = other_user["id"]
572+
user_name = other_user["name"]
573+
user_email = other_user["email"]
574+
575+
assert user_id != logged_user["id"]
576+
assert user_name != logged_user["name"]
577+
assert user_email != logged_user["email"]
578+
579+
# ADD new user to GROUP
580+
url = client.app.router["add_group_user"].url_for(gid=f"{group.gid}")
581+
582+
expected_status = status.HTTP_204_NO_CONTENT
583+
match add_user_by:
584+
case "user_email":
585+
param = {"email": user_email}
586+
if is_private_user:
587+
expected_status = status.HTTP_404_NOT_FOUND
588+
case "user_id":
589+
param = {"uid": user_id}
590+
case "user_name":
591+
param = {"userName": user_name}
592+
case _:
593+
pytest.fail(reason=f"parameter {add_user_by} was not accounted for")
594+
595+
response = await client.post(f"{url}", json=param)
596+
await assert_status(response, expected_status)
597+
598+
# LIST USERS in GROUP
599+
url = client.app.router["get_all_group_users"].url_for(gid=f"{group.gid}")
600+
response = await client.get(f"{url}")
601+
data, _ = await assert_status(response, status.HTTP_200_OK)
602+
603+
group_members = TypeAdapter(list[GroupUserGet]).validate_python(data)
604+
if is_2xx_success(expected_status):
605+
assert user_id in [
606+
u.id for u in group_members
607+
], "failed to add other-user to the group!"
608+
609+
# DELETE GROUP
610+
url = client.app.router["delete_group"].url_for(gid=f"{group.gid}")
611+
resp = await client.delete(f"{url}")
612+
await assert_status(resp, status.HTTP_204_NO_CONTENT)

0 commit comments

Comments
 (0)