def test_update_with_duplicated_name(self, mock_update_segment): test_data = {"segment": {"name": "segment1"}} mock_update_segment.side_effect = exception.FailoverSegmentExists( name="segment1") self.assertRaises(exc.HTTPConflict, self.controller.update, self.req, uuidsentinel.fake_segment, body=test_data)
def failover_segment_update(context, segment_uuid, values): segment = _failover_segment_get_by_uuid(context, segment_uuid) segment.update(values) try: segment.save(session=context.session) except db_exc.DBDuplicateEntry: raise exception.FailoverSegmentExists(name=values.get('name')) return _failover_segment_get_by_uuid(context, segment.uuid)
def failover_segment_create(context, values): segment = models.FailoverSegment() segment.update(values) try: segment.save(session=context.session) except db_exc.DBDuplicateEntry: raise exception.FailoverSegmentExists(name=segment.name) return _failover_segment_get_by_uuid(context, segment.uuid)
def test_save_failover_segment_already_exists(self, mock_segment_update): mock_segment_update.side_effect = (exception.FailoverSegmentExists( name="foo-segment")) segment_object = segment.FailoverSegment(context=self.context) segment_object.name = "foo-segment" segment_object.id = 123 segment_object.uuid = uuidsentinel.fake_segment self.assertRaises(exception.FailoverSegmentExists, segment_object.save)
def test_create_with_duplicate_segment_name(self, mock_create): body = { "segment": { "name": "segment1", "service_type": "COMPUTE", "recovery_method": "auto", "description": "failover_segment for compute" } } mock_create.side_effect = (exception.FailoverSegmentExists( name='segment1')) self.assertRaises(exc.HTTPConflict, self.controller.create, self.req, body=body)
def test_save_failover_segment_already_exists(self, mock_segment_update, mock_notify_about_segment_api): mock_segment_update.side_effect = ( exception.FailoverSegmentExists(name="foo-segment")) segment_object = segment.FailoverSegment(context=self.context) segment_object.name = "foo-segment" segment_object.id = 123 segment_object.uuid = uuidsentinel.fake_segment self.assertRaises(exception.FailoverSegmentExists, segment_object.save) action = fields.EventNotificationAction.SEGMENT_UPDATE phase_start = fields.EventNotificationPhase.START notify_calls = [ mock.call(self.context, segment_object, action=action, phase=phase_start)] mock_notify_about_segment_api.assert_has_calls(notify_calls)