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
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'), }
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, }