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
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
#: 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 # ========================