Skip to content

Commit 7606f23

Browse files
authored
Integrations for IAM role-permissions and Entities (#613)
* iam_tests * fix
1 parent ac31e72 commit 7606f23

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import pytest
2+
3+
from linode_api4.objects import EntityAccess, LinodeEntity
4+
5+
6+
def test_get_role_permissions(test_linode_client):
7+
client = test_linode_client
8+
iam = client.iam
9+
10+
permissions = iam.role_permissions()
11+
12+
assert "account_access" in permissions
13+
assert isinstance(permissions["account_access"], list)
14+
15+
16+
def test_get_user_role_permissions(test_linode_client):
17+
client = test_linode_client
18+
iam = client.iam
19+
20+
username = client.profile().username
21+
user_permissions = iam.role_permissions_user_get(username)
22+
23+
assert "account_access" in user_permissions
24+
assert isinstance(user_permissions["account_access"], list)
25+
26+
27+
@pytest.mark.skip(
28+
reason="Updating IAM role permissions may require elevated privileges."
29+
)
30+
def test_set_user_role_permissions(test_linode_client):
31+
client = test_linode_client
32+
iam = client.iam
33+
34+
username = client.profile().username
35+
entity_access = [EntityAccess(id=1, type="linode", roles=["read_only"])]
36+
37+
updated = iam.role_permissions_user_set(
38+
username,
39+
account_access=["read_only"],
40+
entity_access=entity_access,
41+
)
42+
43+
assert "account_access" in updated
44+
assert "entity_access" in updated
45+
46+
47+
def test_list_entities(test_linode_client):
48+
client = test_linode_client
49+
iam = client.iam
50+
51+
entities = iam.entities()
52+
53+
if len(entities) > 0:
54+
entity = entities[0]
55+
assert isinstance(entity, LinodeEntity)
56+
assert hasattr(entity, "id")
57+
assert hasattr(entity, "label")
58+
assert hasattr(entity, "type")
59+
else:
60+
pytest.skip("No entities found in IAM response.")

0 commit comments

Comments
 (0)