def test_create_quota_class(self, mock_write, mock_read): mock_read.side_effect = etcd.EtcdKeyNotFound utils.create_test_quota_class(context=self.context) mock_read.side_effect = lambda *args: None self.assertRaises(exception.ResourceExists, utils.create_test_quota_class, context=self.context)
def test_get_quota_class_by_default(self, mock_db_inst, mock_write, mock_read): mock_db_inst.return_value = etcdapi.get_backend() mock_read.side_effect = etcd.EtcdKeyNotFound quota_class_1 = utils.create_test_quota_class( context=self.context, resource='fake_resource_1', hard_limit=10) quota_class_2 = utils.create_test_quota_class( context=self.context, resource='fake_resource_2', hard_limit=10) quota_classes = [quota_class_1, quota_class_2] mock_read.side_effect = lambda *args: utils.FakeEtcdMultipleResult( [quota_class_1.as_dict(), quota_class_2.as_dict()]) res = dbapi.quota_class_get_default(self.context) self.assertEqual([qc.resource for qc in res], [qc.resource for qc in quota_classes]) self.assertEqual([q.hard_limit for q in res], [q.hard_limit for q in quota_classes])
def test_create_quota_class(self): quota_class = utils.create_test_quota_class(context=self.ctx, class_name=self.class_name, resource=self.resource, limit=self.limit) self.assertEqual(quota_class.class_name, self.class_name) self.assertEqual(quota_class.resource, self.resource) self.assertEqual(quota_class.hard_limit, self.limit)
def test_get_quota_class(self, mock_db_inst, mock_write, mock_read): mock_db_inst.return_value = etcdapi.get_backend() mock_read.side_effect = etcd.EtcdKeyNotFound quota_class = utils.create_test_quota_class(context=self.context) mock_read.side_effect = lambda *args: utils.FakeEtcdResult( quota_class.as_dict()) res = dbapi.quota_class_get(self.context, quota_class.class_name, quota_class.resource) self.assertEqual(quota_class.hard_limit, res.hard_limit)
def test_get_all_by_name_quota_class(self): quota_class_resource_1 = utils.create_test_quota_class( context=self.ctx, class_name='class_1', resource='resource_1', limit=10) quota_class_resource_2 = utils.create_test_quota_class( context=self.ctx, class_name='class_1', resource='resource_2', limit=20) res = dbapi.quota_class_get_all_by_name(self.ctx, 'class_1') self.assertEqual(res['class_name'], 'class_1') self.assertEqual(res[quota_class_resource_1.resource], quota_class_resource_1.hard_limit) self.assertEqual(res[quota_class_resource_2.resource], quota_class_resource_2.hard_limit)
def test_get_default_quota_class(self): default_quota_class_resource_1 = utils.create_test_quota_class( context=self.ctx, class_name=consts.DEFAULT_QUOTA_CLASS_NAME, resource='resource_1', limit=10) default_quota_class_resource_2 = utils.create_test_quota_class( context=self.ctx, class_name=consts.DEFAULT_QUOTA_CLASS_NAME, resource='resource_2', limit=20) res = dbapi.quota_class_get_default(self.ctx) self.assertEqual(res['class_name'], consts.DEFAULT_QUOTA_CLASS_NAME) self.assertEqual(res[default_quota_class_resource_1.resource], default_quota_class_resource_1.hard_limit) self.assertEqual(res[default_quota_class_resource_2.resource], default_quota_class_resource_2.hard_limit)
def test_update_quota_class(self): quota_class = utils.create_test_quota_class(context=self.ctx, class_name=self.class_name, resource=self.resource, limit=self.limit) dbapi.quota_class_update( self.ctx, quota_class.class_name, quota_class.resource, 200) updated_quota_class = dbapi.quota_class_get( self.ctx, quota_class.class_name, quota_class.resource) self.assertEqual(updated_quota_class.hard_limit, 200)
def test_update_quota_class(self, mock_db_inst, mock_update, mock_write, mock_read): mock_db_inst.return_value = etcdapi.get_backend() mock_read.side_effect = etcd.EtcdKeyNotFound quota_class = utils.create_test_quota_class(context=self.context) new_hard_limit = 60 mock_read.side_effect = lambda *args: utils.FakeEtcdResult( quota_class.as_dict()) dbapi.quota_class_update(self.context, quota_class.class_name, quota_class.resource, new_hard_limit) self.assertEqual(new_hard_limit, json.loads(mock_update.call_args_list[0][0][0]. value.decode('utf-8'))['hard_limit'])