Skip to content

Commit 5e6003b

Browse files
authored
Test placement (#636)
1 parent ba4addd commit 5e6003b

File tree

2 files changed

+137
-1
lines changed

2 files changed

+137
-1
lines changed

tests/integration/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,7 @@ def support_test_linode_id(linode_cloud_firewall):
553553
"--type",
554554
"g6-nanode-1",
555555
"--region",
556-
"us-ord",
556+
"us-mia",
557557
"--image",
558558
DEFAULT_TEST_IMAGE,
559559
"--label",
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
import time
2+
3+
import pytest
4+
5+
from tests.integration.helpers import (
6+
assert_headers_in_lines,
7+
delete_target_id,
8+
exec_test_command,
9+
)
10+
11+
BASE_CMD = ["linode-cli", "placement"]
12+
13+
14+
@pytest.fixture
15+
def create_placement_group():
16+
new_label = str(time.time_ns()) + "label"
17+
placement_group_id = (
18+
exec_test_command(
19+
BASE_CMD
20+
+ [
21+
"group-create",
22+
"--label",
23+
new_label,
24+
"--region",
25+
"us-mia",
26+
"--placement_group_type",
27+
"anti_affinity:local",
28+
"--placement_group_policy",
29+
"strict",
30+
"--text",
31+
"--no-headers",
32+
"--format=id",
33+
]
34+
)
35+
.stdout.decode()
36+
.rstrip()
37+
)
38+
yield placement_group_id
39+
delete_target_id(
40+
target="placement", subcommand="group-delete", id=placement_group_id
41+
)
42+
43+
44+
def test_placement_group_list():
45+
res = (
46+
exec_test_command(BASE_CMD + ["groups-list", "--text", "--delimiter=,"])
47+
.stdout.decode()
48+
.rstrip()
49+
)
50+
lines = res.splitlines()
51+
headers = ["placement_group_type", "region", "label"]
52+
assert_headers_in_lines(headers, lines)
53+
54+
55+
def test_placement_group_view(create_placement_group):
56+
placement_group_id = create_placement_group
57+
res = (
58+
exec_test_command(
59+
BASE_CMD
60+
+ ["group-view", placement_group_id, "--text", "--delimiter=,"]
61+
)
62+
.stdout.decode()
63+
.rstrip()
64+
)
65+
lines = res.splitlines()
66+
67+
headers = ["placement_group_type", "region", "label"]
68+
assert_headers_in_lines(headers, lines)
69+
70+
71+
@pytest.mark.skip(reason="BUG TPT-3109")
72+
def test_assign_placement_group(support_test_linode_id, create_placement_group):
73+
linode_id = support_test_linode_id
74+
placement_group_id = create_placement_group
75+
res = (
76+
exec_test_command(
77+
BASE_CMD
78+
+ [
79+
"assign-linode",
80+
placement_group_id,
81+
"--linodes",
82+
linode_id,
83+
"--text",
84+
"--delimiter=,",
85+
]
86+
)
87+
.stdout.decode()
88+
.rstrip()
89+
)
90+
assert placement_group_id in res
91+
92+
93+
@pytest.mark.skip(reason="BUG TPT-3109")
94+
def test_unassign_placement_group(
95+
support_test_linode_id, create_placement_group
96+
):
97+
linode_id = support_test_linode_id
98+
placement_group_id = create_placement_group
99+
res = (
100+
exec_test_command(
101+
BASE_CMD
102+
+ [
103+
"unassign-linode",
104+
placement_group_id,
105+
"--linode",
106+
linode_id,
107+
"--text",
108+
"--delimiter=,",
109+
]
110+
)
111+
.stdout.decode()
112+
.rstrip()
113+
)
114+
assert placement_group_id not in res
115+
116+
117+
def test_update_placement_group(create_placement_group):
118+
placement_group_id = create_placement_group
119+
new_label = str(time.time_ns()) + "label"
120+
updated_label = (
121+
exec_test_command(
122+
BASE_CMD
123+
+ [
124+
"group-update",
125+
placement_group_id,
126+
"--label",
127+
new_label,
128+
"--text",
129+
"--no-headers",
130+
"--format=label",
131+
]
132+
)
133+
.stdout.decode()
134+
.rstrip()
135+
)
136+
assert new_label == updated_label

0 commit comments

Comments
 (0)