3d8ee7eb63
oslo.config.CONF.reset is added to cleanup in BaseTestCase, so it does not need to be done by individual test cases. Change-Id: I5fced5c2d480e78e5bb7cc150f0b653313884456 Closes-Bug: #1291144
138 lines
5.3 KiB
Python
138 lines
5.3 KiB
Python
# Copyright 2014 IBM Corp.
|
|
#
|
|
# All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
# @author: Mohammad Banikazemi, IBM Corp
|
|
|
|
|
|
import mock
|
|
|
|
from neutron.openstack.common import uuidutils
|
|
from neutron.plugins.ibm.common import constants
|
|
from neutron.plugins.ibm import sdnve_api
|
|
from neutron.tests import base
|
|
|
|
RESOURCE_PATH = {
|
|
'network': "ln/networks/",
|
|
}
|
|
RESOURCE = 'network'
|
|
HTTP_OK = 200
|
|
TENANT_ID = uuidutils.generate_uuid()
|
|
|
|
|
|
class TestSdnveApi(base.BaseTestCase):
|
|
|
|
def setUp(self):
|
|
super(TestSdnveApi, self).setUp()
|
|
|
|
class MockKeystoneClient(object):
|
|
def __init__(self, **kwargs):
|
|
pass
|
|
|
|
def get_tenant_name(self, id):
|
|
return 'test tenant name'
|
|
|
|
with mock.patch('neutron.plugins.ibm.sdnve_api.'
|
|
'KeystoneClient',
|
|
new=MockKeystoneClient):
|
|
self.api = sdnve_api.Client()
|
|
|
|
def mock_do_request(self, method, url, body=None, headers=None,
|
|
params=None, connection_type=None):
|
|
return (HTTP_OK, url)
|
|
|
|
def mock_do_request_tenant(self, method, url, body=None, headers=None,
|
|
params=None, connection_type=None):
|
|
return (HTTP_OK, {'id': TENANT_ID,
|
|
'network_type': constants.TENANT_TYPE_OF})
|
|
|
|
def mock_do_request_no_tenant(self, method, url, body=None, headers=None,
|
|
params=None, connection_type=None):
|
|
return (None, None)
|
|
|
|
def mock_process_request(self, body):
|
|
return body
|
|
|
|
def test_sdnve_api_list(self):
|
|
with mock.patch('neutron.plugins.ibm.sdnve_api.'
|
|
'Client.do_request',
|
|
new=self.mock_do_request):
|
|
result = self.api.sdnve_list(RESOURCE)
|
|
self.assertEqual(result, (HTTP_OK, RESOURCE_PATH[RESOURCE]))
|
|
|
|
def test_sdnve_api_show(self):
|
|
with mock.patch('neutron.plugins.ibm.sdnve_api.'
|
|
'Client.do_request',
|
|
new=self.mock_do_request):
|
|
result = self.api.sdnve_show(RESOURCE, TENANT_ID)
|
|
self.assertEqual(result,
|
|
(HTTP_OK, RESOURCE_PATH[RESOURCE] + TENANT_ID))
|
|
|
|
def test_sdnve_api_create(self):
|
|
with mock.patch('neutron.plugins.ibm.sdnve_api.'
|
|
'Client.do_request',
|
|
new=self.mock_do_request):
|
|
with mock.patch('neutron.plugins.ibm.sdnve_api.'
|
|
'Client.process_request',
|
|
new=self.mock_process_request):
|
|
result = self.api.sdnve_create(RESOURCE, '')
|
|
self.assertEqual(result, (HTTP_OK, RESOURCE_PATH[RESOURCE]))
|
|
|
|
def test_sdnve_api_update(self):
|
|
with mock.patch('neutron.plugins.ibm.sdnve_api.'
|
|
'Client.do_request',
|
|
new=self.mock_do_request):
|
|
with mock.patch('neutron.plugins.ibm.sdnve_api.'
|
|
'Client.process_request',
|
|
new=self.mock_process_request):
|
|
result = self.api.sdnve_update(RESOURCE, TENANT_ID, '')
|
|
self.assertEqual(result,
|
|
(HTTP_OK,
|
|
RESOURCE_PATH[RESOURCE] + TENANT_ID))
|
|
|
|
def test_sdnve_api_delete(self):
|
|
with mock.patch('neutron.plugins.ibm.sdnve_api.'
|
|
'Client.do_request',
|
|
new=self.mock_do_request):
|
|
result = self.api.sdnve_delete(RESOURCE, TENANT_ID)
|
|
self.assertEqual(result,
|
|
(HTTP_OK, RESOURCE_PATH[RESOURCE] + TENANT_ID))
|
|
|
|
def test_sdnve_get_tenant_by_id(self):
|
|
with mock.patch('neutron.plugins.ibm.sdnve_api.'
|
|
'Client.do_request',
|
|
new=self.mock_do_request_tenant):
|
|
id = TENANT_ID
|
|
result = self.api.sdnve_get_tenant_byid(id)
|
|
self.assertEqual(result,
|
|
(TENANT_ID, constants.TENANT_TYPE_OF))
|
|
|
|
def test_sdnve_check_and_create_tenant(self):
|
|
with mock.patch('neutron.plugins.ibm.sdnve_api.'
|
|
'Client.do_request',
|
|
new=self.mock_do_request_tenant):
|
|
id = TENANT_ID
|
|
result = self.api.sdnve_check_and_create_tenant(id)
|
|
self.assertEqual(result, TENANT_ID)
|
|
|
|
def test_sdnve_check_and_create_tenant_fail(self):
|
|
with mock.patch('neutron.plugins.ibm.sdnve_api.'
|
|
'Client.do_request',
|
|
new=self.mock_do_request_no_tenant):
|
|
id = TENANT_ID
|
|
result = self.api.sdnve_check_and_create_tenant(
|
|
id, constants.TENANT_TYPE_OF)
|
|
self.assertIsNone(result)
|