The controller module allows us to run commands against the controller including listing all models and getting the cloud configuration name.
81 lines
2.6 KiB
Python
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()
|