diff options
author | Shashank Kumar Shankar <shashank.kumar.shankar@intel.com> | 2017-10-24 16:01:39 -0700 |
---|---|---|
committer | Shashank Kumar Shankar <shashank.kumar.shankar@intel.com> | 2017-10-26 16:05:21 -0700 |
commit | 86ad81be251eb56f8320625f38246ca081a26132 (patch) | |
tree | a971ae19e7e6f9099695e531a170e7333b5b955f | |
parent | 93e03868d32458735efa3005b2a2f067622bf11c (diff) |
Update tests to make use of abstracted test_base
This patch updates various tests to make use of the abstracted
test_base.
Issue-Id: MULTICLOUD-83
Change-Id: I85573f1086e0ce19db48ae70827d27f3b9a1a4ca
Signed-off-by: Shashank Kumar Shankar <shashank.kumar.shankar@intel.com>
-rw-r--r-- | newton/newton/requests/tests/test_base.py | 57 | ||||
-rw-r--r-- | newton/newton/requests/tests/test_flavor.py | 148 | ||||
-rw-r--r-- | newton/newton/requests/tests/test_hosts.py | 98 | ||||
-rw-r--r-- | newton/newton/requests/tests/test_image.py | 9 | ||||
-rw-r--r-- | newton/newton/requests/tests/test_limits.py | 66 | ||||
-rw-r--r-- | newton/newton/requests/tests/test_network.py | 211 | ||||
-rw-r--r-- | newton/newton/requests/tests/test_subnet.py | 195 | ||||
-rw-r--r-- | newton/newton/requests/tests/test_volume.py | 188 |
8 files changed, 295 insertions, 677 deletions
diff --git a/newton/newton/requests/tests/test_base.py b/newton/newton/requests/tests/test_base.py index 2ba05cb0..d2065b06 100644 --- a/newton/newton/requests/tests/test_base.py +++ b/newton/newton/requests/tests/test_base.py @@ -63,12 +63,17 @@ class AbstractTestResource(object): __metaclass__ = ABCMeta def __init__(self): - self.openstack_version = "" - self.region = "" - self.resource_name = "" + + self.client = Client() + + self.openstack_version = "newton" + self.region = "windriver-hudson-dc_RegionOne" + self.url = "/api/multicloud-{}/v0/{}/fcca3cc49d5e42caae15459e27103efc/".format( + self.openstack_version, self.region) self.MOCK_GET_RESOURCES_RESPONSE = {} self.MOCK_GET_RESOURCE_RESPONSE = {} + self.MOCK_GET_RESOURCE_RESPONSE_NOT_FOUND = {} self.MOCK_POST_RESOURCE_REQUEST = {} self.MOCK_POST_RESOURCE_REQUEST_EXISTING = {} @@ -90,11 +95,7 @@ class AbstractTestResource(object): mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - url = "/api/multicloud-{}/v0/{}/fcca3cc49d5e42caae15459e27103efc/{}".format( - self.openstack_version, self.region, self.resource_name - ) - - response = self.client.get(url, {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + response = self.client.get(self.url, {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) context = response.json() self.assertEquals(status.HTTP_200_OK, response.status_code) @@ -112,11 +113,7 @@ class AbstractTestResource(object): mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - url = "/api/multicloud-{}/v0/{}/fcca3cc49d5e42caae15459e27103efc/{}".format( - self.openstack_version, self.region, self.resource_name - ) - - response = self.client.get(url + "/uuid_1", {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + response = self.client.get(self.url + "/uuid_1", {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) context = response.json() self.assertEquals(status.HTTP_200_OK, response.status_code) @@ -128,17 +125,13 @@ class AbstractTestResource(object): def test_get_resource_not_found(self, mock_get_vim_info, mock_get_session): mock_get_session.side_effect = [ get_mock_session( - ["get"], {"get": {"content": {}, + ["get"], {"get": {"content": self.MOCK_GET_RESOURCE_RESPONSE_NOT_FOUND, "status_code": 404}}), ] - url = "/api/multicloud-{}/v0/{}/fcca3cc49d5e42caae15459e27103efc/{}".format( - self.openstack_version, self.region, self.resource_name - ) - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - response = self.client.get(url + "/uuid_3", {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + response = self.client.get(self.url + "/uuid_3", {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) self.assertEquals(self.HTTP_not_found, response.status_code) @@ -147,19 +140,15 @@ class AbstractTestResource(object): def test_post_resource(self, mock_get_vim_info, mock_get_session): mock_get_session.side_effect = [ get_mock_session( - ["get"], {"get": {"content": self.MOCK_GET_RESOURCE_RESPONSE}}), + ["get"], {"get": {"content": self.MOCK_GET_RESOURCES_RESPONSE}}), get_mock_session( ["post"], {"post": {"content": self.MOCK_POST_RESOURCE_RESPONSE, "status_code": 202}}), ] - url = "/api/multicloud-{}/v0/{}/fcca3cc49d5e42caae15459e27103efc/{}".format( - self.openstack_version, self.region, self.resource_name - ) - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - response = self.client.post(url, self.MOCK_POST_RESOURCE_REQUEST, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + response = self.client.post(self.url, self.MOCK_POST_RESOURCE_REQUEST, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) context = response.json() self.assertEquals(status.HTTP_202_ACCEPTED, response.status_code) @@ -177,13 +166,9 @@ class AbstractTestResource(object): "status_code": 201}}), ] - url = "/api/multicloud-{}/v0/{}/fcca3cc49d5e42caae15459e27103efc/{}".format( - self.openstack_version, self.region, self.resource_name - ) - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - response = self.client.post(url, self.MOCK_POST_RESOURCE_REQUEST_EXISTING, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + response = self.client.post(self.url, self.MOCK_POST_RESOURCE_REQUEST_EXISTING, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) context = response.json() self.assertEquals(status.HTTP_200_OK, response.status_code) @@ -201,13 +186,9 @@ class AbstractTestResource(object): "status_code": 202}}), ] - url = "/api/multicloud-{}/v0/{}/fcca3cc49d5e42caae15459e27103efc/{}".format( - self.openstack_version, self.region, self.resource_name - ) - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - response = self.client.post(url, {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + response = self.client.post(self.url, {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) context = response.json() self.assertIn('error', context) @@ -223,13 +204,9 @@ class AbstractTestResource(object): "status_code": 204}}) ] - url = "/api/multicloud-{}/v0/{}/fcca3cc49d5e42caae15459e27103efc/{}".format( - self.openstack_version, self.region, self.resource_name - ) - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - response = self.client.delete(url + "/uuid_1", HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + response = self.client.delete(self.url + "/uuid_1", HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) self.assertEqual(status.HTTP_204_NO_CONTENT, response.status_code) self.assertIsNone(response.data) diff --git a/newton/newton/requests/tests/test_flavor.py b/newton/newton/requests/tests/test_flavor.py index 7ddb1122..26e3f381 100644 --- a/newton/newton/requests/tests/test_flavor.py +++ b/newton/newton/requests/tests/test_flavor.py @@ -13,54 +13,67 @@ # limitations under the License. import mock +import unittest from rest_framework import status from newton.requests.tests import mock_info from newton.requests.tests import test_base +from newton.requests.tests.test_base import AbstractTestResource from newton.requests.views.flavor import Flavors from newton.requests.views.util import VimDriverUtils -MOCK_GET_FLAVORS_RESPONSE = { - "flavors": [ - {"id": "uuid_1", "name": "flavor_1"}, - {"id": "uuid_2", "name": "flavor_2"} - ] -} +class TestFlavorsNewton(unittest.TestCase, AbstractTestResource): -MOCK_GET_FLAVOR_RESPONSE = { - "flavor": { - "id": "uuid_1", - "name": "flavor_1" - } -} + def setUp(self): + AbstractTestResource.__init__(self) -MOCK_GET_EXTRA_SPECS = { - "extra_specs": { - "key": "test" - } -} + self.url += "flavors" -MOCK_POST_FLAVOR_REQUEST = { - "id": "uuid_3", - "name": "flavor_3" -} + self.MOCK_GET_RESOURCES_RESPONSE = { + "flavors": [ + {"id": "uuid_1", "name": "flavor_1"}, + {"id": "uuid_2", "name": "flavor_2"} + ] + } -MOCK_POST_FLAVOR_REQUEST_EXISTING = { - "id": "uuid_1", - "name": "flavor_1" -} + self.MOCK_GET_RESOURCE_RESPONSE = { + "flavor": { + "id": "uuid_1", + "name": "flavor_1" + } + } -MOCK_POST_FLAVOR_RESPONSE = { - "flavor": { - "id": "uuid_3", - "name": "flavor_3" - } -} + self.MOCK_GET_RESOURCE_RESPONSE_NOT_FOUND = {} + self.MOCK_POST_RESOURCE_REQUEST = { + "id": "uuid_3", + "name": "flavor_3" + } -class TestFlavors(test_base.TestRequest): + self.MOCK_POST_RESOURCE_REQUEST_EXISTING = { + "id": "uuid_1", + "name": "flavor_1" + } + + self.MOCK_POST_RESOURCE_RESPONSE = { + "flavor": { + "id": "uuid_3", + "name": "flavor_3" + } + } + + self.MOCK_GET_EXTRA_SPECS = { + "extra_specs": { + "key": "test" + } + } + + self.assert_keys = "flavors" + self.assert_key = "flavor" + + self.HTTP_not_found = status.HTTP_404_NOT_FOUND @mock.patch.object(Flavors, '_get_flavor_extra_specs') @mock.patch.object(VimDriverUtils, 'get_session') @@ -69,7 +82,7 @@ class TestFlavors(test_base.TestRequest): mock_get_flavor_extra_specs): mock_get_session.side_effect = [ test_base.get_mock_session( - ["get"], {"get": {"content": MOCK_GET_FLAVORS_RESPONSE}}), + ["get"], {"get": {"content": self.MOCK_GET_RESOURCES_RESPONSE}}), ] mock_extra_specs = mock.Mock(spec=test_base.MockResponse) @@ -86,7 +99,7 @@ class TestFlavors(test_base.TestRequest): self.assertEquals(status.HTTP_200_OK, response.status_code) self.assertIsNotNone(context['flavors']) - self.assertEqual(MOCK_GET_FLAVORS_RESPONSE["flavors"], + self.assertEqual(self.MOCK_GET_RESOURCES_RESPONSE["flavors"], context['flavors']) @mock.patch.object(Flavors, '_get_flavor_extra_specs') @@ -97,7 +110,7 @@ class TestFlavors(test_base.TestRequest): mock_get_session.side_effect = [ test_base.get_mock_session( ["get"], - {"get": {"content": MOCK_GET_FLAVOR_RESPONSE}}), + {"get": {"content": self.MOCK_GET_RESOURCE_RESPONSE}}), ] mock_extra_specs = mock.Mock(spec=test_base.MockResponse) @@ -113,7 +126,7 @@ class TestFlavors(test_base.TestRequest): context = response.json() self.assertEquals(status.HTTP_200_OK, response.status_code) - self.assertEqual(MOCK_GET_FLAVOR_RESPONSE["id"], context["id"]) + self.assertEqual(self.MOCK_GET_RESOURCE_RESPONSE["id"], context["id"]) @mock.patch.object(Flavors, '_get_flavor_extra_specs') @mock.patch.object(VimDriverUtils, 'get_session') @@ -149,9 +162,9 @@ class TestFlavors(test_base.TestRequest): mock_get_session.side_effect = [ test_base.get_mock_session( ["get", "post"], { - "get": {"content": MOCK_GET_FLAVORS_RESPONSE}, + "get": {"content": self.MOCK_GET_RESOURCES_RESPONSE}, "post": { - "content": MOCK_POST_FLAVOR_RESPONSE, + "content": self.MOCK_POST_RESOURCE_RESPONSE, "status_code": status.HTTP_202_ACCEPTED, } } @@ -162,7 +175,7 @@ class TestFlavors(test_base.TestRequest): response = self.client.post( ("/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne" "/fcca3cc49d5e42caae15459e27103efc/flavors"), - MOCK_POST_FLAVOR_REQUEST, + self.MOCK_POST_RESOURCE_REQUEST, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) context = response.json() @@ -171,7 +184,6 @@ class TestFlavors(test_base.TestRequest): self.assertIsNotNone(context['id']) self.assertEqual(1, context['returnCode']) - @mock.patch.object(Flavors, '_get_flavor_extra_specs') @mock.patch.object(VimDriverUtils, 'get_session') @mock.patch.object(VimDriverUtils, 'get_vim_info') @@ -181,9 +193,9 @@ class TestFlavors(test_base.TestRequest): mock_get_session.side_effect = [ test_base.get_mock_session( ["get", "post"], { - "get": {"content": MOCK_GET_FLAVORS_RESPONSE}, + "get": {"content": self.MOCK_GET_RESOURCES_RESPONSE}, "post": { - "content": MOCK_POST_FLAVOR_RESPONSE, + "content": self.MOCK_POST_RESOURCE_RESPONSE, "status_code": status.HTTP_202_ACCEPTED, } }), @@ -197,7 +209,7 @@ class TestFlavors(test_base.TestRequest): response = self.client.post( ("/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/" "fcca3cc49d5e42caae15459e27103efc/flavors"), - MOCK_POST_FLAVOR_REQUEST_EXISTING, + self.MOCK_POST_RESOURCE_REQUEST_EXISTING, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) context = response.json() @@ -207,42 +219,13 @@ class TestFlavors(test_base.TestRequest): @mock.patch.object(VimDriverUtils, 'get_session') @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_create_empty_flavor( - self, mock_get_vim_info,mock_get_session): - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["get", "post"], - { - "get": {"content": MOCK_GET_FLAVORS_RESPONSE}, - "post": { - "content": MOCK_POST_FLAVOR_RESPONSE, - "status_code": status.HTTP_202_ACCEPTED - } - }) - ] - mock_extra_specs = mock.Mock(spec=test_base.MockResponse) - mock_extra_specs.json.return_value = {"extra_specs": {}} - - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - response = self.client.post( - ("/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/" - "fcca3cc49d5e42caae15459e27103efc/flavors"), - {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) - - context = response.json() - self.assertIn('error', context) - self.assertEquals(status.HTTP_500_INTERNAL_SERVER_ERROR, - response.status_code) - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') def test_delete_flavor(self, mock_get_vim_info, mock_get_session): mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO mock_get_session.side_effect = [ test_base.get_mock_session( ["get", "delete"], { - "get": { "content": MOCK_GET_EXTRA_SPECS }, + "get": { "content": self.MOCK_GET_EXTRA_SPECS }, "delete": {"status_code": status.HTTP_204_NO_CONTENT } }), ] @@ -255,3 +238,22 @@ class TestFlavors(test_base.TestRequest): self.assertEqual(status.HTTP_204_NO_CONTENT, response.status_code) self.assertIsNone(response.data) + + # Overridden methods from test base to not make it run for current test case. + def test_get_resources_list(self): + pass + + def test_get_resource_info(self): + pass + + def test_get_resource_not_found(self): + pass + + def test_post_resource(self): + pass + + def test_post_resource_existing(self): + pass + + def test_delete_resource(self): + pass diff --git a/newton/newton/requests/tests/test_hosts.py b/newton/newton/requests/tests/test_hosts.py index e78375b1..13e6b1fc 100644 --- a/newton/newton/requests/tests/test_hosts.py +++ b/newton/newton/requests/tests/test_hosts.py @@ -12,90 +12,48 @@ # See the License for the specific language governing permissions and # limitations under the License. -import mock import unittest -from django.test import Client from rest_framework import status -from newton.requests.tests import mock_info -from newton.requests.tests import test_base -from newton.requests.views.util import VimDriverUtils +from newton.requests.tests.test_base import AbstractTestResource -MOCK_GET_HOSTS_RESPONSE = { - "hosts": [ - {"id": "uuid_1", "name": "host_1"}, - {"id": "uuid_2", "name": "host_2"} - ] -} - -MOCK_GET_HOST_RESPONSE = { - "host": [ - {"resource": {"id": "uuid_1", "name": "host_1"}} - ] -} - - -class TestHost(unittest.TestCase): +class TestHostNewton(unittest.TestCase, AbstractTestResource): def setUp(self): - self.client = Client() - def tearDown(self): - pass - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_get_hosts_list(self, mock_get_vim_info, mock_get_session): - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["get"], {"get": {"content": MOCK_GET_HOSTS_RESPONSE}}), - ] + AbstractTestResource.__init__(self) - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + self.url += "hosts" - response = self.client.get( - "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc/hosts", - {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + self.MOCK_GET_RESOURCES_RESPONSE = { + "hosts": [ + {"id": "uuid_1", "name": "host_1"}, + {"id": "uuid_2", "name": "host_2"} + ] + } - context = response.json() - self.assertEquals(status.HTTP_200_OK, response.status_code) - self.assertIsNotNone(context['hosts']) - self.assertEqual(MOCK_GET_HOSTS_RESPONSE["hosts"], context["hosts"]) + self.MOCK_GET_RESOURCE_RESPONSE = { + "host": [ + {"resource": {"id": "uuid_1", "name": "host_1"}} + ] + } - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_get_host_info(self, mock_get_vim_info, mock_get_session): - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["get"], {"get": {"content": MOCK_GET_HOST_RESPONSE}}), - ] + self.MOCK_GET_RESOURCE_RESPONSE_NOT_FOUND = {} - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + self.assert_keys = "hosts" + self.assert_key = "host" - response = self.client.get( - "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc/hosts" - "/uuid_1", - {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + self.HTTP_not_found = status.HTTP_500_INTERNAL_SERVER_ERROR - context = response.json() - self.assertEquals(status.HTTP_200_OK, response.status_code) - self.assertEquals(MOCK_GET_HOST_RESPONSE['host'], context['host']) - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_get_host_not_found(self, mock_get_vim_info, mock_get_session): - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["get"], {"get": {"content": {}, - "status_code": 404}}), - ] + # Overridden methods from test base to not make it run for current test case. + def test_post_resource(self): + pass - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + def test_post_resource_existing(self): + pass - response = self.client.get( - "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc/hosts" - "/uuid_3", - {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + def test_post_resource_empty(self): + pass - self.assertEquals(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code) - self.assertIn('error', response.data) + def test_delete_resource(self): + pass diff --git a/newton/newton/requests/tests/test_image.py b/newton/newton/requests/tests/test_image.py index 1e747630..a290302e 100644 --- a/newton/newton/requests/tests/test_image.py +++ b/newton/newton/requests/tests/test_image.py @@ -16,7 +16,6 @@ import mock import unittest from six.moves import urllib -from django.test import Client from rest_framework import status from newton.requests.tests import mock_info @@ -29,11 +28,9 @@ from newton.requests.views.util import VimDriverUtils class TestImageNewton(unittest.TestCase, AbstractTestResource): def setUp(self): - self.client = Client() + AbstractTestResource.__init__(self) - self.openstack_version = "newton" - self.region = "windriver-hudson-dc_RegionOne" - self.resource_name = "images" + self.url += "images" self.MOCK_GET_RESOURCES_RESPONSE = { "images": [ @@ -49,6 +46,8 @@ class TestImageNewton(unittest.TestCase, AbstractTestResource): } } + self.MOCK_GET_RESOURCE_RESPONSE_NOT_FOUND = {} + self.MOCK_POST_RESOURCE_REQUEST = { "id": "uuid_3", "name": "image_3", diff --git a/newton/newton/requests/tests/test_limits.py b/newton/newton/requests/tests/test_limits.py index 053a44a0..d37e7e6d 100644 --- a/newton/newton/requests/tests/test_limits.py +++ b/newton/newton/requests/tests/test_limits.py @@ -20,28 +20,29 @@ from rest_framework import status from newton.requests.tests import mock_info from newton.requests.tests import test_base +from newton.requests.tests.test_base import AbstractTestResource from newton.requests.views.util import VimDriverUtils -MOCK_GET_LIMITS_RESPONSE = { - "limits": { - "absolute": { - "id": "uuid_1", "name": "limit_1" - } - } -} - -MOCK_GET_QUOTAS_RESPONSE = { - "quota": {"limit": "1"} -} - - -class TestLimit(unittest.TestCase): +class TestLimitNewton(unittest.TestCase, AbstractTestResource): def setUp(self): self.client = Client() - def tearDown(self): - pass + self.openstack_version = "newton" + self.region = "windriver-hudson-dc_RegionOne" + self.resource_name = "limits" + + self.MOCK_GET_LIMITS_RESPONSE = { + "limits": { + "absolute": { + "id": "uuid_1", "name": "limit_1" + } + } + } + + self.MOCK_GET_QUOTAS_RESPONSE = { + "quota": {"limit": "1"} + } @staticmethod def _get_mock_response(return_value=None): @@ -57,9 +58,9 @@ class TestLimit(unittest.TestCase): mock_get_session.return_value = test_base.get_mock_session( ["get"], { "side_effect": [ - self._get_mock_response(MOCK_GET_LIMITS_RESPONSE), - self._get_mock_response(MOCK_GET_QUOTAS_RESPONSE), - self._get_mock_response(MOCK_GET_LIMITS_RESPONSE) + self._get_mock_response(self.MOCK_GET_LIMITS_RESPONSE), + self._get_mock_response(self.MOCK_GET_QUOTAS_RESPONSE), + self._get_mock_response(self.MOCK_GET_LIMITS_RESPONSE) ] }) @@ -73,7 +74,7 @@ class TestLimit(unittest.TestCase): self.assertEquals(status.HTTP_200_OK, response.status_code) self.assertIsNotNone(context) self.assertIn( - MOCK_GET_LIMITS_RESPONSE["limits"]["absolute"]['id'], context['id']) + self.MOCK_GET_LIMITS_RESPONSE["limits"]["absolute"]['id'], context['id']) @mock.patch.object(VimDriverUtils, 'get_session') @mock.patch.object(VimDriverUtils, 'get_vim_info') @@ -82,9 +83,9 @@ class TestLimit(unittest.TestCase): mock_get_session.return_value = test_base.get_mock_session( ["get"], { "side_effect": [ - self._get_mock_response(MOCK_GET_LIMITS_RESPONSE), + self._get_mock_response(self.MOCK_GET_LIMITS_RESPONSE), self._get_mock_response({}), - self._get_mock_response(MOCK_GET_LIMITS_RESPONSE) + self._get_mock_response(self.MOCK_GET_LIMITS_RESPONSE) ] }) @@ -97,3 +98,24 @@ class TestLimit(unittest.TestCase): context = response.json() self.assertIn('error', context) self.assertEquals(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code) + + def test_get_resources_list(self): + pass + + def test_get_resource_info(self): + pass + + def test_get_resource_not_found(self): + pass + + def test_post_resource(self): + pass + + def test_post_resource_existing(self): + pass + + def test_post_resource_empty(self): + pass + + def test_delete_resource(self): + pass diff --git a/newton/newton/requests/tests/test_network.py b/newton/newton/requests/tests/test_network.py index 448c098b..353c7fa3 100644 --- a/newton/newton/requests/tests/test_network.py +++ b/newton/newton/requests/tests/test_network.py @@ -12,197 +12,50 @@ # See the License for the specific language governing permissions and # limitations under the License. -import mock import unittest -from django.test import Client from rest_framework import status -from newton.requests.views.util import VimDriverUtils -from newton.requests.tests import mock_info -from newton.requests.tests import test_base +from newton.requests.tests.test_base import AbstractTestResource -MOCK_GET_NETWORKS_RESPONSE = { - "networks": [ - {"name": "network_1"}, - {"name": "network_2"} - ] -} +class TestNetworkNewton(unittest.TestCase, AbstractTestResource): + def setUp(self): + AbstractTestResource.__init__(self) -MOCK_GET_NETWORK_RESPONSE = { - "network": { - "network_id": "f5dc173b-6804-445a-a6d8-c705dad5b5eb", - "name": "network_3" - } -} + self.url += "networks" -MOCK_POST_NETWORK_REQUEST = { - "name": "network_3" -} + self.MOCK_GET_RESOURCES_RESPONSE = { + "networks": [ + {"name": "network_1"}, + {"name": "network_2"} + ] + } -MOCK_POST_NETWORK_REQUEST_EXISTING = { - "name": "network_1" -} + self.MOCK_GET_RESOURCE_RESPONSE = { + "network": { + "id": "f5dc173b-6804-445a-a6d8-c705dad5b5eb", + "name": "network_3" + } + } -MOCK_POST_NETWORK_RESPONSE = { - "network": { - "network_id": "f5dc173b-6804-445a-a6d8-c705dad5b5eb" - } -} + self.MOCK_GET_RESOURCE_RESPONSE_NOT_FOUND = {} + self.MOCK_POST_RESOURCE_REQUEST = { + "name": "network_3" + } -class TestNetwork(unittest.TestCase): - def setUp(self): - self.client = Client() + self.MOCK_POST_RESOURCE_REQUEST_EXISTING = { + "name": "network_1" + } - def tearDown(self): - pass + self.MOCK_POST_RESOURCE_RESPONSE = { + "network": { + "id": "f5dc173b-6804-445a-a6d8-c705dad5b5eb" + } + } - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_get_networks(self, mock_get_vim_info, mock_get_session): + self.assert_keys = "networks" + self.assert_key = "id" - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["get"], {"get": {"content": MOCK_GET_NETWORKS_RESPONSE}}), - ] - - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - - response = self.client.get( - "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc/networks", - {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) - - context = response.json() - self.assertEquals(status.HTTP_200_OK, response.status_code) - self.assertIsNotNone(context['networks']) - self.assertEqual(MOCK_GET_NETWORKS_RESPONSE["networks"], context['networks']) - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_get_network(self, mock_get_vim_info, mock_get_session): - - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["get"], {"get": {"content": MOCK_GET_NETWORK_RESPONSE}}), - ] - - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - - response = self.client.get( - "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc" - "/networks/f5dc173b-6804-445a-a6d8-c705dad5b5eb", - {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) - - context = response.json() - self.assertEquals(status.HTTP_200_OK, response.status_code) - self.assertEquals(MOCK_GET_NETWORK_RESPONSE['network_id'], context['network_id']) - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_get_network_not_found(self, mock_get_vim_info, mock_get_session): - - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["get"], {"get": {"content": {}, - "status_code": 404}}), - ] - - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - - response = self.client.get( - "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc" - "/networks/f5dc173b-6804-445a-a6d8-c705dad5b5eb", - {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) - - # TODO(sshank): 404 status is not possible. - self.assertEquals(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code) - self.assertIn('error', response.data) - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_post(self, mock_get_vim_info, mock_get_session): - - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["get"], {"get": {"content": MOCK_GET_NETWORKS_RESPONSE}}), - test_base.get_mock_session( - ["post"], {"post": {"content": MOCK_POST_NETWORK_RESPONSE, - "status_code": 202}}), - ] - - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - - response = self.client.post( - "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc/networks", - MOCK_POST_NETWORK_REQUEST, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) - - context = response.json() - self.assertEquals(status.HTTP_202_ACCEPTED, response.status_code) - self.assertIsNotNone(context['network_id']) - self.assertEqual(1, context['returnCode']) - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_post_existing(self, mock_get_vim_info, mock_get_session): - - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["get"], {"get": {"content": MOCK_GET_NETWORKS_RESPONSE}}), - test_base.get_mock_session( - ["post"], {"post": {"content": MOCK_POST_NETWORK_RESPONSE, - "status_code": 202}}), - ] - - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - - response = self.client.post( - "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc/networks", - MOCK_POST_NETWORK_REQUEST_EXISTING, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) - - context = response.json() - self.assertEquals(status.HTTP_200_OK, response.status_code) - self.assertIsNotNone(context['returnCode']) - self.assertEqual(0, context['returnCode']) - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_post_empty_body(self, mock_get_vim_info, mock_get_session): - - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["get"], {"get": {"content": MOCK_GET_NETWORKS_RESPONSE}}), - test_base.get_mock_session( - ["post"], {"post": {"content": MOCK_POST_NETWORK_RESPONSE, - "status_code": 202}}), - ] - - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - - response = self.client.post( - "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc/networks", - {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) - - context = response.json() - self.assertIn('error', context) - self.assertEquals(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code) - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_delete(self, mock_get_vim_info, mock_get_session): - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["delete"], {"delete": {"content": {}, - "status_code": 204}}) - ] - - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - - response = self.client.delete( - "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc" - "/networks/f5dc173b-6804-445a-a6d8-c705dad5b5eb", - HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) - - self.assertEqual(status.HTTP_204_NO_CONTENT, response.status_code) - self.assertIsNone(response.data) + self.HTTP_not_found = status.HTTP_500_INTERNAL_SERVER_ERROR diff --git a/newton/newton/requests/tests/test_subnet.py b/newton/newton/requests/tests/test_subnet.py index e4b2805e..653df33d 100644 --- a/newton/newton/requests/tests/test_subnet.py +++ b/newton/newton/requests/tests/test_subnet.py @@ -15,75 +15,59 @@ import mock import unittest -from django.test import Client from rest_framework import status from newton.requests.tests import test_base from newton.requests.tests import mock_info +from newton.requests.tests.test_base import AbstractTestResource from newton.requests.views.util import VimDriverUtils -MOCK_GET_SUBNETS_RESPONSE = { - "subnets": [ - {"id": "uuid_1", "name": "subnet_1"}, - {"id": "uuid_2", "name": "subnet_2"} - ] -} - -MOCK_GET_SUBNET_RESPONSE = { - "subnet": { - "id": "uuid_1", - "name": "subnet_1" - } -} - -MOCK_GET_SUBNET_RESPONSE_NOT_FOUND = { - "subnet": {} -} - -MOCK_POST_SUBNET_REQUEST = { - "id": "uuid_3", - "name": "subnet_3", -} - -MOCK_POST_SUBNET_REQUEST_EXISTING = { - "id": "uuid_1", - "name": "subnet_1", -} - -MOCK_POST_SUBNET_RESPONSE = { - "subnet": { - "id": "uuid_3", - "name": "subnet_3" - } -} - - -class TestSubnet(unittest.TestCase): +class TestSubnetNewton(unittest.TestCase, AbstractTestResource): def setUp(self): - self.client = Client() - - def tearDown(self): - pass - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_get_subnets(self, mock_get_vim_info, mock_get_session): - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["get"], - {"get": {"content": MOCK_GET_SUBNETS_RESPONSE}}) - ] - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - - response = self.client.get( - "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc/subnets", - {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) - - context = response.json() - self.assertEquals(status.HTTP_200_OK, response.status_code) - self.assertIsNotNone(context['subnets']) - self.assertEqual(MOCK_GET_SUBNETS_RESPONSE["subnets"], context["subnets"]) + AbstractTestResource.__init__(self) + + self.url += "subnets" + + self.MOCK_GET_RESOURCES_RESPONSE = { + "subnets": [ + {"id": "uuid_1", "name": "subnet_1"}, + {"id": "uuid_2", "name": "subnet_2"} + ] + } + + self.MOCK_GET_RESOURCE_RESPONSE = { + "subnet": { + "id": "uuid_1", + "name": "subnet_1" + } + } + + self.MOCK_GET_RESOURCE_RESPONSE_NOT_FOUND = { + "subnet": {} + } + + self.MOCK_POST_RESOURCE_REQUEST = { + "id": "uuid_3", + "name": "subnet_3" + } + + self.MOCK_POST_RESOURCE_REQUEST_EXISTING = { + "id": "uuid_1", + "name": "subnet_1" + } + + self.MOCK_POST_RESOURCE_RESPONSE = { + "subnet": { + "id": "uuid_3", + "name": "subnet_3" + } + } + + self.assert_keys = "subnets" + self.assert_key = "subnet" + + self.HTTP_not_found = status.HTTP_404_NOT_FOUND @mock.patch.object(VimDriverUtils, 'get_session') @mock.patch.object(VimDriverUtils, 'get_vim_info') @@ -91,7 +75,7 @@ class TestSubnet(unittest.TestCase): mock_get_session.side_effect = [ test_base.get_mock_session( ["get"], - {"get": {"content": MOCK_GET_SUBNET_RESPONSE}}) + {"get": {"content": self.MOCK_GET_RESOURCE_RESPONSE}}) ] mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO @@ -102,87 +86,8 @@ class TestSubnet(unittest.TestCase): context = response.json() self.assertEquals(status.HTTP_200_OK, response.status_code) - self.assertEqual(MOCK_GET_SUBNET_RESPONSE["id"], context["id"]) - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_get_subnet_not_found(self, mock_get_vim_info, mock_get_session): - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["get"], - {"get": {"content": MOCK_GET_SUBNET_RESPONSE_NOT_FOUND, - "status_code": 404}}), - ] - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - - response = self.client.get( - "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc/subnets" - "/uuid_3", - {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) - - context = response.json() - self.assertEquals(status.HTTP_404_NOT_FOUND, response.status_code) - self.assertIsNone(context.get("subnet")) - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_create_subnet_success(self, mock_get_vim_info, mock_get_session): - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["get"], - {"get": {"content": MOCK_GET_SUBNETS_RESPONSE}}), - test_base.get_mock_session( - ["post"], - {"post": {"content": MOCK_POST_SUBNET_RESPONSE, - "status_code": 201}}) - ] - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - - response = self.client.post( - "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc/subnets", - MOCK_POST_SUBNET_REQUEST, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) - context = response.json() - - self.assertEquals(status.HTTP_201_CREATED, response.status_code) - self.assertEqual(MOCK_POST_SUBNET_RESPONSE["subnet"], context) - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_create_subnet_fail_existing(self, mock_get_vim_info, mock_get_session): - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["get"], - {"get": {"content": MOCK_GET_SUBNETS_RESPONSE}}), - test_base.get_mock_session( - ["post"], - {"post": {"content": MOCK_POST_SUBNET_RESPONSE, - "status_code": 404}}) - ] - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - - response = self.client.post( - "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc/subnets", - MOCK_POST_SUBNET_REQUEST_EXISTING, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) - context = response.json() - - self.assertEquals(status.HTTP_200_OK, response.status_code) - self.assertIsNotNone(context['returnCode']) - self.assertEqual(0, context['returnCode']) - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_delete_subnet_success(self, mock_get_vim_info, mock_get_session): - mock_get_session.side_effect = [ - test_base.get_mock_session( - ["delete"], - {"delete": {"content": None, - "status_code": 204}}) - ] - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - - response = self.client.delete( - "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc/subnets" - "/uuid_1", HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + self.assertEqual(self.MOCK_GET_RESOURCE_RESPONSE["id"], context["id"]) - self.assertEqual(status.HTTP_204_NO_CONTENT, response.status_code) - self.assertIsNone(response.data) + # Overridden method from test base to not make it run for current test case. + def test_get_resource_info(self): + pass diff --git a/newton/newton/requests/tests/test_volume.py b/newton/newton/requests/tests/test_volume.py index 8281e23d..fb58d240 100644 --- a/newton/newton/requests/tests/test_volume.py +++ b/newton/newton/requests/tests/test_volume.py @@ -15,174 +15,76 @@ import mock import unittest -from django.test import Client from rest_framework import status from newton.requests.tests import mock_info from newton.requests.tests import test_base +from newton.requests.tests.test_base import AbstractTestResource from newton.requests.views.util import VimDriverUtils -from newton.requests.views.volume import Volumes - -MOCK_GET_VOLUMES_RESPONSE = { - "volumes": [ - {"id": "uuid_1", "name": "volume_1"}, - {"id": "uuid_2", "name": "volume_2"} - ] -} - -MOCK_GET_VOLUME_RESPONSE = { - "volume": { - "id": "uuid_1", - "name": "volume_1" - } -} - -MOCK_POST_VOLUME_REQUEST = { - "id": "uuid_3", - "name": "volume_3" -} - -MOCK_POST_VOLUME_REQUEST_EXISTING = { - "id": "uuid_1", - "name": "volume_1" -} - -MOCK_POST_VOLUME_RESPONSE = { - "volume": { - "id": "uuid_3", - "name": "volume_3" - } -} - -class TestVolumes(test_base.TestRequest): - - url = ("/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/" - "fcca3cc49d5e42caae15459e27103efc/") - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_get_volumes(self, mock_get_vim_info, mock_get_session): - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - mock_get_session.return_value = test_base.get_mock_session( - ["get"], - {"get": {"content": MOCK_GET_VOLUMES_RESPONSE}}) - response = self.client.get( - self.url + "volumes", - {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) +class TestVolumesNewton(unittest.TestCase, AbstractTestResource): - context = response.json() - self.assertEquals(status.HTTP_200_OK, response.status_code) - self.assertIsNotNone(context['volumes']) - self.assertEqual(MOCK_GET_VOLUMES_RESPONSE["volumes"], context['volumes']) + def setUp(self): + AbstractTestResource.__init__(self) - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_get_volume(self, mock_get_vim_info, mock_get_session): + self.url += "volumes" - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - mock_get_session.return_value = test_base.get_mock_session( - ["get"], - {"get": {"content": MOCK_GET_VOLUME_RESPONSE}}) - - response = self.client.get( - self.url + "volumes/uuid_1", - {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) - - context = response.json() - self.assertEquals(status.HTTP_200_OK, response.status_code) - self.assertEquals(MOCK_GET_VOLUME_RESPONSE['id'], context['id']) + self.MOCK_GET_RESOURCES_RESPONSE = { + "volumes": [ + {"id": "uuid_1", "name": "volume_1"}, + {"id": "uuid_2", "name": "volume_2"} + ] + } - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_get_volume_not_found(self, mock_get_vim_info, mock_get_session): - - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - mock_get_session.return_value = test_base.get_mock_session( - ["get"], - {"get": {"content": None, "status_code": 404}}) + self.MOCK_GET_RESOURCE_RESPONSE = { + "volume": { + "id": "uuid_1", + "name": "volume_1" + } + } - response = self.client.get( - self.url + "volumes/uuid_3", - {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + self.MOCK_GET_RESOURCE_RESPONSE_NOT_FOUND = {} - self.assertEquals(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code) - self.assertIn('error', response.data) + self.MOCK_POST_RESOURCE_REQUEST = { + "id": "uuid_3", + "name": "volume_3" + } - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_create_volume_successfully(self, mock_get_vim_info, mock_get_session): + self.MOCK_POST_RESOURCE_REQUEST_EXISTING = { + "id": "uuid_1", + "name": "volume_1" + } - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - mock_get_session.return_value = test_base.get_mock_session( - ["get", "post"], - { - "get" : {"content": MOCK_GET_VOLUMES_RESPONSE}, - "post": {"content": MOCK_POST_VOLUME_RESPONSE, "status_code": 202} - }) + self.MOCK_POST_RESOURCE_RESPONSE = { + "volume": { + "id": "uuid_3", + "name": "volume_3" + } + } - response = self.client.post( - self.url + "volumes", - MOCK_POST_VOLUME_REQUEST, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + self.assert_keys = "volumes" + self.assert_key = "volume" - context = response.json() - self.assertEquals(status.HTTP_202_ACCEPTED, response.status_code) - self.assertIsNotNone(context['id']) - self.assertEqual(1, context['returnCode']) + self.HTTP_not_found = status.HTTP_500_INTERNAL_SERVER_ERROR @mock.patch.object(VimDriverUtils, 'get_session') @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_create_existing_volume(self, mock_get_vim_info, mock_get_session): + def test_get_volume(self, mock_get_vim_info, mock_get_session): mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO mock_get_session.return_value = test_base.get_mock_session( - ["get", "post"], - { - "get" : {"content": MOCK_GET_VOLUMES_RESPONSE}, - "post": {"content": MOCK_POST_VOLUME_RESPONSE, "status_code": 202} - }) + ["get"], + {"get": {"content": self.MOCK_GET_RESOURCE_RESPONSE}}) - response = self.client.post( - self.url + "volumes", - MOCK_POST_VOLUME_REQUEST_EXISTING, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + response = self.client.get( + "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/fcca3cc49d5e42caae15459e27103efc/" + "volumes/uuid_1", {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) context = response.json() self.assertEquals(status.HTTP_200_OK, response.status_code) - self.assertIsNotNone(context['returnCode']) - self.assertEqual(0, context['returnCode']) - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_create_volume_unsuccessfully(self, mock_get_vim_info, mock_get_session): - - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - mock_get_session.return_value = test_base.get_mock_session( - ["get", "post"], - { - "get" : {"content": MOCK_GET_VOLUMES_RESPONSE}, - "post": {"content": MOCK_POST_VOLUME_RESPONSE, "status_code": 202} - }) - - response = self.client.post( - self.url + "volumes", - {}, HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) - - context = response.json() - self.assertIn('error', context) - self.assertEquals(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code) - - @mock.patch.object(VimDriverUtils, 'get_session') - @mock.patch.object(VimDriverUtils, 'get_vim_info') - def test_delete_volume(self, mock_get_vim_info, mock_get_session): - - mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO - mock_get_session.return_value = test_base.get_mock_session( - ["delete"], - {"delete" : {"content": None, "status_code": 204}}) - - response = self.client.delete( - self.url + "volumes/uuid_1", - HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + self.assertEquals(self.MOCK_GET_RESOURCE_RESPONSE['id'], context['id']) - self.assertEqual(status.HTTP_204_NO_CONTENT, response.status_code) - self.assertIsNone(response.data) + # Overridden method from test base to not make it run for current test case. + def test_get_resource_info(self): + pass |