Add functional test for v2.7

microversion v2.7 was added without a functional test,
even though we can cover most cases in unit test
for negative case, it would be better to
have a functional test for a specific microversion API change.

Change-Id: I4d5576cc4ebcdeaa4e4f067fe9c6207280ad7eda
This commit is contained in:
jichenjc 2016-02-26 02:16:23 +08:00
parent 07ba58cb22
commit fc164e3908
5 changed files with 67 additions and 2 deletions

View File

@ -0,0 +1,5 @@
{
"addTenantAccess": {
"tenant": "fake_tenant"
}
}

View File

@ -0,0 +1,10 @@
{
"flavor": {
"name": "test_flavor",
"ram": 1024,
"vcpus": 2,
"disk": 10,
"id": "10",
"os-flavor-access:is_public": true
}
}

View File

@ -0,0 +1,5 @@
{
"addTenantAccess": {
"tenant": "%(tenant_id)s"
}
}

View File

@ -0,0 +1,10 @@
{
"flavor": {
"name": "%(flavor_name)s",
"ram": 1024,
"vcpus": 2,
"disk": 10,
"id": "%(flavor_id)s",
"os-flavor-access:is_public": true
}
}

View File

@ -21,12 +21,12 @@ CONF.import_opt('osapi_compute_extension',
'nova.api.openstack.compute.legacy_v2.extensions')
class FlavorAccessSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
class FlavorAccessTestsBase(api_sample_base.ApiSampleTestBaseV21):
ADMIN_API = True
extension_name = 'flavor-access'
def _get_flags(self):
f = super(FlavorAccessSampleJsonTests, self)._get_flags()
f = super(FlavorAccessTestsBase, self)._get_flags()
f['osapi_compute_extension'] = CONF.osapi_compute_extension[:]
f['osapi_compute_extension'].append(
'nova.api.openstack.compute.contrib.'
@ -67,6 +67,9 @@ class FlavorAccessSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
subs)
self._verify_response("flavor-access-create-resp", subs, response, 200)
class FlavorAccessSampleJsonTests(FlavorAccessTestsBase):
def test_flavor_access_detail(self):
response = self._do_get('flavors/detail')
self._verify_response('flavor-access-detail-resp', {}, response, 200)
@ -109,3 +112,35 @@ class FlavorAccessSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
}
self._verify_response('flavor-access-remove-tenant-resp',
exp_subs, response, 200)
class FlavorAccessV27SampleJsonTests(FlavorAccessTestsBase):
microversion = '2.7'
scenarios = [('v2_7', {'api_major_version': 'v2.1'})]
def setUp(self):
super(FlavorAccessV27SampleJsonTests, self).setUp()
self.api.microversion = self.microversion
def test_add_tenant_access_to_public_flavor(self):
subs = {
'flavor_id': '10',
'flavor_name': 'test_flavor'
}
# Create public flavor
response = self._do_post("flavors",
"flavor-access-create-req",
subs)
self.assertEqual(200, response.status_code)
subs = {
'flavor_id': '10',
'tenant_id': 'fake_tenant'
}
# Version 2.7+ will return HTTPConflict (409)
# if the flavor is public
response = self._do_post('flavors/10/action',
'flavor-access-add-tenant-req',
subs)
self.assertEqual(409, response.status_code)