def test_get_linked_records_in_field_handles_multiple_pid_types(isolated_app): instances = [ TestRecordMetadata.create_from_file(__name__, '29177.json'), TestRecordMetadata.create_from_file(__name__, '1575134.json', pid_type='dat'), ] record = { 'references': [ { 'record': { '$ref': 'https://labs.inspirehep.net/api/literature/29177' } }, { 'record': { '$ref': 'https://labs.inspirehep.net/api/data/1575134' } }, ], } results = get_linked_records_in_field(record, 'references.record') expected = list( sorted(instance.record_metadata.json for instance in instances)) result = list(sorted(results)) # FIXME: order is not preserved! assert expected == result
def get_resolved_references_by_control_number(self, data): data = force_list(data) resolved_records = get_linked_records_in_field({'references': data}, 'references.record') return { record['control_number']: record for record in resolved_records }
def get_resolved_references_by_control_number(self, data): data = force_list(data) resolved_records = get_linked_records_in_field( {'references': data}, 'references.record') return { record['control_number']: record for record in resolved_records }
def get_control_numbers_to_resolved_experiments_map(self, data): data = force_list(data) resolved_records = get_linked_records_in_field( {'accelerator_experiments': data}, 'accelerator_experiments.record' ) return { record['control_number']: record for record in resolved_records }
def count_reference_coreness(obj, eng): """Count number of core/non-core matched references.""" cited_records = list(get_linked_records_in_field(obj.data, 'references.record')) count_core = len([rec for rec in cited_records if rec.get('core') is True]) count_non_core = len(cited_records) - count_core obj.extra_data['reference_count'] = { 'core': count_core, 'non_core': count_non_core, }
def count_reference_coreness(obj, eng): """Count number of core/non-core matched references.""" cited_records = list(get_linked_records_in_field(obj.data, 'references.record')) count_core = len([rec for rec in cited_records if rec.get('core') is True]) count_non_core = len(cited_records) - count_core obj.extra_data['reference_count'] = { 'core': count_core, 'non_core': count_non_core, }
def test_get_linked_records_in_field_with_missing_link(isolated_app): TestRecordMetadata.create_from_file(__name__, '29177.json') record = { 'references': [ { 'record': { '$ref': 'https://labs.inspirehep.net/api/literature/1234' } }, ], } results = get_linked_records_in_field(record, 'references.record') expected = [] assert expected == list(results)
def test_get_linked_records_in_field_finds_existing_link(isolated_app): instance = TestRecordMetadata.create_from_file(__name__, '29177.json') record = { 'references': [ { 'record': { '$ref': 'https://labs.inspirehep.net/api/literature/29177' } }, ], } results = get_linked_records_in_field(record, 'references.record') expected = [instance.record_metadata.json] result = list(results) assert expected == result
def test_get_linked_records_in_field_handles_empty_field(isolated_app): results = get_linked_records_in_field({}, 'foo') assert list(results) == []