Load resource filter config file in testcase
Add testcase to ensure required filter keys exist in config file. Change-Id: I48a502ca9665c77725c634dd4e878bd48166988d
This commit is contained in:
parent
71a97f3470
commit
58215fe7d3
@ -92,6 +92,7 @@ class TestCase(testtools.TestCase):
|
|||||||
"""Test case base class for all unit tests."""
|
"""Test case base class for all unit tests."""
|
||||||
|
|
||||||
POLICY_PATH = 'cinder/tests/unit/policy.json'
|
POLICY_PATH = 'cinder/tests/unit/policy.json'
|
||||||
|
RESOURCE_FILTER_PATH = 'etc/cinder/resource_filters.json'
|
||||||
MOCK_WORKER = True
|
MOCK_WORKER = True
|
||||||
MOCK_TOOZ = True
|
MOCK_TOOZ = True
|
||||||
|
|
||||||
@ -232,7 +233,15 @@ class TestCase(testtools.TestCase):
|
|||||||
),
|
),
|
||||||
self.POLICY_PATH),
|
self.POLICY_PATH),
|
||||||
group='oslo_policy')
|
group='oslo_policy')
|
||||||
|
self.override_config('resource_query_filters_file',
|
||||||
|
os.path.join(
|
||||||
|
os.path.abspath(
|
||||||
|
os.path.join(
|
||||||
|
os.path.dirname(__file__),
|
||||||
|
'..',
|
||||||
|
)
|
||||||
|
),
|
||||||
|
self.RESOURCE_FILTER_PATH))
|
||||||
self._disable_osprofiler()
|
self._disable_osprofiler()
|
||||||
self._disallow_invalid_uuids()
|
self._disallow_invalid_uuids()
|
||||||
|
|
||||||
|
@ -372,7 +372,7 @@ class GeneralFiltersTest(test.TestCase):
|
|||||||
'expected': {'volume': ['key1', 'key2']}})
|
'expected': {'volume': ['key1', 'key2']}})
|
||||||
@ddt.unpack
|
@ddt.unpack
|
||||||
def test_get_enabled_resource_filters(self, filters, resource, expected):
|
def test_get_enabled_resource_filters(self, filters, resource, expected):
|
||||||
common._FILTERS_COLLECTION = filters
|
with mock.patch('cinder.api.common._FILTERS_COLLECTION', filters):
|
||||||
result = common.get_enabled_resource_filters(resource)
|
result = common.get_enabled_resource_filters(resource)
|
||||||
self.assertEqual(expected, result)
|
self.assertEqual(expected, result)
|
||||||
|
|
||||||
@ -459,6 +459,28 @@ class GeneralFiltersTest(test.TestCase):
|
|||||||
common.reject_invalid_filters, fake_context,
|
common.reject_invalid_filters, fake_context,
|
||||||
filters, 'fake_resource')
|
filters, 'fake_resource')
|
||||||
|
|
||||||
|
@ddt.data({'resource': 'volume',
|
||||||
|
'expected': ["name", "status", "metadata",
|
||||||
|
"bootable", "migration_status",
|
||||||
|
"availability_zone", "group_id"]},
|
||||||
|
{'resource': 'backup',
|
||||||
|
'expected': ["name", "status", "volume_id"]},
|
||||||
|
{'resource': 'snapshot',
|
||||||
|
'expected': ["name", "status", "volume_id", "metadata"]},
|
||||||
|
{'resource': 'group_snapshot',
|
||||||
|
'expected': ["status", "group_id"]},
|
||||||
|
{'resource': 'attachment',
|
||||||
|
'expected': ["volume_id", "status", "instance_id",
|
||||||
|
"attach_status"]},
|
||||||
|
{'resource': 'message',
|
||||||
|
'expected': ["resource_uuid", "resource_type", "event_id",
|
||||||
|
"request_id", "message_level"]},
|
||||||
|
{'resource': 'pool', 'expected': ["name", "volume_type"]})
|
||||||
|
@ddt.unpack
|
||||||
|
def test_filter_keys_exists(self, resource, expected):
|
||||||
|
result = common.get_enabled_resource_filters(resource)
|
||||||
|
self.assertEqual(expected, result[resource])
|
||||||
|
|
||||||
@ddt.data({'resource': 'group',
|
@ddt.data({'resource': 'group',
|
||||||
'filters': {'name~': 'value'},
|
'filters': {'name~': 'value'},
|
||||||
'expected': {'name~': 'value'}},
|
'expected': {'name~': 'value'}},
|
||||||
|
@ -15,9 +15,9 @@ Tests for resource filters API.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import ddt
|
import ddt
|
||||||
|
import mock
|
||||||
import six
|
import six
|
||||||
|
|
||||||
from cinder.api import common
|
|
||||||
from cinder.api.v3 import resource_filters as v3_filters
|
from cinder.api.v3 import resource_filters as v3_filters
|
||||||
from cinder import test
|
from cinder import test
|
||||||
from cinder.tests.unit.api import fakes
|
from cinder.tests.unit.api import fakes
|
||||||
@ -49,15 +49,14 @@ class ResourceFiltersAPITestCase(test.TestCase):
|
|||||||
'expected_filters': []})
|
'expected_filters': []})
|
||||||
@ddt.unpack
|
@ddt.unpack
|
||||||
def test_get_allowed_filters(self, filters, resource, expected_filters):
|
def test_get_allowed_filters(self, filters, resource, expected_filters):
|
||||||
common._FILTERS_COLLECTION = filters
|
|
||||||
request_url = '/v3/%s/resource_filters' % fake.PROJECT_ID
|
request_url = '/v3/%s/resource_filters' % fake.PROJECT_ID
|
||||||
if resource is not None:
|
if resource is not None:
|
||||||
request_url += '?resource=%s' % resource
|
request_url += '?resource=%s' % resource
|
||||||
req = fakes.HTTPRequest.blank(request_url,
|
req = fakes.HTTPRequest.blank(request_url,
|
||||||
version=FILTERS_MICRO_VERSION)
|
version=FILTERS_MICRO_VERSION)
|
||||||
|
|
||||||
|
with mock.patch('cinder.api.common._FILTERS_COLLECTION', filters):
|
||||||
result = self.controller.index(req)
|
result = self.controller.index(req)
|
||||||
|
|
||||||
six.assertCountEqual(self,
|
six.assertCountEqual(self,
|
||||||
list(six.viewkeys(result)),
|
list(six.viewkeys(result)),
|
||||||
['resource_filters'])
|
['resource_filters'])
|
||||||
|
Loading…
Reference in New Issue
Block a user