Skip to content

Commit e264cbd

Browse files
committed
integration test
1 parent d9f44a2 commit e264cbd

File tree

2 files changed

+77
-0
lines changed

2 files changed

+77
-0
lines changed

test/integration/models/account/test_account.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,25 @@ def test_get_account_settings(test_linode_client):
5959
assert "longview_subscription" in str(account_settings._raw_json)
6060
assert "backups_enabled" in str(account_settings._raw_json)
6161
assert "object_storage" in str(account_settings._raw_json)
62+
assert "maintenance_policy" in str(account_settings._raw_json)
63+
64+
65+
def test_update_maintenance_policy(test_linode_client):
66+
client = test_linode_client
67+
settings = client.load(AccountSettings(client, ""), "")
68+
69+
original_policy = settings.maintenance_policy
70+
new_policy = (
71+
"linode/power_off_on"
72+
if original_policy == "linode/migrate"
73+
else "linode/migrate"
74+
)
75+
76+
settings.maintenance_policy = new_policy
77+
settings.save()
78+
79+
updated = client.load(AccountSettings(client, ""), "")
80+
assert updated.maintenance_policy == new_policy
6281

6382

6483
@pytest.mark.smoke
@@ -132,3 +151,17 @@ def test_get_payments(test_linode_client):
132151
if len(payments) > 0:
133152
assert isinstance(payments[0].date, datetime)
134153
assert isinstance(payments[0].usd, float)
154+
155+
156+
def test_get_maintenance_policies(test_linode_client):
157+
client = test_linode_client
158+
159+
policies = client.maintenance.maintenance_policies()
160+
161+
assert isinstance(policies, list)
162+
assert all(hasattr(p, "slug") for p in policies)
163+
164+
slugs = [p.slug for p in policies]
165+
assert any(
166+
slug in slugs for slug in ["linode/migrate", "linode/power_off_on"]
167+
)

test/integration/models/linode/test_linode.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -877,3 +877,47 @@ def test_delete_interface_containing_vpc(
877877

878878
# returns true when delete successful
879879
assert result
880+
881+
882+
def test_create_linode_with_maintenance_policy(test_linode_client):
883+
client = test_linode_client
884+
region = get_region(client, {"Linodes"}, site_type="core")
885+
label = get_test_label()
886+
887+
policies = client.maintenance.maintenance_policies()
888+
assert policies, "No maintenance policies returned from API"
889+
890+
non_default_policy = next((p for p in policies if not p.is_default), None)
891+
assert non_default_policy, "No non-default maintenance policy available"
892+
893+
linode_instance, password = client.linode.instance_create(
894+
"g6-nanode-1",
895+
region,
896+
image="linode/debian12",
897+
label=label + "_with_policy",
898+
maintenance_policy_id=non_default_policy.slug,
899+
)
900+
901+
assert linode_instance.id is not None
902+
assert linode_instance.label.startswith(label)
903+
assert linode_instance.maintenance_policy == non_default_policy.slug
904+
905+
linode_instance.delete()
906+
907+
908+
def test_update_linode_maintenance_policy(create_linode, test_linode_client):
909+
client = test_linode_client
910+
linode = create_linode
911+
912+
policies = client.maintenance.maintenance_policies()
913+
assert policies, "No maintenance policies returned from API"
914+
915+
non_default_policy = next((p for p in policies if not p.is_default), None)
916+
assert non_default_policy, "No non-default maintenance policy found"
917+
918+
linode.maintenance_policy_id = non_default_policy.slug
919+
result = linode.save()
920+
921+
linode.invalidate()
922+
assert result
923+
assert linode.maintenance_policy_id == non_default_policy.slug

0 commit comments

Comments
 (0)