def test_create_failure(self, mock_conn_params): _ctx = self._prepare_ctx() vars = {"var1": "a"} tables = {"tab1": "b"} properties = {"prop1": "c"} ref_host = "local1" expected_error =\ 'Failed creating service \'{0}\' for template \'{1}\''\ .format(_ctx._properties.get('service_name'), _ctx._properties.get('template_name')) with patch("iworkflow_sdk.iworkflow.IWorkflowService.create_service", MagicMock(side_effect=Exception)) as create_method: from iworkflow_plugin import service # then with self.assertRaisesRegexp(NonRecoverableError, expected_error): # when service.create_service(vars=vars, tables=tables, properties=properties, reference_hostname=ref_host, retry_interval=10, ctx=_ctx) self.assertTrue(create_method.called) self.assertTrue(mock_conn_params.called)
def test_create_no_params(self, mock_conn_params): _ctx = MockCloudifyContext(node_id="test_id", node_name="test_name", deployment_id="test_name", properties={}) _ctx._node.type = 'cloudify.iworkflow.Service' current_ctx.set(_ctx) vars = {"var1": "a"} tables = {"tab1": "b"} properties = {"prop1": "c"} ref_host = "local1" expected_error = 'Creation failed: ' \ 'Tenant, service, template must be set.' with self.assertRaisesRegexp(NonRecoverableError, expected_error): from iworkflow_plugin import service # when service.create_service(vars=vars, tables=tables, properties=properties, reference_hostname=ref_host, retry_interval=10, ctx=_ctx) self.assertTrue(mock_conn_params.called)
def test_poll_retry_no_create(self, mock_conn_params): # given _ctx = self._prepare_ctx(1) vars = {"var1": "a"} tables = {"tab1": "b"} properties = {"prop1": "c"} ref_host = "local1" with patch("iworkflow_sdk.iworkflow.IWorkflowService.create_service", MagicMock(return_value=None)) as create_method: with patch( "iworkflow_sdk.iworkflow.IWorkflowService.poll_service", MagicMock( side_effect=exceptions.IWorkflowNotFoundException)) \ as poll_method: with patch("cloudify.ctx.operation.retry", MagicMock(return_value=None)) as retry_method: # when from iworkflow_plugin import service service.create_service(vars=vars, tables=tables, properties=properties, reference_hostname=ref_host, retry_interval=10, ctx=_ctx) # then self.assertFalse(create_method.called) self.assertTrue(poll_method.called) self.assertTrue(retry_method.called) self.assertTrue(mock_conn_params.called)
def test_create_success(self, mock_conn_params): _ctx = self._prepare_ctx() vars = {"var1": "a"} tables = {"tab1": "b"} properties = {"prop1": "c"} ref_host = "local1" with patch("iworkflow_sdk.iworkflow.IWorkflowService.create_service", MagicMock(return_value=None)) as create_method: with patch("iworkflow_sdk.iworkflow.IWorkflowService.poll_service", MagicMock(return_value=None)) as poll_method: from iworkflow_plugin import service service.create_service(vars=vars, tables=tables, properties=properties, reference_hostname=ref_host, retry_interval=10, ctx=_ctx) self.assertTrue(create_method.called) self.assertTrue(poll_method.called) self.assertTrue(mock_conn_params.called)