New assertions added for new data being delivered (eg IDs on endpoints not previously serving IDs)
This commit is contained in:
parent
607f736453
commit
76e889d836
4 changed files with 110 additions and 35 deletions
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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"]:
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue