Skip to content

Commit feecb3a

Browse files
authored
Add test integration (#593)
1 parent 88f0104 commit feecb3a

File tree

9 files changed

+882
-53
lines changed

9 files changed

+882
-53
lines changed

tests/integration/account/test_account.py

Lines changed: 106 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import pytest
2+
13
from tests.integration.helpers import assert_headers_in_lines, exec_test_command
24

35
BASE_CMD = ["linode-cli", "account"]
@@ -39,16 +41,36 @@ def test_event_list():
3941
.rstrip()
4042
)
4143
lines = res.splitlines()
42-
43-
event_id = lines[1].split(",")[0]
44-
4544
headers = ["entity.label", "username"]
4645
assert_headers_in_lines(headers, lines)
47-
return event_id
4846

4947

50-
def test_event_view():
51-
event_id = test_event_list()
48+
@pytest.fixture
49+
def get_event_id():
50+
event_id = (
51+
exec_test_command(
52+
[
53+
"linode-cli",
54+
"events",
55+
"list",
56+
"--text",
57+
"--no-headers",
58+
"--delimiter",
59+
",",
60+
"--format",
61+
"id",
62+
]
63+
)
64+
.stdout.decode()
65+
.rstrip()
66+
.splitlines()
67+
)
68+
first_id = event_id[0].split(",")[0]
69+
yield first_id
70+
71+
72+
def test_event_view(get_event_id):
73+
event_id = get_event_id
5274
res = (
5375
exec_test_command(
5476
[
@@ -78,16 +100,35 @@ def test_account_invoice_list():
78100
.rstrip()
79101
)
80102
lines = res.splitlines()
81-
82-
invoice_id = lines[1].split(",")[0]
83-
84103
headers = ["billing_source", "tax", "subtotal"]
85104
assert_headers_in_lines(headers, lines)
86-
return invoice_id
87105

88106

89-
def test_account_invoice_view():
90-
invoice_id = test_account_invoice_list()
107+
@pytest.fixture
108+
def get_invoice_id():
109+
invoice_id = (
110+
exec_test_command(
111+
BASE_CMD
112+
+ [
113+
"invoices-list",
114+
"--text",
115+
"--no-headers",
116+
"--delimiter",
117+
",",
118+
"--format",
119+
"id",
120+
]
121+
)
122+
.stdout.decode()
123+
.rstrip()
124+
.splitlines()
125+
)
126+
first_id = invoice_id[0]
127+
yield first_id
128+
129+
130+
def test_account_invoice_view(get_invoice_id):
131+
invoice_id = get_invoice_id
91132
res = (
92133
exec_test_command(
93134
BASE_CMD + ["invoice-view", invoice_id, "--text", "--delimiter=,"]
@@ -101,8 +142,8 @@ def test_account_invoice_view():
101142
assert_headers_in_lines(headers, lines)
102143

103144

104-
def test_account_invoice_items():
105-
invoice_id = test_account_invoice_list()
145+
def test_account_invoice_items(get_invoice_id):
146+
invoice_id = get_invoice_id
106147
res = (
107148
exec_test_command(
108149
BASE_CMD + ["invoice-items", invoice_id, "--text", "--delimiter=,"]
@@ -123,16 +164,35 @@ def test_account_logins_list():
123164
.rstrip()
124165
)
125166
lines = res.splitlines()
126-
127-
login_id = lines[1].split(",")[0]
128-
129167
headers = ["ip", "username", "status"]
130168
assert_headers_in_lines(headers, lines)
131-
return login_id
132169

133170

134-
def test_account_login_view():
135-
login_id = test_account_logins_list()
171+
@pytest.fixture
172+
def get_login_id():
173+
login_id = (
174+
exec_test_command(
175+
BASE_CMD
176+
+ [
177+
"logins-list",
178+
"--text",
179+
"--no-headers",
180+
"--delimiter",
181+
",",
182+
"--format",
183+
"id",
184+
]
185+
)
186+
.stdout.decode()
187+
.rstrip()
188+
.splitlines()
189+
)
190+
first_id = login_id[0]
191+
yield first_id
192+
193+
194+
def test_account_login_view(get_login_id):
195+
login_id = get_login_id
136196
res = (
137197
exec_test_command(
138198
BASE_CMD + ["login-view", login_id, "--text", "--delimiter=,"]
@@ -167,16 +227,36 @@ def test_user_list():
167227
.rstrip()
168228
)
169229
lines = res.splitlines()
170-
171-
user_id = lines[1].split(",")[0]
172-
173230
headers = ["email", "username"]
174231
assert_headers_in_lines(headers, lines)
175-
return user_id
176232

177233

178-
def test_user_view():
179-
user_id = test_user_list()
234+
@pytest.fixture
235+
def get_user_id():
236+
user_id = (
237+
exec_test_command(
238+
[
239+
"linode-cli",
240+
"users",
241+
"list",
242+
"--text",
243+
"--no-headers",
244+
"--delimiter",
245+
",",
246+
"--format",
247+
"id",
248+
]
249+
)
250+
.stdout.decode()
251+
.rstrip()
252+
.splitlines()
253+
)
254+
first_id = user_id[0].split(",")[0]
255+
yield first_id
256+
257+
258+
def test_user_view(get_user_id):
259+
user_id = get_user_id
180260
res = (
181261
exec_test_command(
182262
["linode-cli", "users", "view", user_id, "--text", "--delimiter=,"]

tests/integration/beta/test_beta_program.py

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,35 @@ def test_beta_list():
1616
if len(lines) < 2 or len(lines[1].split(",")) == 0:
1717
pytest.skip("No beta program available to test")
1818
else:
19-
beta_id = lines[1].split(",")[0]
2019
headers = ["label", "description"]
2120
assert_headers_in_lines(headers, lines)
22-
return beta_id
2321

2422

25-
def test_beta_view():
26-
beta_id = test_beta_list()
23+
@pytest.fixture
24+
def get_beta_id():
25+
beta_id = (
26+
exec_test_command(
27+
BASE_CMD
28+
+ [
29+
"list",
30+
"--text",
31+
"--no-headers",
32+
"--delimiter",
33+
",",
34+
"--format",
35+
"id",
36+
]
37+
)
38+
.stdout.decode()
39+
.rstrip()
40+
.splitlines()
41+
)
42+
first_id = beta_id[0]
43+
yield first_id
44+
45+
46+
def test_beta_view(get_beta_id):
47+
beta_id = get_beta_id
2748
if beta_id is None:
2849
pytest.skip("No beta program available to test")
2950
else:

tests/integration/database/test_database.py

Lines changed: 50 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,35 @@ def test_engines_list():
1616
.rstrip()
1717
)
1818
lines = res.splitlines()
19-
20-
engine_id = lines[1].split(",")[0]
21-
2219
headers = ["id", "engine", "version"]
2320
assert_headers_in_lines(headers, lines)
24-
return engine_id
2521

2622

27-
def test_engines_view():
28-
engine_id = test_engines_list()
23+
@pytest.fixture
24+
def get_engine_id():
25+
engine_id = (
26+
exec_test_command(
27+
BASE_CMD
28+
+ [
29+
"engines",
30+
"--text",
31+
"--no-headers",
32+
"--delimiter",
33+
",",
34+
"--format",
35+
"id",
36+
]
37+
)
38+
.stdout.decode()
39+
.rstrip()
40+
.splitlines()
41+
)
42+
first_id = engine_id[0]
43+
yield first_id
44+
45+
46+
def test_engines_view(get_engine_id):
47+
engine_id = get_engine_id
2948
res = (
3049
exec_test_command(
3150
BASE_CMD + ["engine-view", engine_id, "--text", "--delimiter=,"]
@@ -90,16 +109,35 @@ def test_databases_types():
90109
.rstrip()
91110
)
92111
lines = res.splitlines()
93-
94-
node_id = lines[1].split(",")[0]
95-
96112
headers = ["id", "label", "_split"]
97113
assert_headers_in_lines(headers, lines)
98-
return node_id
99114

100115

101-
def test_databases_type_view():
102-
node_id = test_databases_types()
116+
@pytest.fixture
117+
def get_node_id():
118+
node_id = (
119+
exec_test_command(
120+
BASE_CMD
121+
+ [
122+
"types",
123+
"--text",
124+
"--no-headers",
125+
"--delimiter",
126+
",",
127+
"--format",
128+
"id",
129+
]
130+
)
131+
.stdout.decode()
132+
.rstrip()
133+
.splitlines()
134+
)
135+
first_id = node_id[0]
136+
yield first_id
137+
138+
139+
def test_databases_type_view(get_node_id):
140+
node_id = get_node_id
103141
res = (
104142
exec_test_command(
105143
BASE_CMD + ["type-view", node_id, "--text", "--delimiter=,"]

tests/integration/helpers.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,9 @@ def delete_tag(arg: str):
6363
assert result.returncode == SUCCESS_STATUS_CODE
6464

6565

66-
def delete_target_id(target: str, id: str):
67-
result = exec_test_command(["linode-cli", target, "delete", id])
66+
def delete_target_id(target: str, id: str, subcommand: str = "delete"):
67+
command = ["linode-cli", target, subcommand, id]
68+
result = exec_test_command(command)
6869
assert result.returncode == SUCCESS_STATUS_CODE
6970

7071

@@ -89,11 +90,6 @@ def remove_lke_clusters():
8990
exec_test_command(["linode-cli", "lke", "cluster-delete", id])
9091

9192

92-
def delete_target_id(target: str, id: str):
93-
result = exec_test_command(["linode-cli", target, "delete", id])
94-
assert result.returncode == SUCCESS_STATUS_CODE
95-
96-
9793
def remove_all(target: str):
9894
entity_ids = ""
9995
if target == "stackscripts":

0 commit comments

Comments
 (0)