def setUp(self): super(QuotaControllerTest, self).setUp() context = mock() context.is_admin = True req = mock() req.environ = mock() when(req.environ).get(any()).thenReturn(context) self.req = req self.controller = QuotaController()
class QuotaControllerTest(testtools.TestCase): def setUp(self): super(QuotaControllerTest, self).setUp() context = mock() context.is_admin = True req = mock() req.environ = mock() when(req.environ).get(any()).thenReturn(context) self.req = req self.controller = QuotaController() def tearDown(self): super(QuotaControllerTest, self).tearDown() unstub() def test_update_unknown_resource(self): body = {'quotas': {'unknown_resource': 5}} self.assertRaises(exception.QuotaResourceUnknown, self.controller.update, self.req, body, FAKE_TENANT1, FAKE_TENANT2) def test_update_resource_no_value(self): quota = mock(Quota) when(DatabaseModelBase).find_by(tenant_id=FAKE_TENANT2, resource='instances').thenReturn(quota) body = {'quotas': {'instances': None}} result = self.controller.update(self.req, body, FAKE_TENANT1, FAKE_TENANT2) verify(quota, never).save() self.assertEquals(200, result.status) def test_update_resource_(self): instance_quota = mock(Quota) when(DatabaseModelBase).find_by( tenant_id=FAKE_TENANT2, resource='instances').thenReturn(instance_quota) volume_quota = mock(Quota) when(DatabaseModelBase).find_by( tenant_id=FAKE_TENANT2, resource='volumes').thenReturn(volume_quota) body = {'quotas': {'instances': None, 'volumes': 10}} result = self.controller.update(self.req, body, FAKE_TENANT1, FAKE_TENANT2) verify(instance_quota, never).save() self.assertFalse('instances' in result._data) verify(volume_quota, times=1).save() self.assertEquals(200, result.status) self.assertEquals(10, result._data['quotas']['volumes'])
def get_resources(self): resources = [] serializer = wsgi.ReddwarfResponseSerializer( body_serializers={ 'application/xml': wsgi.ReddwarfXMLDictSerializer() }) instances = extensions.ResourceExtension( '{tenant_id}/mgmt/instances', MgmtInstanceController(), deserializer=wsgi.ReddwarfRequestDeserializer(), serializer=serializer, member_actions={ 'root': 'GET', 'diagnostics': 'GET', 'hwinfo': 'GET', 'action': 'POST' }) resources.append(instances) hosts = extensions.ResourceExtension( '{tenant_id}/mgmt/hosts', HostController(), deserializer=wsgi.RequestDeserializer(), serializer=serializer, member_actions={}) resources.append(hosts) quota = extensions.ResourceExtension( '{tenant_id}/mgmt/quotas', QuotaController(), deserializer=wsgi.RequestDeserializer(), serializer=serializer, member_actions={}) resources.append(quota) storage = extensions.ResourceExtension( '{tenant_id}/mgmt/storage', StorageController(), deserializer=wsgi.RequestDeserializer(), serializer=serializer, member_actions={}) resources.append(storage) host_instances = extensions.ResourceExtension( 'instances', hostservice.HostInstanceController(), parent={ 'member_name': 'host', 'collection_name': '{tenant_id}/mgmt/hosts' }, deserializer=wsgi.RequestDeserializer(), serializer=serializer, collection_actions={'action': 'POST'}) resources.append(host_instances) return resources