Some checks failed
Deploy Development / deploy (push) Successful in 38s
Test Suite / pytest-backend (push) Failing after 7s
Test Suite / k6 /api/health Baseline (push) Has been skipped
Test Suite / playwright-smoke (push) Has been skipped
Test Suite / lint-backend (push) Successful in 2s
Test Suite / compose-smoke (push) Has been skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
47 lines
1.7 KiB
Python
47 lines
1.7 KiB
Python
"""Actor and TenantContext tests."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from auth import AUTH_HEADER
|
|
from services.actors import create_actor
|
|
from tests.factories import create_tenant, provision_user_in_tenant
|
|
|
|
|
|
def test_human_actor_linked_to_user(client):
|
|
user = provision_user_in_tenant()
|
|
login = client.post(
|
|
"/api/auth/login",
|
|
json={"email": user["email"], "password": user["password"]},
|
|
)
|
|
token = login.json()["token"]
|
|
ctx = client.get("/api/me/context", headers={AUTH_HEADER: token}).json()
|
|
assert ctx["actor"]["type"] == "human"
|
|
assert ctx["actor"]["id"] == user["actor_id"]
|
|
|
|
|
|
def test_agent_actor_without_user(client):
|
|
tenant_id = create_tenant()
|
|
agent = create_actor(tenant_id=tenant_id, actor_type="agent", name="Planner Agent")
|
|
assert agent["user_id"] is None
|
|
assert agent["actor_type"] == "agent"
|
|
|
|
|
|
def test_working_group_and_external_system_actors(client):
|
|
tenant_id = create_tenant()
|
|
wg = create_actor(tenant_id=tenant_id, actor_type="working_group", name="Steering Group")
|
|
ext = create_actor(tenant_id=tenant_id, actor_type="external_system", name="Jira")
|
|
assert wg["actor_type"] == "working_group"
|
|
assert ext["actor_type"] == "external_system"
|
|
|
|
|
|
def test_portal_role_separate_from_tenant_role(client):
|
|
user = provision_user_in_tenant(tenant_role="member", portal_role="admin")
|
|
login = client.post(
|
|
"/api/auth/login",
|
|
json={"email": user["email"], "password": user["password"]},
|
|
)
|
|
token = login.json()["token"]
|
|
ctx = client.get("/api/me/context", headers={AUTH_HEADER: token}).json()
|
|
assert ctx["portal_role"] == "admin"
|
|
assert ctx["tenant"]["role"] == "member"
|