Skip to content

Commit 9d9834d

Browse files
committed
Apply code review suggestions
1 parent 2ca53cc commit 9d9834d

1 file changed

Lines changed: 26 additions & 4 deletions

File tree

test/integration/models/linode/test_linode.py

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
import pytest
1212

13-
from linode_api4.errors import ApiError
13+
from linode_api4.errors import ApiError, UnexpectedResponseError
1414
from linode_api4.objects import (
1515
Config,
1616
ConfigInterface,
@@ -231,6 +231,23 @@ def get_status(linode: Instance, status: str):
231231
return linode.status == status
232232

233233

234+
def wait_for_clone_complete_and_delete_linode(
235+
interval: int, timeout: int, linode: Instance
236+
) -> object:
237+
end_time = time.time() + timeout
238+
while time.time() < end_time:
239+
try:
240+
linode.delete()
241+
return True
242+
except ApiError as err:
243+
if "[400] Linode is the target of an ongoing clone" not in str(err):
244+
raise UnexpectedResponseError(f"Unexpected delete linode error")
245+
time.sleep(interval)
246+
raise TimeoutError(
247+
f"Timeout Error: not possible to delete just cloned linode in {timeout} seconds"
248+
)
249+
250+
234251
def instance_type_condition(linode: Instance, type: str):
235252
return type in str(linode.type)
236253

@@ -385,7 +402,13 @@ def test_linode_alerts_workflow(test_linode_client, create_linode):
385402
"network_out": 20,
386403
"transfer_quota": 40,
387404
}
388-
linode.save()
405+
linode_save_status = linode.save()
406+
assert linode_save_status == True
407+
assert linode.alerts["cpu"] == 50
408+
assert linode.alerts["io"] == 6000
409+
assert linode.alerts["network_in"] == 20
410+
assert linode.alerts["network_out"] == 20
411+
assert linode.alerts["transfer_quota"] == 40
389412

390413
wait_for_condition(10, 100, get_status, linode, "running")
391414
new_linode = retry_sending_request(
@@ -403,8 +426,7 @@ def test_linode_alerts_workflow(test_linode_client, create_linode):
403426
assert isinstance(new_linode.alerts.system_alerts, list)
404427
assert isinstance(new_linode.alerts.user_alerts, list)
405428

406-
if new_linode is not None:
407-
new_linode.delete()
429+
wait_for_clone_complete_and_delete_linode(10, 100, new_linode)
408430

409431

410432
def test_update_linode_aclp_alerts(

0 commit comments

Comments
 (0)