103 lines
4.1 KiB
Python
103 lines
4.1 KiB
Python
# Copyright 2012 Nebula, Inc.
|
|
# Copyright 2013 IBM Corp.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from nova.tests import fixtures as nova_fixtures
|
|
from nova.tests.functional.api_sample_tests import api_sample_base
|
|
|
|
|
|
class QuotaSetsSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
|
|
ADMIN_API = True
|
|
sample_dir = "os-quota-sets"
|
|
|
|
def test_show_quotas(self):
|
|
# Get api sample to show quotas.
|
|
response = self._do_get('os-quota-sets/fake_tenant')
|
|
self._verify_response('quotas-show-get-resp', {}, response, 200)
|
|
|
|
def test_show_quotas_defaults(self):
|
|
# Get api sample to show quotas defaults.
|
|
response = self._do_get('os-quota-sets/fake_tenant/defaults')
|
|
self._verify_response('quotas-show-defaults-get-resp',
|
|
{}, response, 200)
|
|
|
|
def test_show_quotas_detail(self):
|
|
# Get api sample to show quotas detail.
|
|
response = self._do_get('os-quota-sets/fake_tenant/detail')
|
|
self._verify_response('quotas-show-detail-get-resp',
|
|
{}, response, 200)
|
|
|
|
def test_update_quotas(self):
|
|
# Get api sample to update quotas.
|
|
response = self._do_put('os-quota-sets/fake_tenant',
|
|
'quotas-update-post-req',
|
|
{})
|
|
self._verify_response('quotas-update-post-resp', {}, response, 200)
|
|
|
|
def test_delete_quotas(self):
|
|
# Get api sample to delete quota.
|
|
response = self._do_delete('os-quota-sets/fake_tenant')
|
|
self.assertEqual(202, response.status_code)
|
|
self.assertEqual('', response.text)
|
|
|
|
def test_update_quotas_force(self):
|
|
# Get api sample to update quotas.
|
|
response = self._do_put('os-quota-sets/fake_tenant',
|
|
'quotas-update-force-post-req',
|
|
{})
|
|
return self._verify_response('quotas-update-force-post-resp', {},
|
|
response, 200)
|
|
|
|
def test_show_quotas_for_user(self):
|
|
# Get api sample to show quotas for user.
|
|
response = self._do_get('os-quota-sets/fake_tenant?user_id=1')
|
|
self._verify_response('user-quotas-show-get-resp', {}, response, 200)
|
|
|
|
def test_delete_quotas_for_user(self):
|
|
response = self._do_delete('os-quota-sets/fake_tenant?user_id=1')
|
|
self.assertEqual(202, response.status_code)
|
|
self.assertEqual('', response.text)
|
|
|
|
def test_update_quotas_for_user(self):
|
|
# Get api sample to update quotas for user.
|
|
response = self._do_put('os-quota-sets/fake_tenant?user_id=1',
|
|
'user-quotas-update-post-req',
|
|
{})
|
|
return self._verify_response('user-quotas-update-post-resp', {},
|
|
response, 200)
|
|
|
|
|
|
class QuotaSetsSampleJsonTests2_36(QuotaSetsSampleJsonTests):
|
|
microversion = '2.36'
|
|
scenarios = [('v2_36', {'api_major_version': 'v2.1'})]
|
|
|
|
|
|
class QuotaSetsSampleJsonTestsV2_57(QuotaSetsSampleJsonTests):
|
|
"""Tests that injected_file* quotas are not in request or response values.
|
|
starting with microversion 2.57.
|
|
"""
|
|
microversion = '2.57'
|
|
scenarios = [('v2_57', {'api_major_version': 'v2.1'})]
|
|
|
|
|
|
class NoopQuotaSetsSampleJsonTests(QuotaSetsSampleJsonTests):
|
|
sample_dir = "os-quota-sets-noop"
|
|
|
|
def setUp(self):
|
|
super(NoopQuotaSetsSampleJsonTests, self).setUp()
|
|
# NOTE(melwitt): We can't simply set self.flags to the NoopQuotaDriver
|
|
# here to use the driver because the QuotaEngine is global. See the
|
|
# fixture for details.
|
|
self.useFixture(nova_fixtures.NoopQuotaDriverFixture())
|