Skip to content

Commit 07909a6

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "volume: Migrate 'snapshot show', 'snapshot list' to SDK"
2 parents 803c3c6 + 267a29d commit 07909a6

File tree

4 files changed

+299
-341
lines changed

4 files changed

+299
-341
lines changed

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

Lines changed: 100 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,6 @@
2626
from openstackclient.volume.v2 import volume_snapshot
2727

2828

29-
class TestVolumeSnapshot(volume_fakes.TestVolume):
30-
def setUp(self):
31-
super().setUp()
32-
33-
self.snapshots_mock = self.volume_client.volume_snapshots
34-
self.snapshots_mock.reset_mock()
35-
self.volumes_mock = self.volume_client.volumes
36-
self.volumes_mock.reset_mock()
37-
self.project_mock = self.identity_client.projects
38-
self.project_mock.reset_mock()
39-
40-
4129
class TestVolumeSnapshotCreate(volume_fakes.TestVolume):
4230
columns = (
4331
'created_at',
@@ -291,52 +279,57 @@ def test_delete_multiple_snapshots_with_exception(self):
291279
)
292280

293281

294-
class TestVolumeSnapshotList(TestVolumeSnapshot):
295-
volume = volume_fakes.create_one_volume()
296-
project = project_fakes.FakeProject.create_one_project()
297-
snapshots = volume_fakes.create_snapshots(
298-
attrs={'volume_id': volume.name}, count=3
299-
)
282+
class TestVolumeSnapshotList(volume_fakes.TestVolume):
283+
def setUp(self):
284+
super().setUp()
300285

301-
columns = ["ID", "Name", "Description", "Status", "Size"]
302-
columns_long = columns + ["Created At", "Volume", "Properties"]
303-
304-
data = []
305-
for s in snapshots:
306-
data.append(
307-
(
308-
s.id,
309-
s.name,
310-
s.description,
311-
s.status,
312-
s.size,
286+
self.volume = sdk_fakes.generate_fake_resource(_volume.Volume)
287+
self.snapshots = list(
288+
sdk_fakes.generate_fake_resources(
289+
_snapshot.Snapshot, attrs={'volume_id': self.volume.name}
313290
)
314291
)
315-
data_long = []
316-
for s in snapshots:
317-
data_long.append(
318-
(
319-
s.id,
320-
s.name,
321-
s.description,
322-
s.status,
323-
s.size,
324-
s.created_at,
325-
volume_snapshot.VolumeIdColumn(
326-
s.volume_id, volume_cache={volume.id: volume}
327-
),
328-
format_columns.DictColumn(s.metadata),
329-
)
292+
self.project = project_fakes.FakeProject.create_one_project()
293+
self.volume_sdk_client.volumes.return_value = [self.volume]
294+
self.volume_sdk_client.find_volume.return_value = self.volume
295+
self.volume_sdk_client.snapshots.return_value = self.snapshots
296+
self.project_mock = self.identity_client.projects
297+
self.project_mock.get.return_value = self.project
298+
299+
self.columns = ("ID", "Name", "Description", "Status", "Size")
300+
self.columns_long = self.columns + (
301+
"Created At",
302+
"Volume",
303+
"Properties",
330304
)
331305

332-
def setUp(self):
333-
super().setUp()
306+
self.data = []
307+
self.data_long = []
308+
for s in self.snapshots:
309+
self.data.append(
310+
(
311+
s.id,
312+
s.name,
313+
s.description,
314+
s.status,
315+
s.size,
316+
)
317+
)
318+
self.data_long.append(
319+
(
320+
s.id,
321+
s.name,
322+
s.description,
323+
s.status,
324+
s.size,
325+
s.created_at,
326+
volume_snapshot.VolumeIdColumn(
327+
s.volume_id, volume_cache={self.volume.id: self.volume}
328+
),
329+
format_columns.DictColumn(s.metadata),
330+
)
331+
)
334332

335-
self.volumes_mock.list.return_value = [self.volume]
336-
self.volumes_mock.get.return_value = self.volume
337-
self.project_mock.get.return_value = self.project
338-
self.snapshots_mock.list.return_value = self.snapshots
339-
# Get the command to test
340333
self.cmd = volume_snapshot.ListVolumeSnapshot(self.app, None)
341334

342335
def test_snapshot_list_without_options(self):
@@ -346,16 +339,14 @@ def test_snapshot_list_without_options(self):
346339

347340
columns, data = self.cmd.take_action(parsed_args)
348341

349-
self.snapshots_mock.list.assert_called_once_with(
342+
self.volume_sdk_client.snapshots.assert_called_once_with(
350343
limit=None,
351344
marker=None,
352-
search_opts={
353-
'all_tenants': False,
354-
'name': None,
355-
'status': None,
356-
'project_id': None,
357-
'volume_id': None,
358-
},
345+
all_projects=False,
346+
name=None,
347+
status=None,
348+
project_id=None,
349+
volume_id=None,
359350
)
360351
self.assertEqual(self.columns, columns)
361352
self.assertEqual(self.data, list(data))
@@ -381,16 +372,14 @@ def test_snapshot_list_with_options(self):
381372

382373
columns, data = self.cmd.take_action(parsed_args)
383374

384-
self.snapshots_mock.list.assert_called_once_with(
375+
self.volume_sdk_client.snapshots.assert_called_once_with(
385376
limit=2,
386377
marker=self.snapshots[0].id,
387-
search_opts={
388-
'all_tenants': True,
389-
'project_id': self.project.id,
390-
'name': None,
391-
'status': None,
392-
'volume_id': None,
393-
},
378+
all_projects=True,
379+
project_id=self.project.id,
380+
name=None,
381+
status=None,
382+
volume_id=None,
394383
)
395384
self.assertEqual(self.columns_long, columns)
396385
self.assertEqual(self.data_long, list(data))
@@ -404,16 +393,14 @@ def test_snapshot_list_all_projects(self):
404393

405394
columns, data = self.cmd.take_action(parsed_args)
406395

407-
self.snapshots_mock.list.assert_called_once_with(
396+
self.volume_sdk_client.snapshots.assert_called_once_with(
408397
limit=None,
409398
marker=None,
410-
search_opts={
411-
'all_tenants': True,
412-
'name': None,
413-
'status': None,
414-
'project_id': None,
415-
'volume_id': None,
416-
},
399+
all_projects=True,
400+
name=None,
401+
status=None,
402+
project_id=None,
403+
volume_id=None,
417404
)
418405
self.assertEqual(self.columns, columns)
419406
self.assertEqual(self.data, list(data))
@@ -432,44 +419,40 @@ def test_snapshot_list_name_option(self):
432419

433420
columns, data = self.cmd.take_action(parsed_args)
434421

435-
self.snapshots_mock.list.assert_called_once_with(
422+
self.volume_sdk_client.snapshots.assert_called_once_with(
436423
limit=None,
437424
marker=None,
438-
search_opts={
439-
'all_tenants': False,
440-
'name': self.snapshots[0].name,
441-
'status': None,
442-
'project_id': None,
443-
'volume_id': None,
444-
},
425+
all_projects=False,
426+
name=self.snapshots[0].name,
427+
status=None,
428+
project_id=None,
429+
volume_id=None,
445430
)
446431
self.assertEqual(self.columns, columns)
447432
self.assertEqual(self.data, list(data))
448433

449434
def test_snapshot_list_status_option(self):
450435
arglist = [
451436
'--status',
452-
self.snapshots[0].status,
437+
'available',
453438
]
454439
verifylist = [
455440
('all_projects', False),
456441
('long', False),
457-
('status', self.snapshots[0].status),
442+
('status', 'available'),
458443
]
459444
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
460445

461446
columns, data = self.cmd.take_action(parsed_args)
462447

463-
self.snapshots_mock.list.assert_called_once_with(
448+
self.volume_sdk_client.snapshots.assert_called_once_with(
464449
limit=None,
465450
marker=None,
466-
search_opts={
467-
'all_tenants': False,
468-
'name': None,
469-
'status': self.snapshots[0].status,
470-
'project_id': None,
471-
'volume_id': None,
472-
},
451+
all_projects=False,
452+
name=None,
453+
status='available',
454+
project_id=None,
455+
volume_id=None,
473456
)
474457
self.assertEqual(self.columns, columns)
475458
self.assertEqual(self.data, list(data))
@@ -488,16 +471,14 @@ def test_snapshot_list_volumeid_option(self):
488471

489472
columns, data = self.cmd.take_action(parsed_args)
490473

491-
self.snapshots_mock.list.assert_called_once_with(
474+
self.volume_sdk_client.snapshots.assert_called_once_with(
492475
limit=None,
493476
marker=None,
494-
search_opts={
495-
'all_tenants': False,
496-
'name': None,
497-
'status': None,
498-
'project_id': None,
499-
'volume_id': self.volume.id,
500-
},
477+
all_projects=False,
478+
name=None,
479+
status=None,
480+
project_id=None,
481+
volume_id=self.volume.id,
501482
)
502483
self.assertEqual(self.columns, columns)
503484
self.assertEqual(self.data, list(data))
@@ -695,23 +676,22 @@ def test_volume_set_name_and_state_failed(self):
695676
)
696677

697678

698-
class TestVolumeSnapshotShow(TestVolumeSnapshot):
699-
columns = (
700-
'created_at',
701-
'description',
702-
'id',
703-
'name',
704-
'properties',
705-
'size',
706-
'status',
707-
'volume_id',
708-
)
709-
679+
class TestVolumeSnapshotShow(volume_fakes.TestVolume):
710680
def setUp(self):
711681
super().setUp()
712682

713-
self.snapshot = volume_fakes.create_one_snapshot()
683+
self.snapshot = sdk_fakes.generate_fake_resource(_snapshot.Snapshot)
714684

685+
self.columns = (
686+
'created_at',
687+
'description',
688+
'id',
689+
'name',
690+
'properties',
691+
'size',
692+
'status',
693+
'volume_id',
694+
)
715695
self.data = (
716696
self.snapshot.created_at,
717697
self.snapshot.description,
@@ -723,8 +703,8 @@ def setUp(self):
723703
self.snapshot.volume_id,
724704
)
725705

726-
self.snapshots_mock.get.return_value = self.snapshot
727-
# Get the command object to test
706+
self.volume_sdk_client.find_snapshot.return_value = self.snapshot
707+
728708
self.cmd = volume_snapshot.ShowVolumeSnapshot(self.app, None)
729709

730710
def test_snapshot_show(self):
@@ -733,7 +713,9 @@ def test_snapshot_show(self):
733713
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
734714

735715
columns, data = self.cmd.take_action(parsed_args)
736-
self.snapshots_mock.get.assert_called_with(self.snapshot.id)
716+
self.volume_sdk_client.find_snapshot.assert_called_with(
717+
self.snapshot.id, ignore_missing=False
718+
)
737719

738720
self.assertEqual(self.columns, columns)
739721
self.assertCountEqual(self.data, data)

0 commit comments

Comments
 (0)