72 lines
2.5 KiB
Python
72 lines
2.5 KiB
Python
from qe_coverage.opencafe_decorators import tags
|
|
|
|
from cafe.drivers.unittest.datasets import DatasetList
|
|
from cafe.drivers.unittest.decorators import \
|
|
data_driven_test, DataDrivenFixture
|
|
from cloudcafe.blockstorage.datasets import BlockstorageDatasets
|
|
from cloudroast.blockstorage.volumes_api.fixtures import \
|
|
VolumesTestFixture
|
|
|
|
|
|
class QuotaTestDatasets(BlockstorageDatasets):
|
|
|
|
@classmethod
|
|
def valid_quota_names(cls):
|
|
|
|
"""Creates a list of expected resource names"""
|
|
|
|
quota_test_dataset = DatasetList()
|
|
|
|
resources = ["snapshots", "volumes", "gigabytes"]
|
|
vol_types = cls._get_volume_type_names()
|
|
|
|
for resource in resources:
|
|
quota_test_dataset.append_new_dataset(
|
|
resource, {"quota_name": resource})
|
|
|
|
for vol_name in vol_types:
|
|
resource_key = "{resource}_{vol_name}".format(
|
|
resource=resource, vol_name=vol_name)
|
|
quota_test_dataset.append_new_dataset(
|
|
resource_key, {"quota_name": resource_key})
|
|
|
|
return quota_test_dataset
|
|
|
|
|
|
@DataDrivenFixture
|
|
class QuotaTest(VolumesTestFixture):
|
|
|
|
@tags('smoke', 'negative')
|
|
def test_negative_show_default_quota_with_garbage_tenant_id(self):
|
|
"""Negative test requesting default quotas with an invalid tenant id"""
|
|
|
|
resp = self.volumes.client.get_default_quotas(
|
|
"ivne8vnow4oingsgsdaaaaa__garbage__")
|
|
assert not resp.ok, (
|
|
"test_show_default_quota_with_garbage_tenant_id"
|
|
" passed while using a garbage target tenant_id")
|
|
|
|
@tags('smoke', 'positive')
|
|
def test_show_default_quota(self):
|
|
"""Test requesting default quotas with a valid id"""
|
|
|
|
resp = self.volumes.client.get_default_quotas(
|
|
self.volumes.auth.tenant_id)
|
|
self.assertExactResponseStatus(
|
|
resp, 200, msg="Unexpected response status")
|
|
|
|
@tags('smoke', 'positive')
|
|
@data_driven_test(QuotaTestDatasets.valid_quota_names())
|
|
def ddtest_verify_quota(self, quota_name):
|
|
"""Test to verify resource key names obtained from response with
|
|
valid_quota_names list
|
|
"""
|
|
|
|
resp = self.volumes.client.get_default_quotas(
|
|
self.volumes.auth.tenant_id)
|
|
self.assertResponseDeserializedAndOk(resp)
|
|
keylist = vars(resp.entity).keys()
|
|
msg = "Expected quota key {0} not found in default quota list.".format(
|
|
quota_name)
|
|
self.assertIn(quota_name, keylist, msg=msg)
|