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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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']
Ejemplo n.º 5
0
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
Ejemplo n.º 8
0
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
Ejemplo n.º 10
0
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
Ejemplo n.º 15
0
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
Ejemplo n.º 22
0
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