Merge "Convert Quota tests to httpretty"

This commit is contained in:
Jenkins 2014-07-07 01:02:24 +00:00 committed by Gerrit Code Review
commit 7d9d15ee55
3 changed files with 105 additions and 22 deletions
novaclient/tests

@ -0,0 +1,87 @@
# 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.
import httpretty
from novaclient.openstack.common import jsonutils
from novaclient.tests.fixture_data import base
class V1(base.Fixture):
base_url = 'os-quota-sets'
def setUp(self):
super(V1, self).setUp()
uuid = '97f4c221-bff4-4578-b030-0df4ef119353'
uuid2 = '97f4c221bff44578b0300df4ef119353'
test_json = jsonutils.dumps({'quota_set': self.test_quota('test')})
for u in ('test', 'tenant-id', 'tenant-id/defaults',
'%s/defaults' % uuid2):
httpretty.register_uri(httpretty.GET, self.url(u),
body=test_json,
content_type='application/json')
quota_json = jsonutils.dumps({'quota_set': self.test_quota(uuid)})
httpretty.register_uri(httpretty.PUT, self.url(uuid),
body=quota_json,
content_type='application/json')
httpretty.register_uri(httpretty.GET, self.url(uuid),
body=quota_json,
content_type='application/json')
quota_json2 = jsonutils.dumps({'quota_set': self.test_quota(uuid2)})
httpretty.register_uri(httpretty.PUT, self.url(uuid2),
body=quota_json2,
content_type='application/json')
httpretty.register_uri(httpretty.GET, self.url(uuid2),
body=quota_json2,
content_type='application/json')
for u in ('test', uuid2):
httpretty.register_uri(httpretty.DELETE, self.url(u), status=202)
def test_quota(self, tenant_id='test'):
return {
'tenant_id': tenant_id,
'metadata_items': [],
'injected_file_content_bytes': 1,
'injected_file_path_bytes': 1,
'ram': 1,
'floating_ips': 1,
'instances': 1,
'injected_files': 1,
'cores': 1,
'keypairs': 1,
'security_groups': 1,
'security_group_rules': 1
}
class V3(V1):
def setUp(self):
super(V3, self).setUp()
get_detail = {
'quota_set': {
'cores': {'reserved': 0, 'in_use': 0, 'limit': 10},
'instances': {'reserved': 0, 'in_use': 4, 'limit': 50},
'ram': {'reserved': 0, 'in_use': 1024, 'limit': 51200}
}
}
httpretty.register_uri(httpretty.GET, self.url('test', 'detail'),
body=jsonutils.dumps(get_detail),
content_type='application/json')

@ -13,39 +13,37 @@
# License for the specific language governing permissions and limitations
# under the License.
from novaclient.tests.fixture_data import client
from novaclient.tests.fixture_data import quotas as data
from novaclient.tests import utils
from novaclient.tests.v1_1 import fakes
class QuotaSetsTest(utils.TestCase):
def setUp(self):
super(QuotaSetsTest, self).setUp()
self.cs = self._get_fake_client()
class QuotaSetsTest(utils.FixturedTestCase):
def _get_fake_client(self):
return fakes.FakeClient()
client_fixture_class = client.V1
data_fixture_class = data.V1
def test_tenant_quotas_get(self):
tenant_id = 'test'
self.cs.quotas.get(tenant_id)
self.cs.assert_called('GET', '/os-quota-sets/%s' % tenant_id)
self.assert_called('GET', '/os-quota-sets/%s' % tenant_id)
def test_user_quotas_get(self):
tenant_id = 'test'
user_id = 'fake_user'
self.cs.quotas.get(tenant_id, user_id=user_id)
url = '/os-quota-sets/%s?user_id=%s' % (tenant_id, user_id)
self.cs.assert_called('GET', url)
self.assert_called('GET', url)
def test_tenant_quotas_defaults(self):
tenant_id = '97f4c221bff44578b0300df4ef119353'
self.cs.quotas.defaults(tenant_id)
self.cs.assert_called('GET', '/os-quota-sets/%s/defaults' % tenant_id)
self.assert_called('GET', '/os-quota-sets/%s/defaults' % tenant_id)
def test_force_update_quota(self):
q = self.cs.quotas.get('97f4c221bff44578b0300df4ef119353')
q.update(cores=2, force=True)
self.cs.assert_called(
self.assert_called(
'PUT', '/os-quota-sets/97f4c221bff44578b0300df4ef119353',
{'quota_set': {'force': True,
'cores': 2,
@ -54,11 +52,11 @@ class QuotaSetsTest(utils.TestCase):
def test_quotas_delete(self):
tenant_id = 'test'
self.cs.quotas.delete(tenant_id)
self.cs.assert_called('DELETE', '/os-quota-sets/%s' % tenant_id)
self.assert_called('DELETE', '/os-quota-sets/%s' % tenant_id)
def test_user_quotas_delete(self):
tenant_id = 'test'
user_id = 'fake_user'
self.cs.quotas.delete(tenant_id, user_id=user_id)
url = '/os-quota-sets/%s?user_id=%s' % (tenant_id, user_id)
self.cs.assert_called('DELETE', url)
self.assert_called('DELETE', url)

@ -12,22 +12,20 @@
# License for the specific language governing permissions and limitations
# under the License.
from novaclient.tests.fixture_data import client
from novaclient.tests.fixture_data import quotas as data
from novaclient.tests.v1_1 import test_quotas
from novaclient.tests.v3 import fakes
class QuotaSetsTest(test_quotas.QuotaSetsTest):
def setUp(self):
super(QuotaSetsTest, self).setUp()
self.cs = self._get_fake_client()
def _get_fake_client(self):
return fakes.FakeClient()
client_fixture_class = client.V3
data_fixture_class = data.V3
def test_force_update_quota(self):
q = self.cs.quotas.get('97f4c221bff44578b0300df4ef119353')
q.update(cores=2, force=True)
self.cs.assert_called(
self.assert_called(
'PUT', '/os-quota-sets/97f4c221bff44578b0300df4ef119353',
{'quota_set': {'force': True,
'cores': 2}})
@ -35,11 +33,11 @@ class QuotaSetsTest(test_quotas.QuotaSetsTest):
def test_tenant_quotas_get_detail(self):
tenant_id = 'test'
self.cs.quotas.get(tenant_id, detail=True)
self.cs.assert_called('GET', '/os-quota-sets/%s/detail' % tenant_id)
self.assert_called('GET', '/os-quota-sets/%s/detail' % tenant_id)
def test_user_quotas_get_detail(self):
tenant_id = 'test'
user_id = 'fake_user'
self.cs.quotas.get(tenant_id, user_id=user_id, detail=True)
url = '/os-quota-sets/%s/detail?user_id=%s' % (tenant_id, user_id)
self.cs.assert_called('GET', url)
self.assert_called('GET', url)