def test_build_pubnote_title_volume():
    title = 'J.Testing'
    volume = '42'

    expected = 'J.Testing,42'

    assert utils.build_pubnote(title, volume) == expected
def test_build_pubnote_handles_unicode():
    title = u'J.Tëstíng'
    volume = '42'
    page_start = '123'

    expected = u'J.Tëstíng,42,123'

    assert utils.build_pubnote(title, volume, page_start) == expected
def test_build_pubnote_title_volume_page_start():
    title = 'J.Testing'
    volume = '42'
    page_start = '123'

    expected = 'J.Testing,42,123'

    assert utils.build_pubnote(title, volume, page_start) == expected
def test_build_pubnote_title_volume_page_start_artid():
    title = 'J.Testing'
    volume = '42'
    page_start = '123'
    page_end = None
    artid = '0123'

    expected = 'J.Testing,42,0123'

    assert utils.build_pubnote(title, volume, page_start, page_end, artid) == expected
Exemple #5
0
def references2marc(self, key, value):
    reference = value['reference']

    pids = force_list(reference.get('persistent_identifiers'))
    a_values = ['doi:' + el for el in force_list(reference.get('dois'))]
    a_values.extend(
        ['hdl:' + el['value'] for el in pids if el.get('schema') == 'HDL'])
    a_values.extend(
        ['urn:' + el['value'] for el in pids if el.get('schema') == 'URN'])

    authors = force_list(reference.get('authors'))
    e_values = [
        el['full_name'] for el in authors if el.get('inspire_role') == 'editor'
    ]
    h_values = [
        el['full_name'] for el in authors if el.get('inspire_role') != 'editor'
    ]

    r_values = force_list(reference.get('report_numbers'))
    if reference.get('arxiv_eprint'):
        arxiv_eprint = reference['arxiv_eprint']
        r_values.append(
            'arXiv:' +
            arxiv_eprint if is_arxiv_post_2007(arxiv_eprint) else arxiv_eprint)

    journal_title = get_value(reference, 'publication_info.journal_title')
    journal_volume = get_value(reference, 'publication_info.journal_volume')
    page_start = get_value(reference, 'publication_info.page_start')
    page_end = get_value(reference, 'publication_info.page_end')
    artid = get_value(reference, 'publication_info.artid')
    s_value = build_pubnote(journal_title, journal_volume, page_start,
                            page_end, artid)

    m_value = ' / '.join(force_list(reference.get('misc')))

    return {
        '0': get_recid_from_ref(value.get('record')),
        'a': a_values,
        'b': get_value(reference, 'publication_info.cnum'),
        'c': reference.get('collaborations'),
        'e': e_values,
        'h': h_values,
        'i': reference.get('isbn'),
        'k': reference.get('texkey'),
        'm': m_value,
        'o': reference.get('label'),
        'p': get_value(reference, 'imprint.publisher'),
        'q': get_value(reference, 'publication_info.parent_title'),
        'r': r_values,
        's': s_value,
        't': get_value(reference, 'title.title'),
        'u': get_value(reference, 'urls.value'),
        'x': get_value(value, 'raw_refs.value'),
        'y': get_value(reference, 'publication_info.year'),
    }
Exemple #6
0
def references2marc(self, key, value):
    """Populate the ``999C5`` MARC field."""
    reference = value.get('reference', {})

    pids = force_list(reference.get('persistent_identifiers'))
    a_values = ['doi:' + el for el in force_list(reference.get('dois'))]
    a_values.extend(
        ['hdl:' + el['value'] for el in pids if el.get('schema') == 'HDL'])
    a_values.extend(
        ['urn:' + el['value'] for el in pids if el.get('schema') == 'URN'])

    external_ids = force_list(reference.get('external_system_identifiers'))
    u_values = force_list(get_value(reference, 'urls.value'))
    u_values.extend(
        CDS_RECORD_FORMAT.format(el['value']) for el in external_ids
        if el.get('schema') == 'CDS')
    u_values.extend(
        ADS_RECORD_FORMAT.format(el['value']) for el in external_ids
        if el.get('schema') == 'ADS')

    authors = force_list(reference.get('authors'))
    e_values = [
        el['full_name'] for el in authors if el.get('inspire_role') == 'editor'
    ]
    h_values = [
        el['full_name'] for el in authors if el.get('inspire_role') != 'editor'
    ]

    r_values = force_list(reference.get('report_numbers'))
    if reference.get('arxiv_eprint'):
        arxiv_eprint = reference['arxiv_eprint']
        r_values.append(
            'arXiv:' +
            arxiv_eprint if is_arxiv_post_2007(arxiv_eprint) else arxiv_eprint)

    if reference.get('publication_info'):
        reference['publication_info'] = convert_new_publication_info_to_old(
            [reference['publication_info']])[0]
    journal_title = get_value(reference, 'publication_info.journal_title')
    journal_volume = get_value(reference, 'publication_info.journal_volume')
    page_start = get_value(reference, 'publication_info.page_start')
    page_end = get_value(reference, 'publication_info.page_end')
    artid = get_value(reference, 'publication_info.artid')
    s_value = build_pubnote(journal_title, journal_volume, page_start,
                            page_end, artid)

    m_value = ' / '.join(force_list(reference.get('misc')))

    return {
        '0': get_recid_from_ref(value.get('record')),
        '9': 'CURATOR' if value.get('legacy_curated') else None,
        'a': a_values,
        'b': get_value(reference, 'publication_info.cnum'),
        'c': reference.get('collaborations'),
        'e': e_values,
        'h': h_values,
        'i': reference.get('isbn'),
        'k': reference.get('texkey'),
        'm': m_value,
        'o': reference.get('label'),
        'p': get_value(reference, 'imprint.publisher'),
        'q': get_value(reference, 'publication_info.parent_title'),
        'r': r_values,
        's': s_value,
        't': get_value(reference, 'title.title'),
        'u': u_values,
        'x': get_value(value, 'raw_refs.value'),
        'y': get_value(reference, 'publication_info.year'),
        'z': 1 if value.get('curated_relation') else 0,
    }