Skip to content

Commit a9b9984

Browse files
committed
tests: Use SDK mocks for SDK-based commands
Change-Id: I7e781875d4467ed097196771144e25cee38ce678 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
1 parent 8eb1a18 commit a9b9984

File tree

2 files changed

+241
-244
lines changed

2 files changed

+241
-244
lines changed

openstackclient/tests/unit/volume/v2/test_volume_backup.py

Lines changed: 112 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
from unittest.mock import call
1515

1616
from openstack.block_storage.v2 import backup as _backup
17+
from openstack.block_storage.v2 import snapshot as _snapshot
18+
from openstack.block_storage.v2 import volume as _volume
1719
from openstack import exceptions as sdk_exceptions
1820
from openstack.test import fakes as sdk_fakes
1921
from osc_lib import exceptions
@@ -23,94 +25,95 @@
2325

2426

2527
class TestBackupCreate(volume_fakes.TestVolume):
26-
volume = volume_fakes.create_one_volume()
27-
snapshot = volume_fakes.create_one_snapshot()
28-
new_backup = volume_fakes.create_one_backup(
29-
attrs={'volume_id': volume.id, 'snapshot_id': snapshot.id}
30-
)
31-
3228
columns = (
3329
'id',
3430
'name',
3531
'volume_id',
3632
)
37-
data = (
38-
new_backup.id,
39-
new_backup.name,
40-
new_backup.volume_id,
41-
)
4233

4334
def setUp(self):
4435
super().setUp()
4536

37+
self.volume = sdk_fakes.generate_fake_resource(_volume.Volume)
4638
self.volume_sdk_client.find_volume.return_value = self.volume
39+
self.snapshot = sdk_fakes.generate_fake_resource(_snapshot.Snapshot)
4740
self.volume_sdk_client.find_snapshot.return_value = self.snapshot
48-
self.volume_sdk_client.create_backup.return_value = self.new_backup
41+
self.backup = sdk_fakes.generate_fake_resource(
42+
_backup.Backup,
43+
volume_id=self.volume.id,
44+
snapshot_id=self.snapshot.id,
45+
)
46+
self.volume_sdk_client.create_backup.return_value = self.backup
47+
48+
self.data = (
49+
self.backup.id,
50+
self.backup.name,
51+
self.backup.volume_id,
52+
)
4953

50-
# Get the command object to test
5154
self.cmd = volume_backup.CreateVolumeBackup(self.app, None)
5255

5356
def test_backup_create(self):
5457
arglist = [
5558
"--name",
56-
self.new_backup.name,
59+
self.backup.name,
5760
"--description",
58-
self.new_backup.description,
61+
self.backup.description,
5962
"--container",
60-
self.new_backup.container,
63+
self.backup.container,
6164
"--force",
6265
"--incremental",
6366
"--snapshot",
64-
self.new_backup.snapshot_id,
65-
self.new_backup.volume_id,
67+
self.backup.snapshot_id,
68+
self.backup.volume_id,
6669
]
6770
verifylist = [
68-
("name", self.new_backup.name),
69-
("description", self.new_backup.description),
70-
("container", self.new_backup.container),
71+
("name", self.backup.name),
72+
("description", self.backup.description),
73+
("container", self.backup.container),
7174
("force", True),
7275
("incremental", True),
73-
("snapshot", self.new_backup.snapshot_id),
74-
("volume", self.new_backup.volume_id),
76+
("snapshot", self.backup.snapshot_id),
77+
("volume", self.backup.volume_id),
7578
]
7679
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
7780

7881
columns, data = self.cmd.take_action(parsed_args)
7982

8083
self.volume_sdk_client.create_backup.assert_called_with(
81-
volume_id=self.new_backup.volume_id,
82-
container=self.new_backup.container,
83-
name=self.new_backup.name,
84-
description=self.new_backup.description,
84+
volume_id=self.backup.volume_id,
85+
container=self.backup.container,
86+
name=self.backup.name,
87+
description=self.backup.description,
8588
force=True,
8689
is_incremental=True,
87-
snapshot_id=self.new_backup.snapshot_id,
90+
snapshot_id=self.backup.snapshot_id,
8891
)
8992
self.assertEqual(self.columns, columns)
9093
self.assertEqual(self.data, data)
9194

9295
def test_backup_create_without_name(self):
9396
arglist = [
9497
"--description",
95-
self.new_backup.description,
98+
self.backup.description,
9699
"--container",
97-
self.new_backup.container,
98-
self.new_backup.volume_id,
100+
self.backup.container,
101+
self.backup.volume_id,
99102
]
100103
verifylist = [
101-
("description", self.new_backup.description),
102-
("container", self.new_backup.container),
103-
("volume", self.new_backup.volume_id),
104+
("description", self.backup.description),
105+
("container", self.backup.container),
106+
("volume", self.backup.volume_id),
104107
]
105108
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
106109

107110
columns, data = self.cmd.take_action(parsed_args)
108111

109112
self.volume_sdk_client.create_backup.assert_called_with(
110-
volume_id=self.new_backup.volume_id,
111-
container=self.new_backup.container,
113+
volume_id=self.backup.volume_id,
114+
container=self.backup.container,
112115
name=None,
113-
description=self.new_backup.description,
116+
description=self.backup.description,
114117
force=False,
115118
is_incremental=False,
116119
)
@@ -119,17 +122,13 @@ def test_backup_create_without_name(self):
119122

120123

121124
class TestBackupDelete(volume_fakes.TestVolume):
122-
backups = volume_fakes.create_backups(count=2)
123-
124125
def setUp(self):
125126
super().setUp()
126127

127-
self.volume_sdk_client.find_backup = volume_fakes.get_backups(
128-
self.backups
129-
)
128+
self.backups = list(sdk_fakes.generate_fake_resources(_backup.Backup))
129+
self.volume_sdk_client.find_backup.side_effect = self.backups
130130
self.volume_sdk_client.delete_backup.return_value = None
131131

132-
# Get the command object to mock
133132
self.cmd = volume_backup.DeleteVolumeBackup(self.app, None)
134133

135134
def test_backup_delete(self):
@@ -212,11 +211,6 @@ def test_delete_multiple_backups_with_exception(self):
212211

213212

214213
class TestBackupList(volume_fakes.TestVolume):
215-
volume = volume_fakes.create_one_volume()
216-
backups = volume_fakes.create_backups(
217-
attrs={'volume_id': volume.name}, count=3
218-
)
219-
220214
columns = (
221215
'ID',
222216
'Name',
@@ -232,45 +226,51 @@ class TestBackupList(volume_fakes.TestVolume):
232226
'Container',
233227
)
234228

235-
data = []
236-
for b in backups:
237-
data.append(
238-
(
239-
b.id,
240-
b.name,
241-
b.description,
242-
b.status,
243-
b.size,
244-
b.is_incremental,
245-
b.created_at,
246-
)
247-
)
248-
data_long = []
249-
for b in backups:
250-
data_long.append(
251-
(
252-
b.id,
253-
b.name,
254-
b.description,
255-
b.status,
256-
b.size,
257-
b.is_incremental,
258-
b.created_at,
259-
b.availability_zone,
260-
volume_backup.VolumeIdColumn(b.volume_id),
261-
b.container,
262-
)
263-
)
264-
265229
def setUp(self):
266230
super().setUp()
267231

232+
self.volume = sdk_fakes.generate_fake_resource(_volume.Volume)
233+
self.volume_sdk_client.find_volume.return_value = self.volume
268234
self.volume_sdk_client.volumes.return_value = [self.volume]
235+
self.backups = list(
236+
sdk_fakes.generate_fake_resources(
237+
_backup.Backup,
238+
attrs={'volume_id': self.volume.id},
239+
)
240+
)
269241
self.volume_sdk_client.backups.return_value = self.backups
270-
self.volume_sdk_client.find_volume.return_value = self.volume
271242
self.volume_sdk_client.find_backup.return_value = self.backups[0]
272243

273-
# Get the command to test
244+
self.data = []
245+
for b in self.backups:
246+
self.data.append(
247+
(
248+
b.id,
249+
b.name,
250+
b.description,
251+
b.status,
252+
b.size,
253+
b.is_incremental,
254+
b.created_at,
255+
)
256+
)
257+
self.data_long = []
258+
for b in self.backups:
259+
self.data_long.append(
260+
(
261+
b.id,
262+
b.name,
263+
b.description,
264+
b.status,
265+
b.size,
266+
b.is_incremental,
267+
b.created_at,
268+
b.availability_zone,
269+
volume_backup.VolumeIdColumn(b.volume_id),
270+
b.container,
271+
)
272+
)
273+
274274
self.cmd = volume_backup.ListVolumeBackup(self.app, None)
275275

276276
def test_backup_list_without_options(self):
@@ -348,35 +348,33 @@ def test_backup_list_with_options(self):
348348

349349

350350
class TestBackupRestore(volume_fakes.TestVolume):
351-
volume = volume_fakes.create_one_volume()
352-
backup = volume_fakes.create_one_backup(
353-
attrs={'volume_id': volume.id},
354-
)
355-
356351
columns = (
357352
"id",
358353
"volume_id",
359354
"volume_name",
360355
)
361356

362-
data = (
363-
backup.id,
364-
volume.id,
365-
volume.name,
366-
)
367-
368357
def setUp(self):
369358
super().setUp()
370359

371-
self.volume_sdk_client.find_backup.return_value = self.backup
360+
self.volume = sdk_fakes.generate_fake_resource(_volume.Volume)
372361
self.volume_sdk_client.find_volume.return_value = self.volume
362+
self.backup = sdk_fakes.generate_fake_resource(
363+
_backup.Backup, volume_id=self.volume.id
364+
)
365+
self.volume_sdk_client.find_backup.return_value = self.backup
373366
self.volume_sdk_client.restore_backup.return_value = {
374367
'id': self.backup['id'],
375368
'volume_id': self.volume['id'],
376369
'volume_name': self.volume['name'],
377370
}
378371

379-
# Get the command object to mock
372+
self.data = (
373+
self.backup.id,
374+
self.volume.id,
375+
self.volume.name,
376+
)
377+
380378
self.cmd = volume_backup.RestoreVolumeBackup(self.app, None)
381379

382380
def test_backup_restore(self):
@@ -515,8 +513,6 @@ def test_backup_set_state_failed(self):
515513

516514

517515
class TestBackupShow(volume_fakes.TestVolume):
518-
backup = volume_fakes.create_one_backup()
519-
520516
columns = (
521517
"availability_zone",
522518
"container",
@@ -535,30 +531,32 @@ class TestBackupShow(volume_fakes.TestVolume):
535531
"updated_at",
536532
"volume_id",
537533
)
538-
data = (
539-
backup.availability_zone,
540-
backup.container,
541-
backup.created_at,
542-
backup.data_timestamp,
543-
backup.description,
544-
backup.fail_reason,
545-
backup.has_dependent_backups,
546-
backup.id,
547-
backup.is_incremental,
548-
backup.name,
549-
backup.object_count,
550-
backup.size,
551-
backup.snapshot_id,
552-
backup.status,
553-
backup.updated_at,
554-
backup.volume_id,
555-
)
556534

557535
def setUp(self):
558536
super().setUp()
559537

538+
self.backup = sdk_fakes.generate_fake_resource(_backup.Backup)
560539
self.volume_sdk_client.find_backup.return_value = self.backup
561-
# Get the command object to test
540+
541+
self.data = (
542+
self.backup.availability_zone,
543+
self.backup.container,
544+
self.backup.created_at,
545+
self.backup.data_timestamp,
546+
self.backup.description,
547+
self.backup.fail_reason,
548+
self.backup.has_dependent_backups,
549+
self.backup.id,
550+
self.backup.is_incremental,
551+
self.backup.name,
552+
self.backup.object_count,
553+
self.backup.size,
554+
self.backup.snapshot_id,
555+
self.backup.status,
556+
self.backup.updated_at,
557+
self.backup.volume_id,
558+
)
559+
562560
self.cmd = volume_backup.ShowVolumeBackup(self.app, None)
563561

564562
def test_backup_show(self):

0 commit comments

Comments
 (0)