Skip to content

Commit 16e463d

Browse files
authored
Merge pull request #98 from SUSE-Enceladus/tests_strategy_improvement_changes
Includes the required changes to include the test_regions field in ec2 accounts
2 parents b664ea4 + 7f27d5e commit 16e463d

File tree

3 files changed

+74
-8
lines changed

3 files changed

+74
-8
lines changed

mash_client/cli/account/ec2.py

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131
abort_if_false,
3232
echo_dict,
3333
echo_style,
34-
additional_regions_repl
34+
additional_regions_repl,
35+
test_regions_repl
3536
)
3637

3738

@@ -43,6 +44,12 @@ def ec2():
4344

4445

4546
@click.command()
47+
@click.option(
48+
'--test-regions',
49+
is_flag=True,
50+
help='Invoke test region addition process to specify information '
51+
'for test regions'
52+
)
4653
@click.option(
4754
'--additional-regions',
4855
is_flag=True,
@@ -92,7 +99,7 @@ def ec2():
9299
)
93100
@click.pass_context
94101
def add(
95-
context, additional_regions, group, name, partition,
102+
context, test_regions, additional_regions, group, name, partition,
96103
region, subnet, access_key_id, secret_access_key
97104
):
98105
"""
@@ -114,6 +121,9 @@ def add(
114121
if additional_regions:
115122
data['additional_regions'] = additional_regions_repl()
116123

124+
if test_regions:
125+
data['test_regions'] = test_regions_repl()
126+
117127
if group:
118128
data['group'] = group
119129

@@ -206,6 +216,12 @@ def delete(context, name):
206216

207217

208218
@click.command()
219+
@click.option(
220+
'--test-regions',
221+
is_flag=True,
222+
help='Invoke region addition process to specify information '
223+
'for test regions'
224+
)
209225
@click.option(
210226
'--additional-regions',
211227
is_flag=True,
@@ -245,7 +261,7 @@ def delete(context, name):
245261
)
246262
@click.pass_context
247263
def update(
248-
context, additional_regions, group, name,
264+
context, test_regions, additional_regions, group, name,
249265
region, subnet, access_key_id, secret_access_key
250266
):
251267
"""
@@ -276,6 +292,12 @@ def update(
276292
if regions:
277293
data['additional_regions'] = regions
278294

295+
if test_regions:
296+
regions = test_regions_repl()
297+
298+
if regions:
299+
data['test_regions'] = regions
300+
279301
if group:
280302
data['group'] = group
281303

mash_client/cli_utils.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,27 @@ def additional_regions_repl():
346346
return regions
347347

348348

349+
def test_regions_repl():
350+
regions = []
351+
352+
while True:
353+
if click.confirm('Add a test region?'):
354+
name = click.prompt('Enter the region name', type=str)
355+
subnet = click.prompt(
356+
'Enter the subnet id',
357+
type=str
358+
)
359+
360+
regions.append({
361+
'region': name,
362+
'subnet': subnet
363+
})
364+
else:
365+
break
366+
367+
return regions
368+
369+
349370
def get_free_port(ports):
350371
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
351372
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

tests/test_ec2_account.py

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@ def test_account_add_ec2(mock_requests, mock_time):
2121
'id': '1',
2222
'name': 'us-east-5',
2323
'helper_image': 'ami-12345'
24-
}
24+
},
25+
'test_regions': [{
26+
'region': 'us-east-6',
27+
'subnet': 'subnet-123456'
28+
}]
2529
}
2630
mock_requests.post.return_value = response
2731
mock_time.time.return_value = 1568150470
@@ -31,14 +35,19 @@ def test_account_add_ec2(mock_requests, mock_time):
3135
main,
3236
[
3337
'-C', 'tests/data/', 'account', 'ec2', 'add',
34-
'--additional-regions', '--name', 'acnt1', '--partition', 'aws',
38+
'--additional-regions', '--test-regions', '--name', 'acnt1',
39+
'--partition', 'aws',
3540
'--region', 'us-east-1', '--subnet',
3641
'subnet-123456789', '--access-key-id', '123456',
3742
'--secret-access-key', '654321'
3843
],
3944
input='y\n'
4045
'us-east-5\n'
4146
'ami-12345\n'
47+
'n\n'
48+
'y\n'
49+
'us-east-6\n'
50+
'subnet-123456\n'
4251
'n'
4352
)
4453
assert result.exit_code == 0
@@ -83,7 +92,13 @@ def test_ec2_account_info(mock_requests, mock_time):
8392
'id': '1',
8493
'name': 'us-east-5',
8594
'helper_image': 'ami-12345'
86-
}
95+
},
96+
'test_regions': [
97+
{
98+
'region': 'us-east-6',
99+
'subnet': 'subnet-123456'
100+
}
101+
]
87102
}
88103
mock_requests.get.return_value = response
89104
mock_time.time.return_value = 1568150470
@@ -147,7 +162,11 @@ def test_account_update_ec2(mock_requests, mock_time):
147162
'id': '1',
148163
'name': 'us-east-5',
149164
'helper_image': 'ami-12345'
150-
}
165+
},
166+
'test_regions': [{
167+
'region': 'us-east-6',
168+
'subnet': 'subnet-123456'
169+
}]
151170
}
152171
mock_requests.post.return_value = response
153172
mock_time.time.return_value = 1568150470
@@ -157,14 +176,18 @@ def test_account_update_ec2(mock_requests, mock_time):
157176
main,
158177
[
159178
'-C', 'tests/data/', 'account', 'ec2', 'update',
160-
'--additional-regions', '--name', 'acnt1',
179+
'--additional-regions', '--test-regions', '--name', 'acnt1',
161180
'--region', 'us-east-1', '--subnet',
162181
'subnet-123456789', '--access-key-id', '123456',
163182
'--secret-access-key', '654321'
164183
],
165184
input='y\n'
166185
'us-east-5\n'
167186
'ami-12345\n'
187+
'n\n'
188+
'y\n'
189+
'us-east-6\n'
190+
'subnet-123456\n'
168191
'n'
169192
)
170193
assert result.exit_code == 0

0 commit comments

Comments
 (0)