From 9c70db4d44db62fa59c3c04e170b5df4213f7205 Mon Sep 17 00:00:00 2001 From: ghanshyam Date: Thu, 16 Apr 2015 14:45:35 +0900 Subject: [PATCH] Merge server groups tests between v2 and v2.1 Currently v2 and v2.1 have separate functional tests and their corresponding sample files. As v2 and v2.1 are supposed to be identical, there is overhead to maintain two set of functional tests and sample files. We can have one set of tests which can run for both v2 and v2.1. This commit merges servers groups functional tests. Also inheriting this tests class from ApiSampleTestBaseV3 instead of ServersSampleBase as this does not use any ServersSampleBase class methods. Change-Id: I687ce52a9844b830ee324105c4f49dec83534d9b --- .../server-groups-get-resp.json | 9 ---- .../server-groups-list-resp.json | 11 ---- .../server-groups-post-req.json | 6 --- .../server-groups-post-resp.json | 9 ---- .../server-groups-get-resp.json.tpl | 9 ---- .../server-groups-list-resp.json.tpl | 11 ---- .../server-groups-post-req.json.tpl | 6 --- .../server-groups-post-resp.json.tpl | 10 ---- nova/tests/functional/test_api_samples.py | 51 ------------------- .../tests/functional/v3/test_server_groups.py | 21 +++++++- 10 files changed, 19 insertions(+), 124 deletions(-) delete mode 100644 doc/api_samples/os-server-groups/server-groups-get-resp.json delete mode 100644 doc/api_samples/os-server-groups/server-groups-list-resp.json delete mode 100644 doc/api_samples/os-server-groups/server-groups-post-req.json delete mode 100644 doc/api_samples/os-server-groups/server-groups-post-resp.json delete mode 100644 nova/tests/functional/api_samples/os-server-groups/server-groups-get-resp.json.tpl delete mode 100644 nova/tests/functional/api_samples/os-server-groups/server-groups-list-resp.json.tpl delete mode 100644 nova/tests/functional/api_samples/os-server-groups/server-groups-post-req.json.tpl delete mode 100644 nova/tests/functional/api_samples/os-server-groups/server-groups-post-resp.json.tpl diff --git a/doc/api_samples/os-server-groups/server-groups-get-resp.json b/doc/api_samples/os-server-groups/server-groups-get-resp.json deleted file mode 100644 index f26cc8824e..0000000000 --- a/doc/api_samples/os-server-groups/server-groups-get-resp.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "server_group": { - "id": "5bbcc3c4-1da2-4437-a48a-66f15b1b13f9", - "name": "test", - "policies": ["anti-affinity"], - "members": [], - "metadata": {} - } -} diff --git a/doc/api_samples/os-server-groups/server-groups-list-resp.json b/doc/api_samples/os-server-groups/server-groups-list-resp.json deleted file mode 100644 index 6b6c28317d..0000000000 --- a/doc/api_samples/os-server-groups/server-groups-list-resp.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "server_groups": [ - { - "id": "616fb98f-46ca-475e-917e-2563e5a8cd19", - "name": "test", - "policies": ["anti-affinity"], - "members": [], - "metadata": {} - } - ] -} diff --git a/doc/api_samples/os-server-groups/server-groups-post-req.json b/doc/api_samples/os-server-groups/server-groups-post-req.json deleted file mode 100644 index 83b3b8e5d7..0000000000 --- a/doc/api_samples/os-server-groups/server-groups-post-req.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "server_group": { - "name": "test", - "policies": ["anti-affinity"] - } -} diff --git a/doc/api_samples/os-server-groups/server-groups-post-resp.json b/doc/api_samples/os-server-groups/server-groups-post-resp.json deleted file mode 100644 index f26cc8824e..0000000000 --- a/doc/api_samples/os-server-groups/server-groups-post-resp.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "server_group": { - "id": "5bbcc3c4-1da2-4437-a48a-66f15b1b13f9", - "name": "test", - "policies": ["anti-affinity"], - "members": [], - "metadata": {} - } -} diff --git a/nova/tests/functional/api_samples/os-server-groups/server-groups-get-resp.json.tpl b/nova/tests/functional/api_samples/os-server-groups/server-groups-get-resp.json.tpl deleted file mode 100644 index ba72643b6d..0000000000 --- a/nova/tests/functional/api_samples/os-server-groups/server-groups-get-resp.json.tpl +++ /dev/null @@ -1,9 +0,0 @@ -{ - "server_group": { - "id": "%(id)s", - "name": "%(name)s", - "policies": ["anti-affinity"], - "members": [], - "metadata": {} - } -} diff --git a/nova/tests/functional/api_samples/os-server-groups/server-groups-list-resp.json.tpl b/nova/tests/functional/api_samples/os-server-groups/server-groups-list-resp.json.tpl deleted file mode 100644 index f2ee5b6d6c..0000000000 --- a/nova/tests/functional/api_samples/os-server-groups/server-groups-list-resp.json.tpl +++ /dev/null @@ -1,11 +0,0 @@ -{ - "server_groups": [ - { - "id": "%(id)s", - "name": "test", - "policies": ["anti-affinity"], - "members": [], - "metadata": {} - } - ] -} diff --git a/nova/tests/functional/api_samples/os-server-groups/server-groups-post-req.json.tpl b/nova/tests/functional/api_samples/os-server-groups/server-groups-post-req.json.tpl deleted file mode 100644 index 1cc2328320..0000000000 --- a/nova/tests/functional/api_samples/os-server-groups/server-groups-post-req.json.tpl +++ /dev/null @@ -1,6 +0,0 @@ -{ - "server_group": { - "name": "%(name)s", - "policies": ["anti-affinity"] - } -} diff --git a/nova/tests/functional/api_samples/os-server-groups/server-groups-post-resp.json.tpl b/nova/tests/functional/api_samples/os-server-groups/server-groups-post-resp.json.tpl deleted file mode 100644 index ee9c37e82c..0000000000 --- a/nova/tests/functional/api_samples/os-server-groups/server-groups-post-resp.json.tpl +++ /dev/null @@ -1,10 +0,0 @@ -{ - "server_group": { - "id": "%(id)s", - "name": "%(name)s", - "policies": ["anti-affinity"], - "members": [], - "metadata": {} - } -} - diff --git a/nova/tests/functional/test_api_samples.py b/nova/tests/functional/test_api_samples.py index ecf9cb4f48..6e52fb6df2 100644 --- a/nova/tests/functional/test_api_samples.py +++ b/nova/tests/functional/test_api_samples.py @@ -2326,57 +2326,6 @@ class PreserveEphemeralOnRebuildJsonTest(ServersSampleBase): self.assertEqual(response.status_code, 202) -class ServerGroupsSampleJsonTest(ServersSampleBase): - extension_name = ("nova.api.openstack.compute.contrib" - ".server_groups.Server_groups") - - def _get_create_subs(self): - return {'name': 'test'} - - def _post_server_group(self): - """Verify the response status code and returns the UUID of the - newly created server group. - """ - subs = self._get_create_subs() - response = self._do_post('os-server-groups', - 'server-groups-post-req', subs) - subs = self._get_regexes() - subs['name'] = 'test' - return self._verify_response('server-groups-post-resp', - subs, response, 200) - - def _create_server_group(self): - subs = self._get_create_subs() - return self._do_post('os-server-groups', - 'server-groups-post-req', subs) - - def test_server_groups_post(self): - return self._post_server_group() - - def test_server_groups_list(self): - subs = self._get_create_subs() - uuid = self._post_server_group() - response = self._do_get('os-server-groups') - subs.update(self._get_regexes()) - subs['id'] = uuid - self._verify_response('server-groups-list-resp', - subs, response, 200) - - def test_server_groups_get(self): - # Get api sample of server groups get request. - subs = {'name': 'test'} - uuid = self._post_server_group() - subs['id'] = uuid - response = self._do_get('os-server-groups/%s' % uuid) - - self._verify_response('server-groups-get-resp', subs, response, 200) - - def test_server_groups_delete(self): - uuid = self._post_server_group() - response = self._do_delete('os-server-groups/%s' % uuid) - self.assertEqual(response.status_code, 204) - - class ServerGroupQuotas_LimitsSampleJsonTest(LimitsSampleJsonTest): sample_dir = None extension_name = ("nova.api.openstack.compute.contrib." diff --git a/nova/tests/functional/v3/test_server_groups.py b/nova/tests/functional/v3/test_server_groups.py index d459eb9bd0..c330fa574a 100644 --- a/nova/tests/functional/v3/test_server_groups.py +++ b/nova/tests/functional/v3/test_server_groups.py @@ -13,11 +13,28 @@ # License for the specific language governing permissions and limitations # under the License. -from nova.tests.functional.v3 import test_servers +from oslo_config import cfg + +from nova.tests.functional.v3 import api_sample_base + +CONF = cfg.CONF +CONF.import_opt('osapi_compute_extension', + 'nova.api.openstack.compute.extensions') -class ServerGroupsSampleJsonTest(test_servers.ServersSampleBase): +class ServerGroupsSampleJsonTest(api_sample_base.ApiSampleTestBaseV3): extension_name = "os-server-groups" + # TODO(gmann): Overriding '_api_version' till all functional tests + # are merged between v2 and v2.1. After that base class variable + # itself can be changed to 'v2' + _api_version = 'v2' + + def _get_flags(self): + f = super(ServerGroupsSampleJsonTest, self)._get_flags() + f['osapi_compute_extension'] = CONF.osapi_compute_extension[:] + f['osapi_compute_extension'].append( + 'nova.api.openstack.compute.contrib.server_groups.Server_groups') + return f def _get_create_subs(self): return {'name': 'test'}