Files
zaza-openstack-tests/unit_tests/test_zaza_controller.py
David Ames ea120ee0a5 Add controller module
The controller module allows us to run commands against the controller
including listing all models and getting the cloud configuration name.
2018-05-14 10:49:49 -07:00

81 lines
2.6 KiB
Python

import mock
import unit_tests.utils as ut_utils
import zaza.controller as controller
class TestController(ut_utils.BaseTestCase):
def setUp(self):
super(TestController, self).setUp()
async def _disconnect():
return
async def _connect():
return
async def _list_models():
return self.models
async def _add_model(model_name):
return self.model1
async def _destroy_model(model_name):
return
async def _get_cloud():
return self.cloud
# Cloud
self.cloud = "FakeCloud"
# Model
self.Model_mock = mock.MagicMock()
self.Model_mock.connect.side_effect = _connect
self.Model_mock.disconnect.side_effect = _disconnect
self.Model_mock.disconnect.side_effect = _disconnect
self.model1 = self.Model_mock
self.model2 = mock.MagicMock()
self.model1.info.name = "model1"
self.model2.info.name = "model2"
self.models = [self.model1.info.name, self.model2.info.name]
# Controller
self.Controller_mock = mock.MagicMock()
self.Controller_mock.connect.side_effect = _connect
self.Controller_mock.disconnect.side_effect = _disconnect
self.Controller_mock.add_model.side_effect = _add_model
self.Controller_mock.destroy_model.side_effect = _destroy_model
self.Controller_mock.list_models.side_effect = _list_models
self.Controller_mock.get_cloud.side_effect = _get_cloud
self.controller_name = "testcontroller"
self.Controller_mock.info.name = self.controller_name
self.patch_object(controller, 'Controller')
self.Controller.return_value = self.Controller_mock
def test_add_model(self):
self.assertEqual(controller.add_model(self.model1.info.name),
self.model1.info.name)
self.Controller_mock.add_model.assert_called_once_with(
self.model1.info.name)
self.model1.connect.assert_called_once()
def test_destroy_model(self):
controller.destroy_model(self.model1.info.name)
self.Controller_mock.destroy_model.assert_called_once_with(
self.model1.info.name)
def test_get_cloud(self):
self.assertEqual(
controller.get_cloud(),
self.cloud)
self.Controller_mock.get_cloud.assert_called_once()
def test_list_models(self):
self.assertEqual(
controller.list_models(),
self.models)
self.Controller_mock.list_models.assert_called_once()