Fix all remaining problems, pytest passing.

This commit is contained in:
Leo Vasanko
2026-02-17 22:50:12 +00:00
parent d330d98daf
commit 3e364e0b6f
5 changed files with 17 additions and 15 deletions
+1
View File
@@ -202,6 +202,7 @@ class User(msgspec.Struct, dict=True, omit_defaults=True, kw_only=True):
Immutable fields: created_at (set at creation, never modified)
uuid is derived from created_at using uuid7.
"""
display_name: str
role_uuid: UUID = msgspec.field(name="role")
created_at: datetime
+1 -1
View File
@@ -99,7 +99,7 @@ async def admin_list_orgs(request: Request, auth=AUTH_COOKIE):
def org_to_dict(o):
roles = o.roles
return ApiOrgResponse(
org=o,
org=ApiOrg.from_db(o),
permissions={p.uuid: p for p in o.permissions},
roles={r.uuid: r for r in roles},
users={u.uuid: u for r in roles for u in r.users},
+1 -1
View File
@@ -136,7 +136,7 @@ class ApiUserDetail(msgspec.Struct, kw_only=True):
class ApiOrgResponse(msgspec.Struct, kw_only=True):
"""Org response containing Org with roles and users as UUID-keyed dicts."""
org: Org
org: ApiOrg
permissions: dict[UUID, Permission]
roles: dict[UUID, Role]
users: dict[UUID, User]
+10 -8
View File
@@ -244,14 +244,16 @@ class TestAdminOrganizations:
)
assert response.status_code == 200
data = response.json()
assert isinstance(data, list)
assert isinstance(data, dict)
assert len(data) >= 1
# Check org structure
org = data[0]
org_data = list(data.values())[0]
assert "org" in org_data
org = org_data["org"]
assert "uuid" in org
assert "display_name" in org
assert "roles" in org
assert "users" in org
assert "roles" in org_data
assert "users" in org_data
@pytest.mark.asyncio
async def test_list_orgs_with_org_admin(
@@ -269,7 +271,7 @@ class TestAdminOrganizations:
assert response.status_code == 200
data = response.json()
# Should only see their own org, not the second org
org_uuids = [o["uuid"] for o in data]
org_uuids = [org_data["org"]["uuid"] for org_data in data.values()]
assert str(test_org.uuid) in org_uuids
@pytest.mark.asyncio
@@ -1399,9 +1401,9 @@ class TestAdminPermissions:
)
assert response.status_code == 200
data = response.json()
assert isinstance(data, list)
assert isinstance(data, dict)
# Should include at least auth:admin
perm_scopes = [p["scope"] for p in data]
perm_scopes = [p["scope"] for p in data.values()]
assert "auth:admin" in perm_scopes
@pytest.mark.asyncio
@@ -1420,7 +1422,7 @@ class TestAdminPermissions:
assert response.status_code == 200
data = response.json()
# Should only see permissions the org can grant
perm_scopes = [p["scope"] for p in data]
perm_scopes = [p["scope"] for p in data.values()]
assert grantable_permission.scope in perm_scopes
# test_org CAN grant auth:admin (it's in org.permissions), so org admin sees it
assert "auth:admin" in perm_scopes
+4 -5
View File
@@ -249,9 +249,9 @@ class TestUserInfoEndpoint:
)
assert response.status_code == 200
data = response.json()
assert "ctx" in data
assert data["ctx"]["user"]["uuid"] == str(test_user.uuid)
assert data["ctx"]["user"]["display_name"] == test_user.display_name
assert "user" in data
assert data["user"]["uuid"] == str(test_user.uuid)
assert data["user"]["display_name"] == test_user.display_name
@pytest.mark.asyncio
async def test_user_info_includes_credentials(
@@ -292,8 +292,7 @@ class TestUserInfoEndpoint:
)
assert response.status_code == 200
data = response.json()
assert "ctx" in data
assert "permissions" in data["ctx"]
assert "permissions" in data
class TestSetSessionEndpoint: