Skip to content

Commit f7c78b8

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Add functional test for volume snapshot"
2 parents f52ee1d + 6366763 commit f7c78b8

1 file changed

Lines changed: 46 additions & 132 deletions

File tree

openstackclient/tests/functional/volume/v3/test_volume_snapshot.py

Lines changed: 46 additions & 132 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class VolumeSnapshotTests(common.BaseVolumeTests):
2323
@classmethod
2424
def setUpClass(cls):
2525
super().setUpClass()
26-
# create a volume for all tests to create snapshot
26+
# create a test volume used by all snapshot tests
2727
cmd_output = cls.openstack(
2828
'volume create ' + '--size 1 ' + cls.VOLLY,
2929
parse_output=True,
@@ -40,159 +40,68 @@ def tearDownClass(cls):
4040
finally:
4141
super().tearDownClass()
4242

43-
def test_volume_snapshot_delete(self):
44-
"""Test create, delete multiple"""
45-
name1 = uuid.uuid4().hex
46-
cmd_output = self.openstack(
47-
'volume snapshot create ' + name1 + ' --volume ' + self.VOLLY,
48-
parse_output=True,
49-
)
50-
self.assertEqual(
51-
name1,
52-
cmd_output["name"],
53-
)
43+
def test_volume_snapshot(self):
44+
# create volume snapshot
45+
name = uuid.uuid4().hex
5446

55-
name2 = uuid.uuid4().hex
5647
cmd_output = self.openstack(
57-
'volume snapshot create ' + name2 + ' --volume ' + self.VOLLY,
48+
'volume snapshot create '
49+
+ '--volume '
50+
+ self.VOLLY
51+
+ ' --description aaaa '
52+
+ '--property Alpha=a '
53+
+ name,
5854
parse_output=True,
5955
)
60-
self.assertEqual(
61-
name2,
62-
cmd_output["name"],
63-
)
64-
65-
self.wait_for_status('volume snapshot', name1, 'available')
66-
self.wait_for_status('volume snapshot', name2, 'available')
56+
snap_id = cmd_output['id']
6757

68-
del_output = self.openstack(
69-
'volume snapshot delete ' + name1 + ' ' + name2
58+
self.addCleanup(self.wait_for_delete, 'volume snapshot', snap_id)
59+
# delete volume snapshot
60+
self.addCleanup(
61+
self.openstack,
62+
'volume snapshot delete ' + snap_id,
7063
)
71-
self.assertOutput('', del_output)
72-
self.wait_for_delete('volume snapshot', name1)
73-
self.wait_for_delete('volume snapshot', name2)
64+
self.wait_for_status('volume snapshot', snap_id, 'available')
7465

75-
def test_volume_snapshot_list(self):
76-
"""Test create, list filter"""
77-
name1 = uuid.uuid4().hex
78-
cmd_output = self.openstack(
79-
'volume snapshot create ' + name1 + ' --volume ' + self.VOLLY,
66+
# show volume snapshot
67+
snapshot_info = self.openstack(
68+
'volume snapshot show ' + name,
8069
parse_output=True,
8170
)
82-
self.addCleanup(self.wait_for_delete, 'volume snapshot', name1)
83-
self.addCleanup(self.openstack, 'volume snapshot delete ' + name1)
84-
self.assertEqual(
85-
name1,
86-
cmd_output["name"],
87-
)
88-
self.assertEqual(
89-
self.VOLUME_ID,
90-
cmd_output["volume_id"],
91-
)
92-
self.assertEqual(
93-
1,
94-
cmd_output["size"],
95-
)
96-
self.wait_for_status('volume snapshot', name1, 'available')
9771

98-
name2 = uuid.uuid4().hex
99-
cmd_output = self.openstack(
100-
'volume snapshot create ' + name2 + ' --volume ' + self.VOLLY,
101-
parse_output=True,
102-
)
103-
self.addCleanup(self.wait_for_delete, 'volume snapshot', name2)
104-
self.addCleanup(self.openstack, 'volume snapshot delete ' + name2)
105-
self.assertEqual(
106-
name2,
107-
cmd_output["name"],
108-
)
109-
self.assertEqual(
110-
self.VOLUME_ID,
111-
cmd_output["volume_id"],
112-
)
113-
self.assertEqual(
114-
1,
115-
cmd_output["size"],
116-
)
117-
self.wait_for_status('volume snapshot', name2, 'available')
118-
raw_output = self.openstack(
119-
'volume snapshot set ' + '--state error ' + name2
120-
)
121-
self.assertOutput('', raw_output)
72+
self.assertEqual(name, snapshot_info['name'])
73+
self.assertEqual('aaaa', snapshot_info["description"])
74+
self.assertEqual({'Alpha': 'a'}, snapshot_info["properties"])
12275

123-
# Test list --long, --status
76+
# list volume snapshot --name
12477
cmd_output = self.openstack(
125-
'volume snapshot list ' + '--long ' + '--status error',
78+
'volume snapshot list --name ' + name,
12679
parse_output=True,
12780
)
128-
names = [x["Name"] for x in cmd_output]
129-
self.assertNotIn(name1, names)
130-
self.assertIn(name2, names)
81+
names = [x['Name'] for x in cmd_output]
82+
self.assertIn(name, names)
13183

132-
# Test list --volume
84+
# list volume snapshot --volume
13385
cmd_output = self.openstack(
13486
'volume snapshot list ' + '--volume ' + self.VOLLY,
13587
parse_output=True,
13688
)
13789
names = [x["Name"] for x in cmd_output]
138-
self.assertIn(name1, names)
139-
self.assertIn(name2, names)
90+
self.assertIn(name, names)
14091

141-
# Test list --name
142-
cmd_output = self.openstack(
143-
'volume snapshot list ' + '--name ' + name1,
144-
parse_output=True,
145-
)
146-
names = [x["Name"] for x in cmd_output]
147-
self.assertIn(name1, names)
148-
self.assertNotIn(name2, names)
149-
150-
def test_volume_snapshot_set(self):
151-
"""Test create, set, unset, show, delete volume snapshot"""
152-
name = uuid.uuid4().hex
92+
# set volume snapshot
15393
new_name = name + "_"
154-
cmd_output = self.openstack(
155-
'volume snapshot create '
156-
+ '--volume '
157-
+ self.VOLLY
158-
+ ' --description aaaa '
159-
+ '--property Alpha=a '
160-
+ name,
161-
parse_output=True,
162-
)
163-
self.addCleanup(self.wait_for_delete, 'volume snapshot', new_name)
164-
self.addCleanup(self.openstack, 'volume snapshot delete ' + new_name)
165-
self.assertEqual(
166-
name,
167-
cmd_output["name"],
168-
)
169-
self.assertEqual(
170-
1,
171-
cmd_output["size"],
172-
)
173-
self.assertEqual(
174-
'aaaa',
175-
cmd_output["description"],
176-
)
177-
self.assertEqual(
178-
{'Alpha': 'a'},
179-
cmd_output["properties"],
180-
)
181-
self.wait_for_status('volume snapshot', name, 'available')
182-
183-
# Test volume snapshot set
18494
raw_output = self.openstack(
18595
'volume snapshot set '
18696
+ '--name '
18797
+ new_name
18898
+ ' --description bbbb '
18999
+ '--property Alpha=c '
190100
+ '--property Beta=b '
191-
+ name,
101+
+ snap_id,
192102
)
193103
self.assertOutput('', raw_output)
194104

195-
# Show snapshot set result
196105
cmd_output = self.openstack(
197106
'volume snapshot show ' + new_name,
198107
parse_output=True,
@@ -201,10 +110,6 @@ def test_volume_snapshot_set(self):
201110
new_name,
202111
cmd_output["name"],
203112
)
204-
self.assertEqual(
205-
1,
206-
cmd_output["size"],
207-
)
208113
self.assertEqual(
209114
'bbbb',
210115
cmd_output["description"],
@@ -214,7 +119,7 @@ def test_volume_snapshot_set(self):
214119
cmd_output["properties"],
215120
)
216121

217-
# Test volume snapshot unset
122+
# unset volume snapshot
218123
raw_output = self.openstack(
219124
'volume snapshot unset ' + '--property Alpha ' + new_name,
220125
)
@@ -229,16 +134,25 @@ def test_volume_snapshot_set(self):
229134
cmd_output["properties"],
230135
)
231136

232-
# Test volume snapshot set --no-property
137+
# set volume snapshot --no-property, --state error
233138
raw_output = self.openstack(
234-
'volume snapshot set ' + '--no-property ' + new_name,
139+
'volume snapshot set '
140+
+ '--no-property '
141+
+ '--state error '
142+
+ new_name,
235143
)
236144
self.assertOutput('', raw_output)
145+
237146
cmd_output = self.openstack(
238147
'volume snapshot show ' + new_name,
239148
parse_output=True,
240149
)
241-
self.assertNotIn(
242-
{'Beta': 'b'},
243-
cmd_output["properties"],
150+
self.assertEqual({}, cmd_output["properties"])
151+
152+
# list volume snapshot --long --status
153+
cmd_output = self.openstack(
154+
'volume snapshot list ' + '--long ' + '--status error',
155+
parse_output=True,
244156
)
157+
names = [x["Name"] for x in cmd_output]
158+
self.assertIn(new_name, names)

0 commit comments

Comments
 (0)