def test_load_author_positions(): data = { 'positions': [ { 'institution': 'Colgate University', 'start_date': '1994-02-01', 'end_date': '1995-01-31', 'rank': 'PHD', 'current': False, }, ], } result = Author().load(data).data schema = load_schema('authors') subschema = schema['properties']['positions'] expected = { '_collections': ['Authors'], 'positions': [ { 'current': False, 'curated_relation': False, 'end_date': '1995-01-31', 'institution': 'Colgate University', 'rank': 'PHD', 'start_date': '1994-02-01', }, ], } assert validate(expected['positions'], subschema) is None assert expected == result
def test_dump_author_project_membership(): data = { 'project_membership': [ { 'institution': 'Colgate University', 'start_date': '1994-02-01', 'end_date': '1995-01-31', 'rank': 'PHD', 'current': False, }, ], } result = Author().dump(data).data schema = load_schema('authors') subschema = schema['properties']['positions'] expected = { 'project_membership': [ { 'institution': 'Colgate University', 'start_date': '1994-02-01', 'end_date': '1995-01-31', 'rank': 'PHD', 'current': False, }, ], } assert validate(data['project_membership'], subschema) is None assert expected == result
def test_load_author_project_membership(): data = { 'project_membership': [{ 'name': 'pariatur', 'start_date': '1997-05-01', 'end_date': '2001-12-31', 'record': { '$ref': 'http://180' }, 'current': True }], } result = Author().load(data).data schema = load_schema('authors') subschema = schema['properties']['project_membership'] expected = { '_collections': ['Authors'], 'project_membership': [ { 'curated_relation': False, 'current': True, 'end_date': '2001-12-31', 'name': 'pariatur', 'record': { '$ref': 'http://180' }, 'start_date': '1997-05-01', }, ], } assert validate(expected['project_membership'], subschema) is None assert expected == result
def test_load_author_acquisition_source(): data = { 'acquisition_source': { 'method': 'submitter', 'submission_number': '12', 'internal_uid': 1, 'email': '*****@*****.**', 'orcid': '0000-0001-8528-2091', }, } schema = load_schema('authors') subschema = schema['properties']['acquisition_source'] result = Author().load(data).data expected = { '_collections': ['Authors'], 'acquisition_source': { 'method': 'submitter', 'submission_number': '12', 'internal_uid': 1, 'email': '*****@*****.**', 'orcid': '0000-0001-8528-2091', }, } assert validate(result['acquisition_source'], subschema) is None assert expected == result
def test_dump_author_advisors(): data = { 'advisors': [ { 'degree_type': 'bachelor', 'ids': [{ 'schema': 'DESY', 'value': 'DESY-55924820881' }, { 'schema': 'SCOPUS', 'value': '7039712595' }, { 'schema': 'SCOPUS', 'value': '8752067273' }], 'name': 'occaecat qui sint in id', 'record': { '$ref': 'http://1js40iZ' } }, ] } schema = load_schema('authors') subschema = schema['properties']['advisors'] result = Author().dump(data).data expected = { 'advisors': [ { 'degree_type': 'bachelor', 'ids': [{ 'schema': 'DESY', 'value': 'DESY-55924820881' }, { 'schema': 'SCOPUS', 'value': '7039712595' }, { 'schema': 'SCOPUS', 'value': '8752067273' }], 'name': 'occaecat qui sint in id', 'record': { '$ref': 'http://1js40iZ' } }, ] } assert validate(data['advisors'], subschema) is None assert expected == result
def test_load_author_display_name(): data = {'display_name': 'Jessica Jones'} result = Author().load(data).data expected = { '_collections': ['Authors'], 'name': { 'preferred_name': 'Jessica Jones' } } assert expected == result
def test_dump_author_given_and_family_name_jimmy_case(): data = { 'name': { 'value': 'Jimmy', }, } result = Author().dump(data).data expected = { 'given_name': 'Jimmy', } assert expected == result
def test_dump_author_display_name(): data = { 'name': { 'preferred_name': 'Jessica Jones', } } result = Author().dump(data).data expected = { 'display_name': 'Jessica Jones', } assert expected == result
def test_dump_author_given_and_family_name_normal_case(): data = { 'name': { 'value': 'Jones, Jessica', }, } result = Author().dump(data).data expected = { 'family_name': 'Jones', 'given_name': 'Jessica', } assert expected == result
def test_dump_author_given_and_family_name_multiple_names_case(): data = { 'name': { 'value': 'Jones Castle, Jessica Frank', }, } result = Author().dump(data).data expected = { 'family_name': 'Jones Castle', 'given_name': 'Jessica Frank', } assert expected == result
def test_dump_author_status(): data = { 'status': 'active', } result = Author().dump(data).data schema = load_schema('authors') subschema = schema['properties']['status'] expected = { 'status': 'active', } assert validate(data['status'], subschema) is None assert expected == result
def test_load_author_given_and_family_name_jimmy_case(): data = { 'given_name': 'Jimmy', } result = Author().load(data).data expected = { '_collections': ['Authors'], 'name': { 'value': 'Jimmy', }, } assert expected == result
def test_load_author_given_and_family_name_normal_case_with_unicode(): data = { 'family_name': u'Gérard', 'given_name': u'Jessica', } result = Author().load(data).data expected = { '_collections': ['Authors'], 'name': { 'value': u'Gérard, Jessica', }, } assert expected == result
def test_dump_author_comments(): data = { '_private_notes': [ { 'value': 'THIS IS A NOTE', }, ], } schema = load_schema('authors') subschema = schema['properties']['_private_notes'] result = Author().dump(data).data assert validate(data['_private_notes'], subschema) is None assert 'comments' not in result
def test_load_author_given_and_family_name_multiple_names_case(): data = { 'family_name': 'Jones Castle', 'given_name': 'Jessica Frank', } result = Author().load(data).data expected = { '_collections': ['Authors'], 'name': { 'value': 'Jones Castle, Jessica Frank', }, } assert expected == result
def test_load_author_status(): data = { 'status': 'active', } result = Author().load(data).data schema = load_schema('authors') subschema = schema['properties']['status'] expected = { '_collections': ['Authors'], 'status': 'active', } assert validate(expected['status'], subschema) is None assert expected == result
def test_dump_author_orcid(): data = { 'ids': [ { 'value': '0000-0002-7638-5686', 'schema': 'ORCID', }, ], } schema = load_schema('authors') subschema = schema['properties']['ids'] result = Author().dump(data).data expected = {'orcid': '0000-0002-7638-5686'} assert validate(data['ids'], subschema) is None assert expected == result
def test_dump_author_native_name(): data = { 'name': { 'value': 'Jones, Jessica', 'native_names': [ 'Τζέσικα Τζόουνς', ] } } result = Author().dump(data).data expected = { 'native_name': 'Τζέσικα Τζόουνς', 'family_name': 'Jones', 'given_name': 'Jessica', } assert expected == result
def test_load_author_bai(): data = {'bai': 'T.Zivko.1'} schema = load_schema('authors') subschema = schema['properties']['ids'] result = Author().load(data).data expected = { '_collections': ['Authors'], 'ids': [ { 'value': 'T.Zivko.1', 'schema': 'INSPIRE BAI', }, ], } assert validate(expected['ids'], subschema) is None assert expected == result
def test_dump_author_without_blog(): data = { 'urls': [ { 'value': 'https://www.linkedin.com/in/example-12345/', 'description': 'something_else', }, ], } result = Author().dump(data).data expected = { 'websites': [ 'https://www.linkedin.com/in/example-12345/', ] } assert expected == result
def test_load_author_comments(): data = { 'comments': 'THIS IS A NOTE', } schema = load_schema('authors') subschema = schema['properties']['_private_notes'] result = Author().load(data).data expected = { '_collections': ['Authors'], '_private_notes': [ { 'value': 'THIS IS A NOTE', }, ], } assert validate(expected['_private_notes'], subschema) is None assert expected == result
def test_load_author_native_name(): data = { 'native_name': 'Τζέσικα Τζόουνς', 'family_name': 'Jones', 'given_name': 'Jessica', } result = Author().load(data).data expected = { '_collections': ['Authors'], 'name': { 'value': 'Jones, Jessica', 'native_names': [ 'Τζέσικα Τζόουνς', ] } } assert expected == result
def test_load_author_blog(): data = { 'blog': 'https:/myblog.com', } schema = load_schema('authors') subschema = schema['properties']['urls'] result = Author().load(data).data expected = { '_collections': ['Authors'], 'urls': [ { 'value': 'https:/myblog.com', 'description': 'blog', }, ], } assert validate(expected['urls'], subschema) is None assert expected == result
def test_dump_author_linkedin(): data = { 'ids': [ { 'value': 'https:/linkedin.com', 'schema': 'LINKEDIN', }, ], } schema = load_schema('authors') subschema = schema['properties']['ids'] result = Author().dump(data).data expected = { 'linkedin': 'https:/linkedin.com', } assert validate(data['ids'], subschema) is None assert expected == result
def test_dump_author_twitter(): data = { 'ids': [ { 'value': 'https:/twitter.com', 'schema': 'TWITTER', }, ], } schema = load_schema('authors') subschema = schema['properties']['ids'] result = Author().dump(data).data expected = { 'twitter': 'https:/twitter.com', } assert validate(data['ids'], subschema) is None assert expected == result
def test_dump_author_websites(): data = { 'urls': [ { 'value': 'http://website.com', }, ], } result = Author().dump(data).data schema = load_schema('authors') subschema = schema['properties']['urls'] expected = { 'websites': [ 'http://website.com', ], } assert validate(data['urls'], subschema) is None assert expected == result
def test_dump_author_public_emails(): data = { 'email_addresses': [ { 'value': '*****@*****.**', }, ], } result = Author().dump(data).data schema = load_schema('authors') subschema = schema['properties']['email_addresses'] expected = { 'public_emails': [ '*****@*****.**', ], } assert validate(data['email_addresses'], subschema) is None assert expected == result
def test_dump_author_arxiv_categories(): data = { 'arxiv_categories': [ 'math.CV', 'astro-ph.HE', 'econ.EM', ], } schema = load_schema('authors') subschema = schema['properties']['arxiv_categories'] result = Author().dump(data).data expected = { 'arxiv_categories': [ 'math.CV', 'astro-ph.HE', 'econ.EM', ], } assert validate(data['arxiv_categories'], subschema) is None assert expected == result
def test_load_author_advisors(): data = { 'advisors': [ { 'degree_type': 'bachelor', 'ids': [ { 'schema': 'DESY', 'value': 'DESY-55924820881' }, { 'schema': 'SCOPUS', 'value': '7039712595' }, { 'schema': 'SCOPUS', 'value': '8752067273' }, ], 'name': 'occaecat qui sint in id', 'record': { '$ref': 'http://1js40iZ' } }, ] } schema = load_schema('authors') subschema = schema['properties']['advisors'] result = Author().load(data).data expected = { '_collections': ['Authors'], 'advisors': [ { 'curated_relation': False, 'degree_type': 'bachelor', 'name': 'Id, Occaecat Qui Sint In', 'ids': [{ 'schema': 'DESY', 'value': 'DESY-55924820881' }, { 'schema': 'SCOPUS', 'value': '7039712595' }, { 'schema': 'SCOPUS', 'value': '8752067273' }], 'record': { '$ref': 'http://1js40iZ' } }, ] } assert validate(result['advisors'], subschema) is None assert expected == result