diff --git a/novaclient/tests/fixture_data/quotas.py b/novaclient/tests/fixture_data/quotas.py new file mode 100644 index 000000000..70db079dd --- /dev/null +++ b/novaclient/tests/fixture_data/quotas.py @@ -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') diff --git a/novaclient/tests/v1_1/test_quotas.py b/novaclient/tests/v1_1/test_quotas.py index 06d7461d3..8ff0d5967 100644 --- a/novaclient/tests/v1_1/test_quotas.py +++ b/novaclient/tests/v1_1/test_quotas.py @@ -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) diff --git a/novaclient/tests/v3/test_quotas.py b/novaclient/tests/v3/test_quotas.py index 1e4eef19b..53ca3258e 100644 --- a/novaclient/tests/v3/test_quotas.py +++ b/novaclient/tests/v3/test_quotas.py @@ -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)