def test_duplicate_obj_code(self): exc = exceptions.DBDuplicateEntryError() self.assertIn("Database object already exists", six.text_type(exc)) self.assertEqual( 409, exc.http_code, )
def create_cron_trigger(values, session=None): cron_trigger = models.CronTrigger() cron_trigger.update(values) try: cron_trigger.save(session=session) except db_exc.DBDuplicateEntry: raise exc.DBDuplicateEntryError( "Duplicate entry for cron trigger ['name', 'project_id']: " "{}, {}".format(cron_trigger.name, cron_trigger.project_id)) # TODO(nmakhotkin): Remove this 'except' after fixing # https://bugs.launchpad.net/oslo.db/+bug/1458583. except db_exc.DBError as e: raise exc.DBDuplicateEntryError( "Duplicate entry for cron trigger: %s" % e) return cron_trigger
def create_event_trigger(values, session=None): event_trigger = models.EventTrigger() event_trigger.update(values) try: event_trigger.save(session=session) except db_exc.DBDuplicateEntry as e: raise exc.DBDuplicateEntryError( "Duplicate entry for event trigger %s: %s" % (event_trigger.id, e.columns)) # TODO(nmakhotkin): Remove this 'except' after fixing # https://bugs.launchpad.net/oslo.db/+bug/1458583. except db_exc.DBError as e: raise exc.DBDuplicateEntryError( "Duplicate entry for event trigger: %s" % e) return event_trigger
def create_delayed_call(values, session=None): delayed_call = models.DelayedCall() delayed_call.update(values.copy()) try: delayed_call.save(session) except db_exc.DBDuplicateEntry as e: raise exc.DBDuplicateEntryError("Duplicate entry for DelayedCall: %s" % e.columns) return delayed_call
def create_environment(values, session=None): env = models.Environment() env.update(values) try: env.save(session=session) except db_exc.DBDuplicateEntry as e: raise exc.DBDuplicateEntryError("Duplicate entry for Environment: %s" % e.columns) return env
def create_workflow_execution(values, session=None): wf_ex = models.WorkflowExecution() wf_ex.update(values.copy()) try: wf_ex.save(session=session) except db_exc.DBDuplicateEntry as e: raise exc.DBDuplicateEntryError( "Duplicate entry for WorkflowExecution: %s" % e.columns) return wf_ex
def create_task_execution(values, session=None): task_ex = models.TaskExecution() task_ex.update(values) try: task_ex.save(session=session) except db_exc.DBDuplicateEntry as e: raise exc.DBDuplicateEntryError( "Duplicate entry for TaskExecution: %s" % e.columns) return task_ex
def create_action_definition(values, session=None): a_def = models.ActionDefinition() a_def.update(values) try: a_def.save(session=session) except db_exc.DBDuplicateEntry as e: raise exc.DBDuplicateEntryError("Duplicate entry for action %s: %s" % (a_def.name, e.columns)) return a_def
def create_action_execution(values, session=None): a_ex = models.ActionExecution() a_ex.update(values.copy()) try: a_ex.save(session=session) except db_exc.DBDuplicateEntry as e: raise exc.DBDuplicateEntryError( "Duplicate entry for ActionExecution: %s" % e.columns) return a_ex
def create_scheduled_job(values, session=None): job = models.ScheduledJob() job.update(values.copy()) try: job.save(session) except db_exc.DBDuplicateEntry as e: raise exc.DBDuplicateEntryError( "Duplicate entry for ScheduledJob ID: {}".format(e.value)) return job
def create_workbook(values, session=None): wb = models.Workbook() wb.update(values.copy()) try: wb.save(session=session) except db_exc.DBDuplicateEntry as e: raise exc.DBDuplicateEntryError( "Duplicate entry for WorkbookDefinition: %s" % e.columns) return wb
def create_resource_member(values, session=None): res_member = models.ResourceMember() res_member.update(values.copy()) try: res_member.save(session=session) except db_exc.DBDuplicateEntry as e: raise exc.DBDuplicateEntryError( "Duplicate entry for ResourceMember: %s" % e.columns) return res_member
def create_workbook(values, session=None): wb = models.Workbook() wb.update(values.copy()) try: wb.save(session=session) except db_exc.DBDuplicateEntry: raise exc.DBDuplicateEntryError( "Duplicate entry for WorkbookDefinition ['name', 'project_id']: " "{}, {}".format(wb.name, wb.project_id)) return wb
def create_environment(values, session=None): env = models.Environment() env.update(values) try: env.save(session=session) except db_exc.DBDuplicateEntry: raise exc.DBDuplicateEntryError( "Duplicate entry for Environment ['name', 'project_id']:" " {}, {}".format(env.name, env.project_id)) return env
def create_workflow_execution(values, session=None): wf_ex = models.WorkflowExecution() wf_ex.update(values.copy()) try: wf_ex.save(session=session) except db_exc.DBDuplicateEntry as e: raise exc.DBDuplicateEntryError( "Duplicate entry for WorkflowExecution with ID: {value} ".format( value=e.value)) return wf_ex
def create_action_definition(values, session=None): a_def = models.ActionDefinition() a_def.update(values) try: a_def.save(session=session) except db_exc.DBDuplicateEntry: raise exc.DBDuplicateEntryError( "Duplicate entry for Action ['name', 'project_id']:" " {}, {}".format(a_def.name, a_def.project_id)) return a_def
def create_workflow_definition(values, session=None): wf_def = models.WorkflowDefinition() wf_def.update(values.copy()) try: wf_def.save(session=session) except db_exc.DBDuplicateEntry: raise exc.DBDuplicateEntryError( "Duplicate entry for WorkflowDefinition ['name', 'namespace'," " 'project_id']: {}, {}, {}".format(wf_def.name, wf_def.namespace, wf_def.project_id)) return wf_def
def create_event_trigger(values, session=None): event_trigger = models.EventTrigger() event_trigger.update(values) try: event_trigger.save(session=session) except db_exc.DBDuplicateEntry: raise exc.DBDuplicateEntryError( "Duplicate entry for EventTrigger ['exchange', 'topic'," " 'event', 'workflow_id', 'project_id']:" " {}, {}, {}, {}, {}".format(event_trigger.exchange, event_trigger.topic, event_trigger.event, event_trigger.workflow_id, event_trigger.project_id)) # TODO(nmakhotkin): Remove this 'except' after fixing # https://bugs.launchpad.net/oslo.db/+bug/1458583. except db_exc.DBError as e: raise exc.DBDuplicateEntryError( "Duplicate entry for event trigger: %s" % e) return event_trigger
def create_resource_member(values, session=None): res_member = models.ResourceMember() res_member.update(values.copy()) try: res_member.save(session=session) except db_exc.DBDuplicateEntry: raise exc.DBDuplicateEntryError( "Duplicate entry for ResourceMember ['resource_id'," " 'resource_type', 'member_id']: {}, {}, " "{}".format(res_member.resource_id, res_member.resource_type, res_member.member_id)) return res_member
workflows: flow: type: direct tasks: task1: action: std.echo output=<% * %> """ MOCK_WORKBOOK = mock.MagicMock(return_value=WORKBOOK_DB) MOCK_WB_WITH_NAMESPACE = mock.MagicMock(return_value=WB_DB_WITH_NAMESPACE) MOCK_WORKBOOKS = mock.MagicMock(return_value=[WORKBOOK_DB]) MOCK_UPDATED_WORKBOOK = mock.MagicMock(return_value=UPDATED_WORKBOOK_DB) MOCK_DELETE = mock.MagicMock(return_value=None) MOCK_EMPTY = mock.MagicMock(return_value=[]) MOCK_NOT_FOUND = mock.MagicMock(side_effect=exc.DBEntityNotFoundError()) MOCK_DUPLICATE = mock.MagicMock(side_effect=exc.DBDuplicateEntryError()) class TestWorkbooksController(base.APITest): @mock.patch.object(db_api, "get_workbook", MOCK_WORKBOOK) def test_get(self): resp = self.app.get('/v2/workbooks/123') self.assertEqual(200, resp.status_int) self.assertDictEqual(WORKBOOK, resp.json) @mock.patch.object(db_api, "get_workbook", MOCK_WB_WITH_NAMESPACE) def test_get_with_namespace(self): resp = self.app.get('/v2/workbooks/123?namespace=xyz') self.assertEqual(200, resp.status_int)