示例#1
0
    def test_init_schema_info_raises_api_error_if_bad_status_code(self, mock_get):
        # Arrange
        mock_oai_harvester_metadata_format = _create_mock_oai_harvester_metadata_format()
        text = '<test>Hello</test>'

        mock_get.return_value.status_code = status.HTTP_500_INTERNAL_SERVER_ERROR
        mock_get.return_value.text = text

        # Act + Assert
        with self.assertRaises(Exception):
            harvester_metadata_format_api.init_schema_info(mock_oai_harvester_metadata_format)
def _upsert_metadata_format_for_registry(metadata_format, registry):
    """ Adds or updates an OaiHarvesterMetadataFormat object for a registry.

    Args:
        metadata_format: OaiHarvesterMetadataFormat instance.
        registry: OaiRegistry instance.

    """
    try:
        metadata_format_to_save = oai_harvester_metadata_format_api.\
            get_by_metadata_prefix_and_registry_id(metadata_format.metadata_prefix, registry.id)
        # Update current OaiHarvesterMetadataFormat
        metadata_format_to_save.metadata_namespace = metadata_format.metadata_namespace
        metadata_format_to_save.schema = metadata_format.schema
        metadata_format_to_save.raw = metadata_format.raw
    except exceptions.DoesNotExist:
        # Creation OaiHarvesterMetadataFormat
        metadata_format_to_save = metadata_format
        metadata_format_to_save.registry = registry
        metadata_format_to_save.harvest = True

    try:
        metadata_format_to_save = oai_harvester_metadata_format_api.init_schema_info(
            metadata_format_to_save)
        oai_harvester_metadata_format_api.upsert(metadata_format_to_save)
    except exceptions.ApiError as e:
        # Log exception. Do not save the metadata format.
        pass
    def test_init_schema_info_raises_api_error_if_bad_status_code(
            self, mock_get):
        # Arrange
        mock_user = create_mock_user("1", is_superuser=True)
        mock_request = create_mock_request(user=mock_user)
        mock_oai_harvester_metadata_format = (
            _create_mock_oai_harvester_metadata_format())
        text = "<test>Hello</test>"

        mock_get.return_value.status_code = status.HTTP_500_INTERNAL_SERVER_ERROR
        mock_get.return_value.text = text

        # Act + Assert
        with self.assertRaises(Exception):
            harvester_metadata_format_api.init_schema_info(
                mock_oai_harvester_metadata_format, request=mock_request)
def _upsert_metadata_format_for_registry(metadata_format,
                                         registry,
                                         request=None):
    """Adds or updates an OaiHarvesterMetadataFormat object for a registry.

    Args:
        metadata_format: OaiHarvesterMetadataFormat instance.
        registry: OaiRegistry instance.
        request:

    """
    try:
        metadata_format_to_save = (oai_harvester_metadata_format_api.
                                   get_by_metadata_prefix_and_registry_id(
                                       metadata_format.metadata_prefix,
                                       registry.id))
        # Update current OaiHarvesterMetadataFormat
        metadata_format_to_save.metadata_namespace = metadata_format.metadata_namespace
        metadata_format_to_save.schema = metadata_format.schema
        metadata_format_to_save.raw = metadata_format.raw
    except exceptions.DoesNotExist:
        # Creation OaiHarvesterMetadataFormat
        metadata_format_to_save = metadata_format
        metadata_format_to_save.registry = registry
        metadata_format_to_save.harvest = True

    try:
        metadata_format_to_save = oai_harvester_metadata_format_api.init_schema_info(
            metadata_format_to_save, request=request)
        oai_harvester_metadata_format_api.upsert(metadata_format_to_save)
    except exceptions.ApiError as e:
        # Log exception. Do not save the metadata format.
        logger.warning(
            "_upsert_metadata_format_for_registry threw an exception: {0}".
            format(str(e)))
示例#5
0
    def test_init_schema_info_return_object(self, mock_get, mock_get_all_by_hash):
        # Arrange
        mock_oai_harvester_metadata_format = _create_mock_oai_harvester_metadata_format()

        mock_get.return_value.status_code = status.HTTP_200_OK
        mock_get.return_value.text = '<test>Hello</test>'
        mock_get_all_by_hash.return_value = [Template()]

        # Act
        result = harvester_metadata_format_api.init_schema_info(mock_oai_harvester_metadata_format)

        # Assert
        self.assertIsInstance(result, OaiHarvesterMetadataFormat)
示例#6
0
    def test_init_schema_info_return_object_with_template(self, mock_get, mock_get_all_by_hash):
        # Arrange
        mock_oai_harvester_metadata_format = _create_mock_oai_harvester_metadata_format()
        list_template = [Template()]

        mock_get.return_value.status_code = status.HTTP_200_OK
        mock_get.return_value.text = '<test>Hello</test>'
        mock_get_all_by_hash.return_value = list_template

        # Act
        result = harvester_metadata_format_api.init_schema_info(mock_oai_harvester_metadata_format)

        # Assert
        self.assertEquals(result.template, list_template[0])
示例#7
0
    def test_init_schema_info_return_object_with_hash(self, mock_get, mock_get_all_by_hash, mock_get_hash):
        # Arrange
        mock_oai_harvester_metadata_format = _create_mock_oai_harvester_metadata_format()
        hash_ = 'eaedb2e2d29fffeee628a51284a237e057a38a28'

        mock_get_hash.return_value = hash_
        mock_get.return_value.status_code = status.HTTP_200_OK
        mock_get.return_value.text = '<test>Hello</test>'
        mock_get_all_by_hash.return_value = [Template()]

        # Act
        result = harvester_metadata_format_api.init_schema_info(mock_oai_harvester_metadata_format)

        # Assert
        self.assertEquals(result.hash, hash_)
    def test_init_schema_info_return_object(self, mock_get,
                                            mock_get_all_by_hash):
        # Arrange
        mock_user = create_mock_user("1", is_superuser=True)
        mock_request = create_mock_request(user=mock_user)
        mock_oai_harvester_metadata_format = (
            _create_mock_oai_harvester_metadata_format())

        mock_get.return_value.status_code = status.HTTP_200_OK
        mock_get.return_value.text = "<test>Hello</test>"
        mock_get_all_by_hash.return_value = [Template()]

        # Act
        result = harvester_metadata_format_api.init_schema_info(
            mock_oai_harvester_metadata_format, request=mock_request)

        # Assert
        self.assertIsInstance(result, OaiHarvesterMetadataFormat)
    def test_init_schema_info_return_object_with_template(
            self, mock_get, mock_get_all_by_hash):
        # Arrange
        mock_user = create_mock_user("1", is_superuser=True)
        mock_request = create_mock_request(user=mock_user)
        mock_oai_harvester_metadata_format = (
            _create_mock_oai_harvester_metadata_format())
        list_template = [Template()]

        mock_get.return_value.status_code = status.HTTP_200_OK
        mock_get.return_value.text = "<test>Hello</test>"
        mock_get_all_by_hash.return_value = list_template

        # Act
        result = harvester_metadata_format_api.init_schema_info(
            mock_oai_harvester_metadata_format, request=mock_request)

        # Assert
        self.assertEquals(result.template, list_template[0])
    def test_init_schema_info_return_object_with_hash(self, mock_get,
                                                      mock_get_all_by_hash,
                                                      mock_get_hash):
        # Arrange
        mock_user = create_mock_user("1", is_superuser=True)
        mock_request = create_mock_request(user=mock_user)
        mock_oai_harvester_metadata_format = (
            _create_mock_oai_harvester_metadata_format())
        hash_ = "eaedb2e2d29fffeee628a51284a237e057a38a28"

        mock_get_hash.return_value = hash_
        mock_get.return_value.status_code = status.HTTP_200_OK
        mock_get.return_value.text = "<test>Hello</test>"
        mock_get_all_by_hash.return_value = [Template()]

        # Act
        result = harvester_metadata_format_api.init_schema_info(
            mock_oai_harvester_metadata_format, request=mock_request)

        # Assert
        self.assertEquals(result.hash, hash_)