Skip to content

Commit 11f0f2a

Browse files
committed
draft tests pass
1 parent e7328ba commit 11f0f2a

File tree

1 file changed

+29
-23
lines changed

1 file changed

+29
-23
lines changed

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

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -38,25 +38,17 @@ def _clean_tags_table(postgres_db: sa.engine.Engine) -> Iterator[None]:
3838
conn.execute(tags.delete())
3939

4040

41-
@pytest.fixture
42-
def fake_tags(faker: Faker) -> list[dict[str, Any]]:
43-
return [
44-
{"name": "tag1", "description": "description1", "color": "#f00"},
45-
{"name": "tag2", "description": "description2", "color": "#00f"},
46-
]
47-
48-
4941
@pytest.fixture
5042
def user_role() -> UserRole:
5143
# All tests in test_tags assume USER's role
52-
# i.e. Used in `logged_user` and `user_project`
44+
# i.e. Used in `logged_user` and `user_project` fixtures
5345
return UserRole.USER
5446

5547

5648
async def test_tags_to_studies(
5749
client: TestClient,
50+
faker: Faker,
5851
user_project: ProjectDict,
59-
fake_tags: dict[str, Any],
6052
catalog_subsystem_mock: Callable[[list[ProjectDict]], None],
6153
):
6254
catalog_subsystem_mock([user_project])
@@ -65,7 +57,10 @@ async def test_tags_to_studies(
6557
# Add test tags
6658
added_tags = []
6759

68-
for tag in fake_tags:
60+
for tag in [
61+
{"name": "tag1", "description": faker.sentence(), "color": "#f00"},
62+
{"name": "tag2", "description": faker.sentence(), "color": "#00f"},
63+
]:
6964
url = client.app.router["create_tag"].url_for()
7065
resp = await client.post(f"{url}", json=tag)
7166
added_tag, _ = await assert_status(resp, status.HTTP_200_OK)
@@ -152,7 +147,7 @@ async def test_read_tags(
152147
everybody_tag_id: int,
153148
):
154149
assert client.app
155-
assert user_role == UserRole.USER
150+
assert UserRole(logged_user["role"]) == user_role
156151

157152
url = client.app.router["list_tags"].url_for()
158153
resp = await client.get(f"{url}")
@@ -177,7 +172,7 @@ async def test_create_and_update_tags(
177172
_clean_tags_table: None,
178173
):
179174
assert client.app
180-
assert user_role == UserRole.USER
175+
assert UserRole(logged_user["role"]) == user_role
181176

182177
# (1) create tag
183178
url = client.app.router["create_tag"].url_for()
@@ -223,7 +218,7 @@ async def test_create_tags_with_order_index(
223218
_clean_tags_table: None,
224219
):
225220
assert client.app
226-
assert user_role == UserRole.USER
221+
assert UserRole(logged_user["role"]) == user_role
227222

228223
# (1) create tags but set the order in reverse order of creation
229224
url = client.app.router["create_tag"].url_for()
@@ -283,7 +278,7 @@ async def test_share_tags_by_creating_associated_groups(
283278
_clean_tags_table: None,
284279
):
285280
assert client.app
286-
assert user_role == UserRole.USER
281+
assert UserRole(logged_user["role"]) == user_role
287282

288283
# CREATE
289284
url = client.app.router["create_tag"].url_for()
@@ -361,33 +356,43 @@ async def test_share_tags_by_creating_associated_groups(
361356
resp = await client.delete(
362357
f"{url}",
363358
)
364-
data, _ = await assert_status(resp, status.HTTP_200_OK)
359+
await assert_status(resp, status.HTTP_204_NO_CONTENT)
365360

366361
# test can do nothing
367362

368363

369-
async def test_cannot_share_tag_with_everyone_from_rest_api(
364+
@pytest.mark.xfail(reason="Under dev")
365+
async def test_cannot_share_tag_with_everyone(
370366
client: TestClient,
371367
logged_user: UserInfoDict,
372368
user_role: UserRole,
373-
everybody_tag_id: int,
374369
_clean_tags_table: None,
375370
):
376371
assert client.app
377-
assert logged_user["role"] == user_role
372+
assert UserRole(logged_user["role"]) == user_role
378373

374+
url = client.app.router["create_tag"].url_for()
375+
resp = await client.post(
376+
f"{url}",
377+
json={"name": "shared", "color": "#fff"},
378+
)
379+
tag, _ = await assert_status(resp, status.HTTP_200_OK)
380+
tag_id: int = tag["id"]
381+
382+
# cannot SHARE with everyone group
379383
url = client.app.router["create_tag_group"].url_for(
380-
tag_id=f"{everybody_tag_id}", group_id=f"{EVERYONE_GROUP_ID}"
384+
tag_id=f"{tag_id}", group_id=f"{EVERYONE_GROUP_ID}"
381385
)
382-
resp = await client.put(
386+
resp = await client.post(
383387
f"{url}",
384388
json={"read": True, "write": True, "delete": True},
385389
)
386390
_, error = await assert_status(resp, status.HTTP_403_FORBIDDEN)
387391
assert error
388392

393+
# cannot REPLACE with everyone group
389394
url = client.app.router["replace_tag_group"].url_for(
390-
tag_id=f"{everybody_tag_id}", group_id=f"{EVERYONE_GROUP_ID}"
395+
tag_id=f"{tag_id}", group_id=f"{EVERYONE_GROUP_ID}"
391396
)
392397
resp = await client.put(
393398
f"{url}",
@@ -396,8 +401,9 @@ async def test_cannot_share_tag_with_everyone_from_rest_api(
396401
_, error = await assert_status(resp, status.HTTP_403_FORBIDDEN)
397402
assert error
398403

404+
# cannot DELETE with everyone group
399405
url = client.app.router["delete_tag_group"].url_for(
400-
tag_id=f"{everybody_tag_id}", group_id=f"{EVERYONE_GROUP_ID}"
406+
tag_id=f"{tag_id}", group_id=f"{EVERYONE_GROUP_ID}"
401407
)
402408
resp = await client.delete(
403409
f"{url}",

0 commit comments

Comments
 (0)