def test_add_refextract_authors_str_discards_et_al(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_refextract_authors_str( 'S. B. Cenko, M. M. Kasliwal, D. A. Perley et al.' ) expected = [ { 'reference': { 'authors': [ {'full_name': 'Cenko, S.B.'}, {'full_name': 'Kasliwal, M.M.'}, {'full_name': 'Perley, D.A.'}, ], }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_add_refextract_author_str(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_refextract_authors_str('S. Frixione, P. Nason, and C. Oleari') expected = [ { 'reference': { 'authors': [ { 'full_name': 'Frixione, S.' }, { 'full_name': 'Nason, P.' }, { 'full_name': 'Oleari, C.' }, ], }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_add_refextract_authors_str_noninitials(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_refextract_authors_str( 'Igor R. Klebanov and Juan Martin Maldacena') expected = [ { 'reference': { 'authors': [ { 'full_name': 'Klebanov, Igor R.' }, { 'full_name': 'Maldacena, Juan Martin' }, ], }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_reference_builder_skip_authors_without_full_names(): rb = ReferenceBuilder() rb.add_refextract_authors_str("Author 1, ,Author 2") rb.add_raw_reference("Author 1, , Author 2, Some Title"), rb.add_title("Some title") expected_authors = [{'full_name': '1, Author'}, {'full_name': '2, Author'}] assert len(rb.obj['reference']['authors']) assert rb.obj['reference']['authors'] == expected_authors
def test_add_refextract_authors_str_unicode(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_refextract_authors_str(u'Kätlne, J.') expected = [ { 'reference': { 'authors': [ {'full_name': u'Kätlne, J.'}, ], }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result