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_pop_additional_pubnotes_single_pubnote(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_misc("Additional pubnote: J.Testing,42,R477") expected = [ { 'reference': { 'publication_info': { 'journal_title': 'J.Testing', 'journal_volume': '42', 'page_start': 'R477', 'artid': 'R477' }, 'misc': [ 'Additional pubnote split from previous reference', ], }, }, ] result = list(builder.pop_additional_pubnotes()) assert validate(result, subschema) is None assert expected == result assert 'misc' not in builder.obj['reference']
def test_pop_additional_pubnotes_no_misc(): builder = ReferenceBuilder() expected = [] result = list(builder.pop_additional_pubnotes()) assert expected == result
def test_add_raw_reference_with_source(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_raw_reference('Phys. Rev. C 80 (doi:10.1103/' 'PhysRevC.80.044313)', 'arXiv') expected = [ { 'raw_refs': [ { 'schema': 'text', 'source': 'arXiv', 'value': 'Phys. Rev. C 80 (doi:10.1103/' 'PhysRevC.80.044313)', }, ], }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_set_year_rejects_malformed_years(): builder = ReferenceBuilder() builder.set_year('foobar') expected = [{}] result = [builder.obj] assert expected == result
def test_reference_builder_is_not_creating_author_empty_list_when_authors_missing( ): rb = ReferenceBuilder() rb.add_author(" ") rb.add_author(" ") assert 'reference' not in rb.obj rb.add_title("Title") rb.add_author(" ") assert 'authors' not in rb.obj['reference']
def test_curate(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.curate() expected = [ {'curated_relation': True}, ] 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_set_texkey(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.set_texkey('Aaij:2016qlz') expected = [ { 'reference': { 'texkey': 'Aaij:2016qlz', }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_set_label(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.set_label('Abe et al, 2008') expected = [ { 'reference': { 'label': 'Abe et al, 2008', }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_add_uid_falls_back_to_isbn(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_uid('1449344852') expected = [ { 'reference': { 'isbn': '9781449344856', }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_add_uid_handles_arxiv_ids(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_uid('hep-th/0603001') expected = [ { 'reference': { 'arxiv_eprint': 'hep-th/0603001', }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_add_url_adds_uid(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_url('10.1109/NSSMIC.2005.1596597') expected = [ { 'reference': { 'dois': ['10.1109/NSSMIC.2005.1596597'], }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_set_pubnote_puts_incomplete_pubnote_in_misc(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.set_pubnote('Phys.Rev.,D43,') expected = [ { 'reference': { 'misc': ['Phys.Rev.,D43,'] }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_set_pubnote_falls_back_to_misc(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.set_pubnote('not-a-valid-pubnote') expected = [ { 'reference': { 'misc': ['not-a-valid-pubnote'], }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_add_uid_handles_cnums(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_uid('C87-11-11') expected = [ { 'reference': { 'publication_info': { 'cnum': 'C87-11-11', }, }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_add_uid_handles_dois(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_uid('http://dx.doi.org/10.3972/water973.0145.db') expected = [ { 'reference': { 'dois': [ '10.3972/water973.0145.db', ], }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_set_publisher(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.set_publisher('Elsevier') expected = [ { 'reference': { 'imprint': { 'publisher': 'Elsevier', }, }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_add_author(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_author('Cox, Brian') expected = [ { 'reference': { 'authors': [ {'full_name': 'Cox, Brian'}, ], }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_set_journal_title(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.set_journal_title('Phys. Rev. D') expected = [ { 'reference': { 'publication_info': { 'journal_title': 'Phys. Rev. D' }, }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
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
def test_add_url(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_url('http://www.muonsinc.com') expected = [ { 'reference': { 'urls': [ {'value': 'http://www.muonsinc.com'}, ], }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_add_title(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_title('The CMS experiment at the CERN LHC') expected = [ { 'reference': { 'title': { 'title': 'The CMS experiment at the CERN LHC', } }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_add_parent_title(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_parent_title('Geom. Funct. Anal., GAFA 2000') expected = [ { 'reference': { 'publication_info': { 'parent_title': 'Geom. Funct. Anal., GAFA 2000', }, }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_add_uid_rejects_invalid_isbns(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_uid('123456789') expected = [ { 'reference': { 'misc': [ '123456789', ] }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_add_misc(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_misc('[Erratum:') expected = [ { 'reference': { 'misc': [ '[Erratum:', ], }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_add_collaboration(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.add_collaboration('ALICE') expected = [ { 'reference': { 'collaborations': [ 'ALICE', ], }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result
def test_set_year(): schema = load_schema('hep') subschema = schema['properties']['references'] builder = ReferenceBuilder() builder.set_year(2017) expected = [ { 'reference': { 'publication_info': { 'year': 2017, }, }, }, ] result = [builder.obj] assert validate(result, subschema) is None assert expected == result