Merge "Cinder REST API test: Make list_extensions test work properly"

This commit is contained in:
Zuul 2018-04-25 15:12:54 +00:00 committed by Gerrit Code Review
commit 2fd51a70c6
3 changed files with 35 additions and 17 deletions
openstack_dashboard
api/rest
test
test_data
unit/api/rest

@ -289,7 +289,6 @@ class Extensions(generic.View):
'description': e.description,
'links': e.links,
'name': e.name,
'namespace': e.namespace,
'updated': e.updated
} for e in result]}

@ -15,6 +15,7 @@
from cinderclient.v2 import availability_zones
from cinderclient.v2 import cgsnapshots
from cinderclient.v2 import consistencygroups
from cinderclient.v2.contrib import list_extensions as cinder_list_extensions
from cinderclient.v2 import pools
from cinderclient.v2 import qos_specs
from cinderclient.v2 import quotas
@ -45,6 +46,7 @@ def data(TEST):
TEST.cinder_qos_specs = utils.TestDataContainer()
TEST.cinder_qos_spec_associations = utils.TestDataContainer()
TEST.cinder_volume_snapshots = utils.TestDataContainer()
TEST.cinder_extensions = utils.TestDataContainer()
TEST.cinder_quotas = utils.TestDataContainer()
TEST.cinder_quota_usages = utils.TestDataContainer()
TEST.cinder_availability_zones = utils.TestDataContainer()
@ -297,6 +299,32 @@ def data(TEST):
TEST.cinder_volume_encryption.add(vol_enc_metadata1)
TEST.cinder_volume_encryption.add(vol_unenc_metadata1)
# v2 extensions
extensions = [
{'alias': 'os-services',
'description': 'Services support.',
'links': '[]',
'name': 'Services',
'updated': '2012-10-28T00:00:00-00:00'},
{'alias': 'os-admin-actions',
'description': 'Enable admin actions.',
'links': '[]',
'name': 'AdminActions',
'updated': '2012-08-25T00:00:00+00:00'},
{'alias': 'os-volume-transfer',
'description': 'Volume transfer management support.',
'links': '[]',
'name': 'VolumeTransfer',
'updated': '2013-05-29T00:00:00+00:00'},
]
extensions = [
cinder_list_extensions.ListExtResource(
cinder_list_extensions.ListExtManager(None), ext)
for ext in extensions
]
TEST.cinder_extensions.add(*extensions)
# Quota Sets
quota_data = dict(volumes='1',
snapshots='1',

@ -12,9 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from django.conf import settings
import mock
from openstack_dashboard import api
from openstack_dashboard.api.base import Quota
from openstack_dashboard.api.cinder import VolTypeExtraSpec
@ -266,23 +263,17 @@ class CinderRestTestCase(test.TestCase):
#
# Extensions
#
# TODO(amotoki): This is actually not tested. Make this work.
# TODO(amotoki): There is no such setting named
# OPENSTACK_CINDER_EXTENSIONS_BLACKLIST.
@test.create_mocks({api.cinder: ['list_extensions']})
@mock.patch.object(settings,
'OPENSTACK_CINDER_EXTENSIONS_BLACKLIST', ['baz'])
def _test_extension_list(self):
def test_extension_list(self):
request = self.mock_rest_request()
self.mock_list_extensions.return_value = [
mock.Mock(**{'to_dict.return_value': {'name': 'foo'}}),
mock.Mock(**{'to_dict.return_value': {'name': 'bar'}}),
mock.Mock(**{'to_dict.return_value': {'name': 'baz'}}),
]
exts = tuple(self.cinder_extensions.list())
self.mock_list_extensions.return_value = exts
response = cinder.Extensions().get(request)
self.assertStatusCode(response, 200)
self.assertEqual(response.content,
'{"items": [{"name": "foo"}, {"name": "bar"}]}')
self.assertEqual([ext.to_dict() for ext in exts],
response.json['items'])
self.mock_list_extensions.assert_called_once_with(request)
@test.create_mocks({api.cinder: ['qos_specs_list']})