def METHOD_NAME(self):
    super(TestController, self).METHOD_NAME()
    async def _disconnect():
        return
    async def _connect():
        return
    async def _list_models():
        return self.models
    async def _add_model(model_name, config=None):
        return self.model1
    async def _destroy_model(model_name, destroy_storage=False,
                             force=False, max_wait=None):
        if model_name in self.models:
            self.models.remove(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