Beispiel #1
0
    def test_get_by_registry_id_raises_exception_if_object_does_not_exist(
            self, mock_get):
        # Arrange
        mock_absent_registry_id = str(ObjectId())

        mock_get.side_effect = exceptions.DoesNotExist("Error.")

        # Act + Assert
        with self.assertRaises(exceptions.DoesNotExist):
            oai_identify_api.get_by_registry_id(mock_absent_registry_id)
Beispiel #2
0
    def test_get_by_registry_id_raises_exception_if_internal_error(
            self, mock_get):
        # Arrange
        mock_absent_registry_id = str(ObjectId())

        mock_get.side_effect = exceptions.ModelError("Error.")

        # Act + Assert
        with self.assertRaises(exceptions.ModelError):
            oai_identify_api.get_by_registry_id(mock_absent_registry_id)
Beispiel #3
0
def view_registry(request):
    """ View a registry.
    Args:
        request:

    Returns:

    """
    try:
        registry_id = request.GET['id']
        template = loader.\
            get_template('core_oaipmh_harvester_app/admin/registries/list/modals/view_registry_table.html')
        context = {
            'registry':
            oai_registry_api.get_by_id(registry_id),
            'identify':
            oai_identify_api.get_by_registry_id(registry_id),
            'metadata_formats':
            oai_metadata_format_api.get_all_by_registry_id(registry_id),
            'sets':
            oai_set_api.get_all_by_registry_id(registry_id),
            'nb_records':
            oai_record_api.get_count_by_registry_id(registry_id),
        }
        return HttpResponse(json.dumps({'template': template.render(context)}),
                            content_type='application/javascript')
    except Exception, e:
        return HttpResponseBadRequest(e.message,
                                      content_type='application/javascript')
Beispiel #4
0
def _assert_identify(self, mock, registry_id):
    """ Assert identify
    Args:
        self:
        mock:
        registry_id:

    Returns:

    """
    obj_in_database = oai_identify_api.get_by_registry_id(registry_id)
    self.assertEquals(mock.admin_email, obj_in_database.admin_email)
    self.assertEquals(mock.repository_name, obj_in_database.repository_name)
    self.assertEquals(mock.deleted_record, obj_in_database.deleted_record)
    self.assertEquals(mock.delimiter, obj_in_database.delimiter)
    self.assertEquals(mock.description, obj_in_database.description)
    self.assertEquals(mock.granularity, obj_in_database.granularity)
    self.assertEquals(mock.oai_identifier, obj_in_database.oai_identifier)
    self.assertEquals(mock.protocol_version, obj_in_database.protocol_version)
    self.assertEquals(mock.repository_identifier,
                      obj_in_database.repository_identifier)
    self.assertEquals(mock.sample_identifier,
                      obj_in_database.sample_identifier)
    self.assertEquals(mock.scheme, obj_in_database.scheme)
    self.assertEquals(mock.raw, obj_in_database.raw)
def view_registry(request):
    """View a registry.
    Args:
        request:

    Returns:

    """
    try:
        registry_id = request.GET["id"]
        template = loader.get_template(
            "core_oaipmh_harvester_app/admin/registries/list/modals/view_registry_table.html"
        )
        context = {
            "registry":
            oai_registry_api.get_by_id(registry_id),
            "identify":
            oai_identify_api.get_by_registry_id(registry_id),
            "metadata_formats":
            oai_metadata_format_api.get_all_by_registry_id(registry_id),
            "sets":
            oai_set_api.get_all_by_registry_id(registry_id),
            "nb_records":
            oai_record_api.get_count_by_registry_id(registry_id, request.user),
        }
        return HttpResponse(
            json.dumps({"template": template.render(context)}),
            content_type="application/javascript",
        )
    except Exception as e:
        return HttpResponseBadRequest(escape(str(e)),
                                      content_type="application/javascript")
Beispiel #6
0
    def test_get_by_registry_id_return_object(self, mock_get):
        # Arrange
        mock_oai_identify = _create_mock_oai_identify()

        mock_get.return_value = mock_oai_identify

        # Act
        result = oai_identify_api.get_by_registry_id(
            mock_oai_identify.registry.id)

        # Assert
        self.assertIsInstance(result, OaiIdentify)
Beispiel #7
0
    def test_upsert_creates_if_does_not_exist(self):
        """ Test upsert create
        """
        # Arrange
        oai_identify = OaiPmhMock.mock_oai_identify()
        self.fixture.insert_registry(insert_related_collections=False)

        # Act
        oai_registry_api._upsert_identify_for_registry(oai_identify, self.fixture.registry)

        # Assert
        identify_in_database = oai_identify_api.get_by_registry_id(self.fixture.registry.id)
        self.assertEquals(identify_in_database, oai_identify)
Beispiel #8
0
    def test_upsert_updates_if_does_exist(self):
        """ Test upsert update
        """
        self.fixture.insert_registry()

        # Arrange
        repository_name = "update_test"
        self.fixture.oai_identify.repository_name = repository_name
        # Act
        oai_registry_api._upsert_identify_for_registry(self.fixture.oai_identify,
                                                       self.fixture.registry)

        # Assert
        identify_in_database = oai_identify_api.get_by_registry_id(self.fixture.registry.id)
        self.assertEquals(identify_in_database.repository_name, repository_name)
def _upsert_identify_for_registry(identify, registry):
    """ Adds or updates an identify object for a registry.

    Args:
        identify: OaiIdentify instance.
        registry: OaiRegistry instance.

    """
    try:
        identify_db = oai_identify_api.get_by_registry_id(registry.id)
        identify.id = identify_db.id
    except exceptions.DoesNotExist:
        pass

    identify.registry = registry
    api_oai_identify.upsert(identify)