def setUp(self): self.ctxt = FakeContext() self.dbapi = mock.Mock() self.quota_driver = mock.Mock() self.engine = quota.QuotaEngine(self.dbapi, self.quota_driver) self.r1 = quota.BaseResource('r1') self.r2 = quota.BaseResource('r2') self.engine.register_resources([self.r1, self.r2]) super(QuotaEngineTestCase, self).setUp()
def setUp(self): self.stubs = self.useFixture(moxstubout.MoxStubout()).stubs self.CONF = self.useFixture(config.Config()).conf self.sample_resources = { 'r1': quota.BaseResource('r1'), 'r2': quota.BaseResource('r2') } dbapi = mock.Mock() dbapi.quota_usage_get_all_by_project_and_user = mock.Mock( return_value={ 'project_id': 'p1', 'user_id': 'u1', 'r1': { 'reserved': 1, 'in_use': 2 }, 'r2': { 'reserved': 2, 'in_use': 3 } }) dbapi.quota_get_all_by_project_and_user = mock.Mock(return_value={ 'project_id': 'p1', 'user_id': 'u1', 'r1': 5, 'r2': 6 }) dbapi.quota_get = mock.Mock(return_value='quota_get') dbapi.quota_reserve = mock.Mock(return_value='quota_reserve') dbapi.quota_class_get = mock.Mock(return_value='quota_class_get') dbapi.quota_class_reserve = mock.Mock( return_value='quota_class_reserve') dbapi.quota_class_get_default = mock.Mock(return_value={ 'r1': 1, 'r2': 2 }) dbapi.quota_class_get_all_by_name = mock.Mock(return_value={'r1': 9}) dbapi.quota_get_all_by_project = mock.Mock( return_value=dict([('r%d' % i, i) for i in range(3)])) dbapi.quota_get_all = mock.Mock(return_value=[{ 'resource': 'r1', 'hard_limit': 3 }, { 'resource': 'r2', 'hard_limit': 4 }]) dbapi.quota_usage_get_all_by_project = mock.Mock( return_value=dict([('r%d' % i, { 'in_use': i, 'reserved': i + 1 }) for i in range(3)])) self.dbapi = dbapi self.driver = quota.DbQuotaDriver(dbapi) self.ctxt = FakeContext() return super(DbQuotaDriverTestCase, self).setUp()
def test_quota_quota_class_not_found(self): self.dbapi.quota_get = mock.Mock( side_effect=quota.ProjectQuotaNotFound(project_id='p1')) self.dbapi.quota_class_get = mock.Mock( side_effect=quota.QuotaClassNotFound(class_name='ClassName')) resource = quota.BaseResource('r1') self.assertEqual(1, resource.quota(self.driver, self.ctxt))
def test_get_project_quotas_omit_default_quota_class(self): self.sample_resources['r3'] = quota.BaseResource('r3') quotas = self.driver.get_project_quotas(self.ctxt, self.sample_resources, 'p1', defaults=False) expected = { 'r1': { 'limit': 1, 'in_use': 1, 'reserved': 2 }, 'r2': { 'limit': 2, 'in_use': 2, 'reserved': 3 } } self.assertEqual(quotas, expected)
def test_quota_project_quota_not_found(self): self.dbapi.quota_get = mock.Mock( side_effect=quota.ProjectQuotaNotFound()) resource = quota.BaseResource('r1') self.assertEqual('quota_class_get', resource.quota(self.driver, self.ctxt))
def test_quota_no_project_id(self): self.ctxt.project_id = None resource = quota.BaseResource('r1') self.assertEqual('quota_class_get', resource.quota(self.driver, self.ctxt))
def test_quota(self): resource = quota.BaseResource('r1') self.assertEqual('quota_get', resource.quota(self.driver, self.ctxt))
def test_limit_check(self): self.assertIsNone( self.driver.limit_check(self.ctxt, {'r1': quota.BaseResource('r1')}, {'r1': 1}))
def test_limit_check_over_quota(self): self.assertRaises(quota.OverQuota, self.driver.limit_check, self.ctxt, {'r1': quota.BaseResource('r1')}, {'r1': 2})