From 7716db907049122d0bedd729169c5291e912b7c3 Mon Sep 17 00:00:00 2001 From: vshanthe Date: Thu, 16 Oct 2025 16:15:22 +0530 Subject: [PATCH 1/2] iam_tests --- test/integration/models/iam/iam_test.py | 63 +++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 test/integration/models/iam/iam_test.py diff --git a/test/integration/models/iam/iam_test.py b/test/integration/models/iam/iam_test.py new file mode 100644 index 000000000..5c1c2df6d --- /dev/null +++ b/test/integration/models/iam/iam_test.py @@ -0,0 +1,63 @@ +import pytest + +from linode_api4.objects import EntityAccess, LinodeEntity + + +@pytest.mark.smoke +def test_get_role_permissions(test_linode_client): + client = test_linode_client + iam = client.iam + + permissions = iam.role_permissions() + + assert "account_access" in permissions + assert isinstance(permissions["account_access"], list) + + +@pytest.mark.smoke +def test_get_user_role_permissions(test_linode_client): + client = test_linode_client + iam = client.iam + + username = client.profile().username + user_permissions = iam.role_permissions_user_get(username) + + assert "account_access" in user_permissions + assert isinstance(user_permissions["account_access"], list) + + +@pytest.mark.skip( + reason="Updating IAM role permissions may require elevated privileges." +) +def test_set_user_role_permissions(test_linode_client): + client = test_linode_client + iam = client.iam + + username = client.profile().username + entity_access = [EntityAccess(id=1, type="linode", roles=["read_only"])] + + updated = iam.role_permissions_user_set( + username, + account_access=["read_only"], + entity_access=entity_access, + ) + + assert "account_access" in updated + assert "entity_access" in updated + + +@pytest.mark.smoke +def test_list_entities(test_linode_client): + client = test_linode_client + iam = client.iam + + entities = iam.entities() + + if len(entities) > 0: + entity = entities[0] + assert isinstance(entity, LinodeEntity) + assert hasattr(entity, "id") + assert hasattr(entity, "label") + assert hasattr(entity, "type") + else: + pytest.skip("No entities found in IAM response.") From 7e518d084bc7fa3e3fc99326dc0b5617fc4f613c Mon Sep 17 00:00:00 2001 From: vshanthe Date: Thu, 16 Oct 2025 16:30:05 +0530 Subject: [PATCH 2/2] fix --- test/integration/models/iam/iam_test.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/integration/models/iam/iam_test.py b/test/integration/models/iam/iam_test.py index 5c1c2df6d..9b054bf64 100644 --- a/test/integration/models/iam/iam_test.py +++ b/test/integration/models/iam/iam_test.py @@ -3,7 +3,6 @@ from linode_api4.objects import EntityAccess, LinodeEntity -@pytest.mark.smoke def test_get_role_permissions(test_linode_client): client = test_linode_client iam = client.iam @@ -14,7 +13,6 @@ def test_get_role_permissions(test_linode_client): assert isinstance(permissions["account_access"], list) -@pytest.mark.smoke def test_get_user_role_permissions(test_linode_client): client = test_linode_client iam = client.iam @@ -46,7 +44,6 @@ def test_set_user_role_permissions(test_linode_client): assert "entity_access" in updated -@pytest.mark.smoke def test_list_entities(test_linode_client): client = test_linode_client iam = client.iam