Merge "Fix test_volume_list_with_detail_param_marker"
diff --git a/tempest/api/volume/test_volumes_list.py b/tempest/api/volume/test_volumes_list.py
index b6b5ab4..6b9f131 100644
--- a/tempest/api/volume/test_volumes_list.py
+++ b/tempest/api/volume/test_volumes_list.py
@@ -358,27 +358,24 @@
self._test_pagination('volumes', ids=self.volume_id_list, detail=False)
@decorators.idempotent_id('46eff077-100b-427f-914e-3db2abcdb7e2')
- @decorators.skip_because(bug='1572765')
def test_volume_list_with_detail_param_marker(self):
# Choosing a random volume from a list of volumes for 'marker'
# parameter
- random_volume = random.choice(self.volume_id_list)
+ marker = random.choice(self.volume_id_list)
- params = {'marker': random_volume}
+ # Though Cinder volumes are returned sorted by ID by default
+ # this is implicit. Let make this explicit in case Cinder
+ # folks change their minds.
+ params = {'marker': marker, 'sort': 'id:asc'}
# Running volume list using marker parameter
vol_with_marker = self.volumes_client.list_volumes(
detail=True, params=params)['volumes']
- # Fetching the index of the random volume from volume_id_list
- index_marker = self.volume_id_list.index(random_volume)
+ expected_volumes_id = {
+ id for id in self.volume_id_list if id > marker
+ }
- # The expected list with marker parameter
- verify_volume_list = self.volume_id_list[:index_marker]
-
- failed_msg = "Failed to list volume details by marker"
-
- # Validating the expected list is the same like the observed list
- self.assertEqual(verify_volume_list,
- map(lambda x: x['id'],
- vol_with_marker[::-1]), failed_msg)
+ self.assertEqual(
+ expected_volumes_id, {v['id'] for v in vol_with_marker}
+ )