Skip to content

Commit 4c19070

Browse files
committed
drafts tests
1 parent 8971fd4 commit 4c19070

File tree

4 files changed

+74
-46
lines changed

4 files changed

+74
-46
lines changed

api/specs/web-server/_tags_groups.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
response_model=Envelope[list[TagGroupGet]],
3232
)
3333
async def list_tag_groups(_path_params: Annotated[TagPathParams, Depends()]):
34-
...
34+
"""Lists all groups associated to this tag"""
3535

3636

3737
@router.post(
@@ -49,7 +49,7 @@ async def create_tag_group(
4949
"/tags/{tag_id}/groups/{group_id}",
5050
response_model=Envelope[list[TagGroupGet]],
5151
)
52-
async def replace_tag_groups(
52+
async def replace_tag_group(
5353
_path_params: Annotated[TagGroupPathParams, Depends()], _body: TagGroupCreate
5454
):
5555
"""Replace access rights on tag for associated organization or user with `group_id`"""

services/web/server/src/simcore_service_webserver/tags/_rest.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,11 @@ async def create_tag_group(request: web.Request):
143143
raise NotImplementedError
144144

145145

146-
@routes.put(f"/{VTAG}/tags/{{tag_id}}/groups/{{group_id}}", name="replace_tag_groups")
146+
@routes.put(f"/{VTAG}/tags/{{tag_id}}/groups/{{group_id}}", name="replace_tag_group")
147147
@login_required
148148
@permission_required("tag.crud.*")
149149
@_handle_tags_exceptions
150-
async def replace_tag_groups(request: web.Request):
150+
async def replace_tag_group(request: web.Request):
151151
path_params = parse_request_path_parameters_as(TagGroupPathParams, request)
152152
new_tag_group = await parse_request_body_as(TagGroupCreate, request)
153153

services/web/server/tests/unit/with_dbs/03/tags/test_tags.py

Lines changed: 56 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from models_library.utils.fastapi_encoders import jsonable_encoder
2323
from pytest_simcore.helpers.assert_checks import assert_status
2424
from pytest_simcore.helpers.postgres_tags import create_tag, delete_tag
25-
from pytest_simcore.helpers.webserver_login import UserInfoDict
25+
from pytest_simcore.helpers.webserver_login import NewUser, UserInfoDict
2626
from pytest_simcore.helpers.webserver_projects import assert_get_same_project
2727
from servicelib.aiohttp import status
2828
from simcore_postgres_database.models.tags import tags
@@ -276,7 +276,7 @@ async def test_create_tags_with_order_index(
276276
assert got == [*expected_tags[::-1], last_created]
277277

278278

279-
async def test_share_tags(
279+
async def test_share_tags_by_creating_associated_groups(
280280
client: TestClient,
281281
logged_user: UserInfoDict,
282282
user_role: UserRole,
@@ -294,37 +294,63 @@ async def test_share_tags(
294294
)
295295
created, _ = await assert_status(resp, status.HTTP_200_OK)
296296

297-
# SHARE (all combinations)?
298-
url = client.app.router["create_tag_group"].url_for(
299-
tag_id=created["id"], group_id=f"{EVERYONE_GROUP_ID}"
300-
)
301-
resp = await client.post(
302-
f"{url}",
303-
json={"read": True, "write": False, "delete": False},
304-
)
297+
# LIST
298+
url = client.app.router["list_tag_groups"].url_for(tag_id=created["id"])
299+
resp = await client.get(f"{url}")
305300
data, _ = await assert_status(resp, status.HTTP_200_OK)
306301

307-
# test only performed allowed combinations
302+
# check ownership
303+
assert len(data) == 1
304+
assert data[0]["gid"] == logged_user["primary_gid"]
305+
assert data[0]["read"] is True
306+
assert data[0]["write"] is True
307+
assert data[0]["delete"] is True
308+
309+
async with NewUser(
310+
app=client.app,
311+
) as new_user:
312+
# SHARE
313+
url = client.app.router["create_tag_group"].url_for(
314+
tag_id=created["id"],
315+
group_id=f"{new_user['primary_gid']}",
316+
)
317+
resp = await client.post(
318+
f"{url}",
319+
json={"read": True, "write": False, "delete": False},
320+
)
321+
data, _ = await assert_status(resp, status.HTTP_201_CREATED)
308322

309-
# REPLACE SHARE to other combinations
310-
url = client.app.router["replace_tag_groups"].url_for(
311-
tag_id=created["id"], group_id=f"{EVERYONE_GROUP_ID}"
312-
)
313-
resp = await client.put(
314-
f"{url}",
315-
json={"read": True, "write": True, "delete": False},
316-
)
317-
data, _ = await assert_status(resp, status.HTTP_200_OK)
323+
# check new group
324+
url = client.app.router["list_tag_groups"].url_for(tag_id=created["id"])
325+
resp = await client.get(f"{url}")
326+
data, _ = await assert_status(resp, status.HTTP_200_OK)
327+
assert len(data) == 2
328+
assert data[1]["gid"] == logged_user["primary_gid"]
329+
assert data[1]["read"] is True
330+
assert data[1]["write"] is True
331+
assert data[1]["delete"] is True
318332

319-
# test can perform new combinations
333+
# TODO: check can only read
320334

321-
# DELETE share
322-
url = client.app.router["delete_tag_group"].url_for(
323-
tag_id=created["id"], group_id=f"{EVERYONE_GROUP_ID}"
324-
)
325-
resp = await client.delete(
326-
f"{url}",
327-
)
328-
data, _ = await assert_status(resp, status.HTTP_200_OK)
335+
# REPLACE SHARE to other combinations
336+
url = client.app.router["replace_tag_group"].url_for(
337+
tag_id=created["id"], group_id=f"{EVERYONE_GROUP_ID}"
338+
)
339+
resp = await client.put(
340+
f"{url}",
341+
json={"read": True, "write": True, "delete": False},
342+
)
343+
data, _ = await assert_status(resp, status.HTTP_200_OK)
344+
345+
# test can perform new combinations
346+
347+
# DELETE share
348+
url = client.app.router["delete_tag_group"].url_for(
349+
tag_id=created["id"], group_id=f"{EVERYONE_GROUP_ID}"
350+
)
351+
resp = await client.delete(
352+
f"{url}",
353+
)
354+
data, _ = await assert_status(resp, status.HTTP_200_OK)
329355

330-
# test can do nothing
356+
# test can do nothing

services/web/server/tests/unit/with_dbs/04/wallets/test_wallets_groups.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ async def test_wallets_groups_full_workflow(
2424
expected: HTTPStatus,
2525
wallets_clean_db: AsyncIterator[None],
2626
):
27+
assert client.app
28+
2729
# create a new wallet
2830
url = client.app.router["create_wallet"].url_for()
2931
resp = await client.post(
@@ -39,9 +41,9 @@ async def test_wallets_groups_full_workflow(
3941
data, _ = await assert_status(resp, status.HTTP_200_OK)
4042
assert len(data) == 1
4143
assert data[0]["gid"] == logged_user["primary_gid"]
42-
assert data[0]["read"] == True
43-
assert data[0]["write"] == True
44-
assert data[0]["delete"] == True
44+
assert data[0]["read"] is True
45+
assert data[0]["write"] is True
46+
assert data[0]["delete"] is True
4547

4648
async with NewUser(
4749
app=client.app,
@@ -64,9 +66,9 @@ async def test_wallets_groups_full_workflow(
6466
data, _ = await assert_status(resp, status.HTTP_200_OK)
6567
assert len(data) == 2
6668
assert data[1]["gid"] == new_user["primary_gid"]
67-
assert data[1]["read"] == True
68-
assert data[1]["write"] == False
69-
assert data[1]["delete"] == False
69+
assert data[1]["read"] is True
70+
assert data[1]["write"] is False
71+
assert data[1]["delete"] is False
7072

7173
# Update the wallet permissions of the added user
7274
url = client.app.router["update_wallet_group"].url_for(
@@ -78,9 +80,9 @@ async def test_wallets_groups_full_workflow(
7880
)
7981
data, _ = await assert_status(resp, status.HTTP_200_OK)
8082
assert data["gid"] == new_user["primary_gid"]
81-
assert data["read"] == True
82-
assert data["write"] == True
83-
assert data["delete"] == False
83+
assert data["read"] is True
84+
assert data["write"] is True
85+
assert data["delete"] is False
8486

8587
# List the wallet groups
8688
url = client.app.router["list_wallet_groups"].url_for(
@@ -90,9 +92,9 @@ async def test_wallets_groups_full_workflow(
9092
data, _ = await assert_status(resp, status.HTTP_200_OK)
9193
assert len(data) == 2
9294
assert data[1]["gid"] == new_user["primary_gid"]
93-
assert data[1]["read"] == True
94-
assert data[1]["write"] == True
95-
assert data[1]["delete"] == False
95+
assert data[1]["read"] is True
96+
assert data[1]["write"] is True
97+
assert data[1]["delete"] is False
9698

9799
# Delete the wallet group
98100
url = client.app.router["delete_wallet_group"].url_for(

0 commit comments

Comments
 (0)