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
示例#2
0
 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
     }
示例#3
0
 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
     }
示例#5
0
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,
    }
示例#6
0
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) == []