def test_types(app, db, minimal_record_model, recid_pid): """"Test contributors.""" minimal_record_model.update({ 'resource_type': {'type': 'publication', 'subtype': 'conferencepaper'} }) obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['types'] == [ 'info:eu-repo/semantics/conferencePaper', 'publication-conferencepaper' ] # If the record is not in 'c1', OpenAIRE subtype should not be serialized minimal_record_model.update({ 'resource_type': {'type': 'software', 'openaire_subtype': 'foo:t1'} }) obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['types'] == [ 'info:eu-repo/semantics/other', 'software' ] # Add 'c1' to communities. 'foo:t1' should be serialized as a type minimal_record_model.update({'communities': ['c1']}) obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['types'] == [ 'info:eu-repo/semantics/other', 'software', 'openaire:foo:t1', ]
def test_identifiers(minimal_record, recid_pid): """"Test identifiers.""" minimal_record['doi'] = '10.1234/foo' obj = dc_v1.transform_record(recid_pid, Record(minimal_record)) assert obj['identifiers'] == \ ['10.1234/foo', 'https://zenodo.org/record/123'] minimal_record['_oai'] = {'id': 'oai:zenodo.org:123'} obj = dc_v1.transform_record(recid_pid, Record(minimal_record)) assert 'oai:zenodo.org:123' in obj['identifiers']
def test_identifiers(minimal_record, recid_pid): """"Test identifiers.""" minimal_record['doi'] = '10.1234/foo' obj = dc_v1.transform_record(recid_pid, Record(minimal_record)) assert obj['identifiers'] == \ ['10.1234/foo', 'https://zenodo.org/record/123'] minimal_record['_oai'] = {'id': 'oai:zenodo.org:123'} obj = dc_v1.transform_record(recid_pid, Record(minimal_record)) assert 'oai:zenodo.org:123' in obj['identifiers']
def test_identifiers(app, db, minimal_record_model, recid_pid): """"Test identifiers.""" minimal_record_model['doi'] = '10.1234/foo' obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['identifiers'] == \ ['https://zenodo.org/record/123', '10.1234/foo'] minimal_record_model['_oai'] = {'id': 'oai:zenodo.org:123'} obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert 'oai:zenodo.org:123' in obj['identifiers']
def test_description(app, db, minimal_record_model, recid_pid): """Test description.""" minimal_record_model['description'] = \ "<p><b>Foo Bar</b></p><em><p> Foo&Bar</p></em> '" \ "This' is <i><it><i>" obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['descriptions'] == ["Foo Bar Foo&Bar 'This' is <it>"] minimal_record_model['description'] = '' obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['descriptions'] == []
def test_publishers(app, db, minimal_record_model, recid_pid): """Test publishers.""" minimal_record_model.update({ 'part_of': {'publisher': 'Zenodo'}, }) obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['publishers'] == ['Zenodo'] minimal_record_model.update({ 'imprint': {'publisher': 'Invenio'}, 'part_of': {'publisher': 'Zenodo'}, }) obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['publishers'] == ['Invenio']
def test_rights(app, db, minimal_record_model, recid_pid): """Test rights.""" minimal_record_model.update({ 'license': {'url': 'http://creativecommons.org/licenses/by/4.0/'} }) obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert 'http://creativecommons.org/licenses/by/4.0/' in obj['rights']
def test_contributors(app, db, minimal_record_model, recid_pid): """"Test contributors.""" minimal_record_model.update({ 'contributors': [{'name': 'Smith, John'}] }) obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['contributors'] == ['Smith, John']
def test_types(app, db, minimal_record_model, recid_pid): """"Test contributors.""" minimal_record_model.update({ 'resource_type': {'type': 'publication', 'subtype': 'conferencepaper'} }) obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['types'] == ['info:eu-repo/semantics/conferencePaper']
def test_languages(app, db, minimal_record_model, recid_pid): """"Test identifiers.""" minimal_record_model['language'] = 'eng' obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['languages'] == [ 'eng', ]
def test_contributors(minimal_record, recid_pid): """"Test contributors.""" minimal_record.update({ 'contributors': [{'name': 'Smith, John'}] }) obj = dc_v1.transform_record(recid_pid, Record(minimal_record)) assert obj['contributors'] == ['Smith, John']
def test_description(minimal_record, recid_pid): """Test description""" minimal_record['description'] = "<p><b>Foo Bar</b></p><em><p> \ Foo&Bar</p></em> 'This' is <i><it><i>" obj = dc_v1.transform_record(recid_pid, Record(minimal_record)) assert obj['descriptions'] == ["Foo Bar Foo&Bar 'This' is <it>"]
def test_community_relations(db, minimal_record_model, recid_pid): """Test communities.""" for communities in (['zenodo'], ['c1', 'c2', 'c3']): minimal_record_model['communities'] = communities obj = dc_v1.transform_record(recid_pid, minimal_record_model) for comm in communities: assert ('url:http://localhost/communities/{}'.format(comm) in obj['relations'])
def test_locations(app, db, minimal_record_model, recid_pid): """Test locations.""" minimal_record_model['locations'] = [{ "lat": 2.35, "lon": 1.534, "place": "my place" }] obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert set(obj['coverage']) == {'name=my place; east=1.534; north=2.35'}
def test_types(minimal_record, recid_pid): """"Test contributors.""" minimal_record.update({ 'resource_type': { 'type': 'publication', 'subtype': 'conferencepaper' } }) obj = dc_v1.transform_record(recid_pid, Record(minimal_record)) assert obj['types'] == ['info:eu-repo/semantics/conferencePaper']
def test_embargo_date(app, db, minimal_record_model, recid_pid): """"Test embargo date.""" dt = (datetime.utcnow().date() + timedelta(days=1)).isoformat() minimal_record_model.update({ 'embargo_date': dt, 'access_right': 'embargoed', }) obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['rights'] == ['info:eu-repo/semantics/embargoedAccess'] assert 'info:eu-repo/date/embargoEnd/{0}'.format(dt) in obj['dates']
def test_sources(app, db, minimal_record_model, recid_pid): """Test contributors.""" minimal_record_model.update({ 'journal': { 'title': 'CAP', 'volume': '22', 'issue': '1', 'pages': '1-2', 'year': '2002' }}) obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['sources'] == ['CAP 22(1) 1-2 (2002)'] minimal_record_model.update({ 'journal': { 'title': 'CAP', 'issue': '1', }}) obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['sources'] == ['CAP 1']
def test_dates(app, db, full_record, minimal_record_model, recid_pid): """Test dates.""" minimal_record_model['dates'] = full_record['dates'] obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['dates'] == [ datetime.utcnow().date().isoformat(), '2019-01-01/', '/2019-01-01', '2019-01-01', '2019-01-01/2019-02-01', ]
def test_sources_meetings(app, db, minimal_record_model, recid_pid): """"Test contributors.""" minimal_record_model['meetings'] = { 'acronym': 'CAP', 'title': 'Communicating', 'place': 'Cape Town', 'dates': 'March, 2010', 'session': 'I', 'session_part': '1', } obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['sources'] == ['CAP, Communicating, Cape Town, March, 2010']
def test_openaire_communities(db, minimal_record_model, recid_pid): """Test OpenAIRE communities.""" tests = [ (['zenodo'], set()), (['c1'], {'foo'}), (['c1', 'c2'], {'foo'}), (['c1', 'c2', 'c3'], {'foo', 'bar'}), ] for comms, expected_oa_comms in tests: minimal_record_model['communities'] = comms obj = dc_v1.transform_record(recid_pid, minimal_record_model) for oa_comm in expected_oa_comms: assert ('url:https://openaire.eu/communities/{}'.format(oa_comm) in obj['relations'])
def test_minimal(minimal_record, recid_pid): """Test identifiers.""" obj = dc_v1.transform_record(recid_pid, Record(minimal_record)) assert obj == { 'sources': [], 'contributors': [], 'identifiers': ['', 'https://zenodo.org/record/123'], 'subjects': [], 'languages': [''], 'dates': [datetime.utcnow().date().isoformat()], 'titles': ['Test'], 'creators': ['Test'], 'rights': ['info:eu-repo/semantics/openAccess'], 'publishers': [], 'descriptions': ['My description'], 'types': ['info:eu-repo/semantics/other'], 'relations': [] }
def test_minimal(app, db, minimal_record_model, recid_pid): """Test identifiers.""" obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj == { 'sources': [], 'contributors': [], 'identifiers': ['', 'https://zenodo.org/record/123'], 'subjects': [], 'languages': [''], 'dates': [datetime.utcnow().date().isoformat()], 'titles': ['Test'], 'creators': ['Test'], 'rights': ['info:eu-repo/semantics/openAccess'], 'publishers': [], 'descriptions': ['My description'], 'types': ['info:eu-repo/semantics/other'], 'relations': [] }
def test_relations(app, db, minimal_record_model, recid_pid): """"Test relations.""" minimal_record_model.update({ 'grants': [{ 'identifiers': { 'eurepo': 'info:eu-repo/grantAgreement/EC/FP7/244909'}}], 'alternate_identifiers': [{ 'identifier': '10.1234/foo.bar', 'scheme': 'doi' }], 'related_identifiers': [{ 'identifier': '1234', 'scheme': 'pmid', 'relation': 'isCited', }], }) obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['relations'] == [ 'info:eu-repo/grantAgreement/EC/FP7/244909', 'info:eu-repo/semantics/altIdentifier/doi/10.1234/foo.bar', 'pmid:1234' ]
def test_languages(app, db, minimal_record_model, recid_pid): """"Test identifiers.""" minimal_record_model['language'] = 'eng' obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['languages'] == ['eng', ]
def test_creators(app, db, minimal_record_model, recid_pid): """"Test identifiers.""" minimal_record_model['creators'] = [] obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert obj['creators'] == []
def test_locations(app, db, minimal_record_model, recid_pid): """Test locations.""" minimal_record_model['locations'] = [ {"lat": 2.35, "lon": 1.534, "place": "my place"}] obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert set(obj['coverage']) == {'name=my place; east=1.534; north=2.35'}
def test_method(app, db, full_record, minimal_record_model, recid_pid): """Test method.""" minimal_record_model['method'] = full_record['method'] obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert 'microscopic supersampling' in obj['descriptions']
def test_subjects(app, db, minimal_record_model, recid_pid): """Test subjects.""" minimal_record_model['subjects'] = [{'term': 's1'}, {'term': 's2'}] minimal_record_model['keywords'] = ['k1', 'k2'] obj = dc_v1.transform_record(recid_pid, minimal_record_model) assert set(obj['subjects']) == {'s1', 's2', 'k1', 'k2'}
def test_creators(minimal_record, recid_pid): """"Test identifiers.""" minimal_record['creators'] = [] obj = dc_v1.transform_record(recid_pid, Record(minimal_record)) assert obj['creators'] == []
def test_creators(minimal_record, recid_pid): """"Test identifiers.""" minimal_record['creators'] = [] obj = dc_v1.transform_record(recid_pid, Record(minimal_record)) assert obj['creators'] == []
def test_contributors(minimal_record, recid_pid): """"Test contributors.""" minimal_record.update({'contributors': [{'name': 'Smith, John'}]}) obj = dc_v1.transform_record(recid_pid, Record(minimal_record)) assert obj['contributors'] == ['Smith, John']