Merge "Add missing unit tests for VMwareAPISession"

This commit is contained in:
Jenkins 2014-04-01 20:57:55 +00:00 committed by Gerrit Code Review
commit c3942d27b2

View File

@ -22,6 +22,7 @@ import mock
from oslo.vmware import api
from oslo.vmware import exceptions
from oslo.vmware import pbm
from oslo.vmware import vim_util
from tests import base
@ -122,6 +123,41 @@ class VMwareAPISessionTest(base.TestCase):
host=VMwareAPISessionTest.SERVER_IP,
wsdl_loc=api_session._vim_wsdl_loc)
@mock.patch.object(pbm, 'PBMClient')
def test_pbm(self, pbm_client_mock):
api_session = self._create_api_session(True)
api_session._pbm_wsdl_loc = mock.Mock()
pbm = mock.Mock()
pbm_client_mock.return_value = pbm
cookie = mock.Mock()
api_session._get_session_cookie = mock.Mock(return_value=cookie)
self.assertEqual(pbm, api_session.pbm)
pbm.set_cookie.assert_called_once_with(cookie)
def test_get_session_cookie(self):
api_session = self._create_api_session(False)
vim_obj = api_session.vim
cookie_value = 'xyz'
cookie = mock.Mock()
cookie.name = 'vmware_soap_session'
cookie.value = cookie_value
vim_obj.client.options.transport.cookiejar = [cookie]
self.assertEqual(cookie_value, api_session._get_session_cookie())
def test_get_session_cookie_with_no_cookie(self):
api_session = self._create_api_session(False)
vim_obj = api_session.vim
cookie = mock.Mock()
cookie.name = 'cookie'
cookie.value = 'xyz'
vim_obj.client.options.transport.cookiejar = [cookie]
self.assertIsNone(api_session._get_session_cookie())
def test_create_session(self):
session = mock.Mock()
session.key = "12345"
@ -129,6 +165,11 @@ class VMwareAPISessionTest(base.TestCase):
vim_obj = api_session.vim
vim_obj.Login.return_value = session
pbm = mock.Mock()
api_session._pbm = pbm
cookie = mock.Mock()
api_session._get_session_cookie = mock.Mock(return_value=cookie)
api_session._create_session()
session_manager = vim_obj.service_content.sessionManager
vim_obj.Login.assert_called_once_with(
@ -136,6 +177,7 @@ class VMwareAPISessionTest(base.TestCase):
password=VMwareAPISessionTest.PASSWORD)
self.assertFalse(vim_obj.TerminateSession.called)
self.assertEqual(session.key, api_session._session_id)
pbm.set_cookie.assert_called_once_with(cookie)
def test_create_session_with_existing_session(self):
old_session_key = '12345'
@ -213,6 +255,32 @@ class VMwareAPISessionTest(base.TestCase):
sessionID=api_session._session_id,
userName=api_session._session_username)
def test_invoke_api_with_stale_session(self):
api_session = self._create_api_session(True)
api_session._create_session = mock.Mock()
vim_obj = api_session.vim
vim_obj.SessionIsActive.return_value = False
result = mock.Mock()
responses = [exceptions.VimFaultException(
[exceptions.NOT_AUTHENTICATED], None), result]
def api(*args, **kwargs):
response = responses.pop(0)
if isinstance(response, Exception):
raise response
return response
module = mock.Mock()
module.api = api
with mock.patch.object(greenthread, 'sleep'):
ret = api_session.invoke_api(module, 'api')
self.assertEqual(result, ret)
vim_obj.SessionIsActive.assert_called_once_with(
vim_obj.service_content.sessionManager,
sessionID=api_session._session_id,
userName=api_session._session_username)
api_session._create_session.assert_called_once_with()
def test_wait_for_task(self):
api_session = self._create_api_session(True)
task_info_list = [('queued', 0), ('running', 40), ('success', 100)]