def test_get_by_id_raises_exception_if_internal_error( self, mock_get_by_id): # Arrange mock_absent_id = ObjectId() mock_get_by_id.side_effect = exceptions.ModelError("Error.") # Act + Assert with self.assertRaises(exceptions.ModelError): provider_set_api.get_by_id(mock_absent_id)
def test_get_by_id_raises_exception_if_object_does_not_exist( self, mock_get_by_id): # Arrange mock_absent_id = ObjectId() mock_get_by_id.side_effect = exceptions.DoesNotExist("Error.") # Act + Assert with self.assertRaises(exceptions.DoesNotExist): provider_set_api.get_by_id(mock_absent_id)
def get(self, request, set_id): """Get a OaiProviderSet Args: request: HTTP request set_id: ObjectId Returns: - code: 200 content: Registry - code: 404 content: Object was not found - code: 500 content: Internal server error """ try: set_ = oai_provider_set_api.get_by_id(set_id) serializer = serializers.OaiProviderSetSerializer( set_, context={"request": request} ) return Response(serializer.data, status=status.HTTP_200_OK) except exceptions.DoesNotExist: content = OaiPmhMessage.get_message_labelled( "No Set found with the given id." ) return Response(content, status=status.HTTP_404_NOT_FOUND) except exceptions_oai.OAIAPIException as e: return e.response() except Exception as e: content = OaiPmhMessage.get_message_labelled(str(e)) return Response(content, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def delete(self, request, set_id): """Delete a OaiProviderSet Args: request: HTTP request set_id: ObjectId Returns: - code: 204 content: Deletion succeed - code: 404 content: Object was not found - code: 500 content: Internal server error """ try: set_ = oai_provider_set_api.get_by_id(set_id) oai_provider_set_api.delete(set_) return Response(status=status.HTTP_204_NO_CONTENT) except exceptions.DoesNotExist: content = OaiPmhMessage.get_message_labelled( "No Set found with the given id." ) return Response(content, status=status.HTTP_404_NOT_FOUND) except exceptions_oai.OAIAPIException as e: return e.response() except Exception as e: content = OaiPmhMessage.get_message_labelled(str(e)) return Response(content, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def patch(self, request, set_id): """ Update a OaiProviderSet Parameters: { "set_spec":"value", "set_name":"value", "templates_manager": ["id1", "id2"], "description":"value" } Args: request: HTTP request Returns: - code: 200 content: Success message - code: 400 content: Validation error - code: 404 content: Object was not found - code: 500 content: Internal server error """ try: set_ = oai_provider_set_api.get_by_id(set_id) # Build serializer serializer = serializers.OaiProviderSetSerializer( instance=set_, data=request.data) # Validate data serializer.is_valid(True) # Save data serializer.save() content = OaiPmhMessage.get_message_labelled( 'Set updated with success.') return Response(content, status=status.HTTP_200_OK) except ValidationError as validation_exception: content = OaiPmhMessage.get_message_labelled( validation_exception.detail) return Response(content, status=status.HTTP_400_BAD_REQUEST) except exceptions.DoesNotExist: content = OaiPmhMessage.get_message_labelled( 'No Set found with the given id.') return Response(content, status=status.HTTP_404_NOT_FOUND) except exceptions_oai.OAIAPIException as e: return e.response() except Exception as e: content = OaiPmhMessage.get_message_labelled(e.message) return Response(content, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def test_get_by_id_return_object(self, mock_get_by_id): # Arrange mock_oai_provider_set = _create_mock_oai_provider_set() mock_oai_provider_set.id = ObjectId() mock_get_by_id.return_value = mock_oai_provider_set # Act result = provider_set_api.get_by_id(mock_get_by_id.id) # Assert self.assertIsInstance(result, OaiProviderSet)