Skip to content

Commit 5302e71

Browse files
authored
Regression fixes (#647)
* Add waits for Linodes to improve flaky tests * Increase timeout for Linode's 'offline' status * Revert import changes in test_account.py
1 parent 4003f2a commit 5302e71

File tree

4 files changed

+27
-9
lines changed

4 files changed

+27
-9
lines changed

test/integration/models/account/test_account.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
import time
22
from datetime import datetime
33
from test.integration.conftest import get_region
4-
from test.integration.helpers import get_test_label, retry_sending_request
4+
from test.integration.helpers import (
5+
get_test_label,
6+
retry_sending_request,
7+
wait_for_condition,
8+
)
59

610
import pytest
711

@@ -102,13 +106,18 @@ def test_latest_get_event(test_linode_client, e2e_test_firewall):
102106
firewall=e2e_test_firewall,
103107
)
104108

105-
events = client.load(Event, "")
109+
def get_linode_status():
110+
return linode.status == "running"
106111

107-
latest_events = events._raw_json.get("data")
112+
# To ensure the Linode is running and the 'event' key has been populated
113+
wait_for_condition(3, 100, get_linode_status)
114+
115+
events = client.load(Event, "")
116+
latest_events = events._raw_json.get("data")[:15]
108117

109118
linode.delete()
110119

111-
for event in latest_events[:15]:
120+
for event in latest_events:
112121
if label == event["entity"]["label"]:
113122
break
114123
else:

test/integration/models/domain/test_domain.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ def test_clone(test_linode_client, test_domain):
4343
dom = "example.clone-" + timestamp + "-inttestsdk.org"
4444
domain.clone(dom)
4545

46-
ds = test_linode_client.domains()
47-
4846
time.sleep(1)
4947

48+
ds = test_linode_client.domains()
49+
5050
domains = [i.domain for i in ds]
5151

5252
assert dom in domains

test/integration/models/linode/test_linode.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -611,6 +611,12 @@ def test_linode_initate_migration(test_linode_client, e2e_test_firewall):
611611
migration_type=MigrationType.COLD,
612612
)
613613

614+
def get_linode_status():
615+
return linode.status == "offline"
616+
617+
# To verify that Linode's status changed before deletion (during migration status is set to 'offline')
618+
wait_for_condition(5, 120, get_linode_status)
619+
614620
res = linode.delete()
615621

616622
assert res

test/integration/models/networking/test_networking.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
)
3333

3434

35-
def create_linode(test_linode_client):
35+
def create_linode_func(test_linode_client):
3636
client = test_linode_client
3737

3838
label = get_test_label()
@@ -49,7 +49,7 @@ def create_linode(test_linode_client):
4949

5050
@pytest.fixture
5151
def create_linode_for_ip_share(test_linode_client):
52-
linode = create_linode(test_linode_client)
52+
linode = create_linode_func(test_linode_client)
5353

5454
yield linode
5555

@@ -58,7 +58,7 @@ def create_linode_for_ip_share(test_linode_client):
5858

5959
@pytest.fixture
6060
def create_linode_to_be_shared_with_ips(test_linode_client):
61-
linode = create_linode(test_linode_client)
61+
linode = create_linode_func(test_linode_client)
6262

6363
yield linode
6464

@@ -302,6 +302,8 @@ def test_create_and_delete_vlan(test_linode_client, linode_for_vlan_tests):
302302
wait_for_condition(3, 100, get_status, linode, "rebooting")
303303
assert linode.status == "rebooting"
304304

305+
wait_for_condition(3, 100, get_status, linode, "running")
306+
305307
# Delete the VLAN
306308
is_deleted = test_linode_client.networking.delete_vlan(
307309
vlan_label, linode.region
@@ -334,6 +336,7 @@ def test_get_global_firewall_settings(test_linode_client):
334336

335337
def test_ip_info(test_linode_client, create_linode):
336338
linode = create_linode
339+
wait_for_condition(3, 100, get_status, linode, "running")
337340

338341
ip_info = test_linode_client.load(IPAddress, linode.ipv4[0])
339342

0 commit comments

Comments
 (0)