Пример #1
0
def test_serialize_search(serializer):
    """Test JSON serialize."""
    def fetcher(obj_uuid, data):
        assert obj_uuid in ['a', 'b']
        return PersistentIdentifier(pid_type='doi', pid_value=data['doi'])

    s = serializer(SimpleSchema)
    data = s.serialize_search(
        fetcher,
        dict(
            hits=dict(
                hits=[
                    {
                        '_source': dict(doi='10.1234/a'),
                        '_id': 'a',
                        '_version': 1
                    },
                    {
                        '_source': dict(doi='10.1234/b'),
                        '_id': 'b',
                        '_version': 1
                    },
                ],
                total=2,
            ),
            aggregations={},
        ))
    assert """<identifier identifierType="DOI">10.1234/a</identifier>""" \
        in data
    assert """<identifier identifierType="DOI">10.1234/b</identifier>""" \
        in data

    tree = s.serialize_oaipmh(
        PersistentIdentifier(pid_type='doi', pid_value='10.1234/b'), {
            '_source': dict(doi='10.1234/b'),
            '_id': 'b',
            '_version': 1
        })
    assert len(tree.xpath('/resource/identifier')) == 1

    tree = OAIDataCiteSerializer(
        serializer=s, datacentre='CERN').serialize_oaipmh(
            PersistentIdentifier(pid_type='doi', pid_value='10.1234/b'), {
                '_source': dict(doi='10.1234/b'),
                '_id': 'b',
                '_version': 1
            })
    assert len(tree.xpath('/oai_datacite/datacentreSymbol')) == 1
Пример #2
0
def test_serialize(serializer):
    pid = PersistentIdentifier(pid_type='recid', pid_value='2')
    record = Record({'doi': '10.1234/foo'})
    s = serializer(SimpleSchema)
    data = s.serialize(pid, record)

    assert """<identifier identifierType="DOI">10.1234/foo</identifier>""" \
        in data

    tree = s.serialize_oaipmh(pid, {'_source': record})
    assert len(tree.xpath('/resource/identifier')) == 1

    tree = OAIDataCiteSerializer(serializer=s,
                                 datacentre='CERN').serialize_oaipmh(
                                     pid, {'_source': record})
    assert len(tree.xpath('/oai_datacite/datacentreSymbol')) == 1
def test_serialize():
    """Test JSON serialize."""
    pid = PersistentIdentifier(pid_type='recid', pid_value='2')
    record = Record({'doi': '10.1234/foo'})
    data = DataCite31Serializer(SimpleSchema).serialize(pid, record)

    assert """<identifier identifierType="DOI">10.1234/foo</identifier>""" \
        in data

    s = DataCite31Serializer(SimpleSchema)
    tree = s.serialize_oaipmh(
        pid, {'_source': record})
    assert len(tree.xpath('/resource/identifier')) == 1

    tree = OAIDataCiteSerializer(v31=s, datacentre='CERN').serialize_oaipmh(
        pid,
        {'_source': record})
    assert len(tree.xpath('/oai_datacite/datacentreSymbol')) == 1
def test_serialize_search(serializer):
    """Test JSON serialize."""
    def fetcher(obj_uuid, data):
        assert obj_uuid in ['a', 'b']
        return PersistentIdentifier(pid_type='doi', pid_value=data['doi'])

    s = serializer(SimpleSchema)
    data = s.serialize_search(
        fetcher,
        dict(
            hits=dict(
                hits=[
                    {'_source': dict(doi='10.1234/a'), '_id': 'a',
                     '_version': 1},
                    {'_source': dict(doi='10.1234/b'), '_id': 'b',
                     '_version': 1},
                ],
                total=2,
            ),
            aggregations={},
        )
    )
    assert """<identifier identifierType="DOI">10.1234/a</identifier>""" \
        in data
    assert """<identifier identifierType="DOI">10.1234/b</identifier>""" \
        in data

    tree = s.serialize_oaipmh(
        PersistentIdentifier(pid_type='doi', pid_value='10.1234/b'),
        {'_source': dict(doi='10.1234/b'), '_id': 'b', '_version': 1})
    assert len(tree.xpath('/resource/identifier')) == 1

    tree = OAIDataCiteSerializer(serializer=s,
                                 datacentre='CERN').serialize_oaipmh(
        PersistentIdentifier(pid_type='doi', pid_value='10.1234/b'),
        {'_source': dict(doi='10.1234/b'), '_id': 'b', '_version': 1})
    assert len(tree.xpath('/oai_datacite/datacentreSymbol')) == 1
Пример #5
0
#: Deposit form JSON serialzier version 1.0.0
deposit_formjson_v1 = LegacyJSONSerializer(
    DepositFormSchemaV1, replace_refs=True)
#: Zenodo legacy deposit JSON serialzier version 1.0.0
deposit_legacyjson_v1 = DepositLegacyJSONSerializer(
    LegacyRecordSchemaV1, replace_refs=True)
#: MARCXML serializer version 1.0.0
marcxml_v1 = ZenodoMARCXMLSerializer(
    to_marc21, schema_class=RecordSchemaMARC21, replace_refs=True)
#: BibTeX serializer version 1.0.0
bibtex_v1 = BibTeXSerializer()
#: DataCite serializer
datacite_v31 = ZenodoDataCite31Serializer(DataCiteSchemaV1, replace_refs=True)
#: OAI DataCite serializer
oai_datacite = OAIDataCiteSerializer(
    serializer=datacite_v31,
    datacentre='CERN.ZENODO',
)
#: Dublin Core serializer
dc_v1 = ZenodoDublinCoreSerializer(DublinCoreV1, replace_refs=True)
#: CSL-JSON serializer
csl_v1 = JSONSerializer(RecordSchemaCSLJSON, replace_refs=True)
#: CSL Citation Formatter serializer
citeproc_v1 = CiteprocSerializer(csl_v1)
#: OpenAIRE JSON serializer
openaire_json_v1 = JSONSerializer(RecordSchemaOpenAIREJSON, replace_refs=True)
#: JSON-LD serializer
schemaorg_jsonld_v1 = ZenodoSchemaOrgSerializer(replace_refs=True)


# Records-REST serializers
# ========================