tests: expanded assertions
Some checks failed
ci / lint_and_test (push) Failing after 8s

New assertions added for new data being delivered (eg IDs on endpoints not previously serving IDs)
This commit is contained in:
Chris Milne 2026-06-09 14:43:52 +01:00
parent 607f736453
commit 76e889d836
4 changed files with 110 additions and 35 deletions

View file

@ -137,14 +137,18 @@ async def test_act_on_resource_logic(
@pytest.mark.anyio
async def test_get_group_permissions_success(default_client: AsyncClient):
resp = await default_client.get("/iam/group/permissions?org_id=1&group_id=1")
assert resp.status_code == 200
data = resp.json()
assert resp.status_code == 200
assert "permissions" in data
assert isinstance(data["permissions"], list)
assert data["permissions"][0]["service_name"] == "Test Service"
assert data["permissions"][0]["resource"] == "test_resource"
assert data["permissions"][0]["action"] == "read"
permission = data["permissions"][0]
assert permission["id"] == 1
assert permission["service_name"] == "Test Service"
assert permission["resource"] == "test_resource"
assert permission["action"] == "read"
@pytest.mark.parametrize(
@ -191,15 +195,18 @@ async def test_get_group_permissions_mismatch(
@pytest.mark.anyio
async def test_get_group_users_success(default_client: AsyncClient):
resp = await default_client.get("/iam/group/users?org_id=1&group_id=1")
assert resp.status_code == 200
data = resp.json()
assert resp.status_code == 200
assert "users" in data
assert isinstance(data["users"], list)
assert data["users"][0]["id"] == 1
assert data["users"][0]["first_name"] == "Admin"
assert data["users"][0]["last_name"] == "Test"
assert data["users"][0]["email"] == "admin@test.com"
user = data["users"][0]
assert user["id"] == 1
assert user["first_name"] == "Admin"
assert user["last_name"] == "Test"
assert user["email"] == "admin@test.com"
@pytest.mark.parametrize(
@ -248,9 +255,10 @@ async def test_post_group_success(default_client: AsyncClient):
resp = await default_client.post(
"/iam/group", json={"name": "New Group", "organisation_id": 1}
)
assert resp.status_code == 200
data = resp.json()
assert resp.status_code == 200
assert "group" in data
assert isinstance(data["group"], dict)
assert data["group"]["name"] == "New Group"
@ -303,9 +311,10 @@ async def test_put_group_perm_success(default_client: AsyncClient, db_session):
"/iam/group/permission",
json={"permission_id": 1, "group_id": 2, "organisation_id": 1},
)
assert resp.status_code == 200
data = resp.json()
assert resp.status_code == 200
assert "group" in data
assert isinstance(data["group"], dict)
assert data["group"]["name"] == "Test Group Two"
@ -313,9 +322,12 @@ async def test_put_group_perm_success(default_client: AsyncClient, db_session):
assert "permissions" in data
assert isinstance(data["permissions"], list)
assert data["permissions"][0]["service_name"] == "Test Service"
assert data["permissions"][0]["resource"] == "test_resource"
assert data["permissions"][0]["action"] == "read"
permission = data["permissions"][0]
assert permission["id"] == 1
assert permission["service_name"] == "Test Service"
assert permission["resource"] == "test_resource"
assert permission["action"] == "read"
@pytest.mark.parametrize(
@ -435,9 +447,10 @@ async def test_put_group_user_success(default_client: AsyncClient, db_session):
resp = await default_client.put(
"/iam/group/user", json={"user_id": 2, "group_id": 1, "organisation_id": 1}
)
assert resp.status_code == 200
data = resp.json()
assert resp.status_code == 200
assert "group" in data
assert isinstance(data["group"], dict)
assert data["group"]["name"] == "Test Group"
@ -445,10 +458,12 @@ async def test_put_group_user_success(default_client: AsyncClient, db_session):
assert "users" in data
assert isinstance(data["users"], list)
assert data["users"][1]["id"] == 2
assert data["users"][1]["first_name"] == "User"
assert data["users"][1]["last_name"] == "Test"
assert data["users"][1]["email"] == "user@test.org"
user = data["users"][1]
assert user["id"] == 2
assert user["first_name"] == "User"
assert user["last_name"] == "Test"
assert user["email"] == "user@test.org"
@pytest.mark.parametrize(
@ -519,9 +534,12 @@ async def test_get_permissions_success(default_client: AsyncClient):
assert resp.status_code == 200
assert "permissions" in data
assert isinstance(data["permissions"], list)
assert data["permissions"][0]["service_name"] == "Test Service"
assert data["permissions"][0]["resource"] == "test_resource"
assert data["permissions"][0]["action"] == "read"
permission = data["permissions"][0]
assert permission["id"] == 1
assert permission["service_name"] == "Test Service"
assert permission["resource"] == "test_resource"
assert permission["action"] == "read"
@pytest.mark.parametrize(
@ -542,10 +560,14 @@ async def test_post_perm_success(default_client: AsyncClient, db_session):
"/iam/permission",
json={"service_id": 1, "resource": "test_resource", "action": "create"},
)
assert resp.status_code == 200
data = resp.json()
assert resp.status_code == 200
assert "permission" in data
assert isinstance(data["permission"], dict)
assert data["permission"]["id"] == 2
assert data["permission"]["service_name"] == "Test Service"
assert data["permission"]["resource"] == "test_resource"
assert data["permission"]["action"] == "create"
@ -629,9 +651,12 @@ async def test_post_perm_search_success(default_client: AsyncClient, db_session,
assert resp.status_code == 200
assert "permissions" in data
assert isinstance(data["permissions"], list)
assert data["permissions"][0]["service_name"] == "Test Service"
assert data["permissions"][0]["resource"] == "test_resource"
assert data["permissions"][0]["action"] == "read"
permission = data["permissions"][0]
assert permission["id"] == 1
assert permission["service_name"] == "Test Service"
assert permission["resource"] == "test_resource"
assert permission["action"] == "read"
@pytest.mark.parametrize(

View file

@ -21,12 +21,15 @@ async def test_get_org_success(default_client: AsyncClient):
data = resp.json()
assert resp.status_code == 200
assert data["id"] == 1
assert data["name"] == "Test Org"
assert data["status"] == "approved"
assert data["root_user"] == "admin@test.com"
assert data["billing_contact"] == "billing@test.org"
assert data["owner_contact"] == "owner@test.org"
assert data["security_contact"] == "security@test.org"
assert data["status"] == "approved"
assert "intake_questionnaire" in data
assert isinstance(data["intake_questionnaire"], dict)
@pytest.mark.parametrize(
@ -91,10 +94,11 @@ async def test_patch_org_questionnaire_partial_success(
data = resp.json()
assert resp.status_code == 200
assert "intake_questionnaire" in data
assert data["name"] == "Test Org"
assert data["intake_questionnaire"]["question_one"] == "new answer one"
assert data["status"] == "partial"
assert "intake_questionnaire" in data
assert isinstance(data["intake_questionnaire"], dict)
assert data["intake_questionnaire"]["question_one"] == "new answer one"
assert data["intake_questionnaire"]["question_two"] == "answer two"
assert data["intake_questionnaire"]["question_three"] is None
@ -159,10 +163,11 @@ async def test_patch_org_questionnaire_submit_success(
data = resp.json()
assert resp.status_code == 200
assert "intake_questionnaire" in data
assert data["name"] == "Test Org"
assert data["intake_questionnaire"]["question_one"] == "new answer one"
assert data["status"] == "submitted"
assert "intake_questionnaire" in data
assert isinstance(data["intake_questionnaire"], dict)
assert data["intake_questionnaire"]["question_one"] == "new answer one"
assert data["intake_questionnaire"]["question_two"] == "answer two"
assert data["intake_questionnaire"]["question_three"] is None
@ -250,9 +255,11 @@ async def test_post_org_user_success(default_client: AsyncClient, db_session):
resp = await default_client.post(
"/org/user", json={"organisation_id": 1, "user_id": 2}
)
data = resp.json()
assert resp.status_code == 200
data = resp.json()
assert "users" in data
assert isinstance(data["users"], list)
assert "user@test.org" in data["users"]
@ -305,9 +312,10 @@ async def test_patch_org_root_user_success(default_client: AsyncClient, db_sessi
resp = await default_client.patch(
"/org/root_user", json={"organisation_id": 1, "user_id": 2}
)
assert resp.status_code == 200
data = resp.json()
assert resp.status_code == 200
assert data["name"] == "Test Org"
assert data["root_user_email"] == "user@test.org"
@ -369,9 +377,10 @@ async def test_patch_org_root_user_non_member(default_client: AsyncClient, db_se
@pytest.mark.anyio
async def test_get_org_groups_success(default_client: AsyncClient):
resp = await default_client.get("/org/groups?org_id=1")
assert resp.status_code == 200
data = resp.json()
assert resp.status_code == 200
assert "groups" in data
assert isinstance(data["groups"], list)
assert "Test Group" in data["groups"]
@ -399,6 +408,10 @@ async def test_get_org_contact_success(default_client: AsyncClient, contact_type
assert resp.status_code == 200
assert "organisation" in data
assert data["organisation"]["id"] == 1
assert data["organisation"]["name"] == "Test Org"
attributes = [
"email",
"first_name",
@ -469,9 +482,39 @@ async def test_patch_org_contact_success(
"/org/contact",
json={"organisation_id": 1, "contact_type": "billing", key: value},
)
assert resp.status_code == 200
data = resp.json()
assert resp.status_code == 200
assert "organisation" in data
assert data["organisation"]["id"] == 1
assert data["organisation"]["name"] == "Test Org"
attributes = [
"email",
"first_name",
"last_name",
"phonenumber",
"vat_number",
"address",
]
for attribute in attributes:
assert attribute in data["contact"]
address_attributes = [
"post_office_box_number",
"street_address",
"street_address_line_2",
"locality",
"address_region",
"country_code",
"postal_code",
]
for attribute in address_attributes:
assert attribute in data["contact"]["address"]
if key in data["contact"]:
assert data["contact"][key] == value
elif key in data["contact"]["address"]:

View file

@ -20,6 +20,7 @@ async def test_get_services_success(default_client: AsyncClient):
assert resp.status_code == 200
assert "services" in data
assert isinstance(data["services"], list)
assert data["services"][0]["id"] == 1
assert data["services"][0]["name"] == "Test Service"
@ -43,6 +44,7 @@ async def test_post_service_success(default_client: AsyncClient):
assert resp.status_code == 200
assert "service" in data
assert isinstance(data["service"], dict)
assert data["service"]["name"] == "New Test Service"
assert data["service"]["id"] == 2
assert isinstance(data["service"]["api_key"], str)
@ -72,6 +74,7 @@ async def test_patch_service_success(default_client: AsyncClient):
assert resp.status_code == 200
assert "service" in data
assert isinstance(data["service"], dict)
assert data["service"]["name"] == "Test Service"
assert data["service"]["id"] == 1
assert isinstance(data["service"]["api_key"], str)

View file

@ -24,7 +24,9 @@ async def test_get_self_db_success(default_client: AsyncClient):
assert data["last_name"] == "Test"
assert data["email"] == "admin@test.com"
assert "organisations" in data
assert isinstance(data["organisations"], list)
assert "groups" in data
assert isinstance(data["groups"], dict)
@pytest.mark.anyio
@ -37,7 +39,9 @@ async def test_get_user_success(default_client: AsyncClient):
assert data["last_name"] == "Test"
assert data["email"] == "admin@test.com"
assert "organisations" in data
assert isinstance(data["organisations"], list)
assert "groups" in data
assert isinstance(data["groups"], dict)
@pytest.mark.anyio