add volume list tests for cinder v2
cinder v2 allows parameters limit, sort_key and sort_dir in query
statement. Add tests for the query parameters.
Change-Id: I3b713f3d830879b4e8e675910366c21953e342db
Blueprint: cinder-v2-api-tests
diff --git a/tempest/api/volume/v2/test_volumes_list.py b/tempest/api/volume/v2/test_volumes_list.py
index fff40ed..4d2573b 100644
--- a/tempest/api/volume/v2/test_volumes_list.py
+++ b/tempest/api/volume/v2/test_volumes_list.py
@@ -187,7 +187,7 @@
self._list_by_param_value_and_assert(params)
@test.attr(type='gate')
- def test_volume_list_with_detail_param_metadata(self):
+ def test_volume_list_with_details_param_metadata(self):
# Test to list volumes details when metadata param is given
params = {'metadata': self.metadata}
self._list_by_param_value_and_assert(params, with_detail=True)
@@ -201,7 +201,7 @@
self._list_by_param_value_and_assert(params, expected_list=[volume])
@test.attr(type='gate')
- def test_volume_list_with_detail_param_display_name_and_status(self):
+ def test_volume_list_with_details_param_display_name_and_status(self):
# Test to list volume when name and status param is given
volume = self.volume_list[data_utils.rand_int_id(0, 2)]
params = {'name': volume['name'],
@@ -209,6 +209,37 @@
self._list_by_param_value_and_assert(params, expected_list=[volume],
with_detail=True)
+ @test.attr(type='gate')
+ def test_volume_list_details_with_multiple_params(self):
+ # List volumes detail using combined condition
+ def _list_details_with_multiple_params(limit=2,
+ status='available',
+ sort_dir='asc',
+ sort_key='created_at'):
+ params = {'limit': limit,
+ 'status': status,
+ 'sort_dir': sort_dir,
+ 'sort_key': sort_key
+ }
+ resp, fetched_volume = self.client.list_volumes_with_detail(params)
+ self.assertEqual(200, resp.status)
+ self.assertEqual(limit, len(fetched_volume),
+ "The count of volumes is %s, expected:%s " %
+ (len(fetched_volume), limit))
+ self.assertEqual(status, fetched_volume[0]['status'])
+ self.assertEqual(status, fetched_volume[1]['status'])
+ val0 = fetched_volume[0][sort_key]
+ val1 = fetched_volume[1][sort_key]
+ if sort_dir == 'asc':
+ self.assertTrue(val0 < val1,
+ "%s < %s" % (val0, val1))
+ elif sort_dir == 'desc':
+ self.assertTrue(val0 > val1,
+ "%s > %s" % (val0, val1))
+
+ _list_details_with_multiple_params()
+ _list_details_with_multiple_params(sort_dir='desc')
+
class VolumesV2ListTestXML(VolumesV2ListTestJSON):
_interface = 'xml'