Skip to content

Commit 328ca99

Browse files
committed
test: add test of converting models to API response
1 parent c7277c0 commit 328ca99

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

tests/admin_api/test_admin.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -493,6 +493,47 @@ def test_get_user(test_client, test_db_session, as_admin_user, galaxy_platform,
493493
assert isinstance(response_data["group_memberships"], list)
494494

495495

496+
def test_get_user_returns_nested_membership_attributes_from_db_instance(
497+
test_client,
498+
test_db_session,
499+
as_admin_user,
500+
galaxy_platform,
501+
tsi_group,
502+
persistent_factories,
503+
):
504+
db_user = BiocommonsUserFactory.create_sync(group_memberships=[], platform_memberships=[])
505+
PlatformMembershipFactory.create_sync(
506+
user=db_user,
507+
platform=galaxy_platform,
508+
approval_status=ApprovalStatusEnum.APPROVED,
509+
updated_by=as_admin_user,
510+
)
511+
GroupMembershipFactory.create_sync(
512+
user=db_user,
513+
group=tsi_group,
514+
approval_status=ApprovalStatusEnum.APPROVED,
515+
updated_by=as_admin_user,
516+
)
517+
test_db_session.commit()
518+
test_db_session.expire_all()
519+
520+
resp = test_client.get(f"/admin/users/{db_user.id}")
521+
522+
assert resp.status_code == 200
523+
data = resp.json()
524+
525+
platform_membership = data["platform_memberships"][0]
526+
assert platform_membership["platform_id"] == galaxy_platform.id
527+
assert platform_membership["platform_name"] == galaxy_platform.name
528+
assert platform_membership["updated_by"] == as_admin_user.email
529+
530+
group_membership = data["group_memberships"][0]
531+
assert group_membership["group_id"] == tsi_group.group_id
532+
assert group_membership["group_name"] == tsi_group.name
533+
assert group_membership["group_short_name"] == tsi_group.short_name
534+
assert group_membership["updated_by"] == as_admin_user.email
535+
536+
496537
def test_get_user_forbidden_without_admin_role(test_client, test_db_session, as_admin_user, persistent_factories):
497538
# Create user with platform membership that admin can't access
498539
platform = PlatformFactory.create_sync(id=PlatformEnum.BPA_DATA_PORTAL)

0 commit comments

Comments
 (0)