Exemple #1
0
    def parse_node(self, response, node):
        node.remove_namespaces()
        cds_bibrec, ok, errs = create_bibrec(
            node.xpath('.//record').extract()[0]
        )
        if not ok:
            raise RuntimeError("Cannot parse record %s: %s", node, errs)
        self.logger.info("Here's the record: %s" % cds_bibrec)
        inspire_bibrec = CDS2Inspire(cds_bibrec).get_record()
        marcxml_record = record_xml_output(inspire_bibrec)
        record = create_record(marcxml_record)

        app = Flask('hepcrawl')
        app.config.update(
            self.settings.getdict('MARC_TO_HEP_SETTINGS', {})
        )
        with app.app_context():
            json_record = hep.do(record)
            base_uri = self.settings['SCHEMA_BASE_URI']
            json_record['$schema'] = base_uri + 'hep.json'

        parsed_item = ParsedItem(
                record=json_record,
                record_format='hep',
            )
        return parsed_item
Exemple #2
0
def test_accelerator_experiments_from_693__a():
    schema = load_schema('hep')
    subschema = schema['properties']['accelerator_experiments']

    snippet = (
        '<datafield tag="693" ind1=" " ind2=" ">'
        '  <subfield code="a">BATSE</subfield>'
        '</datafield>'
    )  # record/1623303

    expected = [
        {'accelerator': 'BATSE'},
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['accelerator_experiments'], subschema) is None
    assert expected == result['accelerator_experiments']

    expected = [
        {'a': 'BATSE'},
    ]
    result = hep2marc.do(result)

    assert expected == result['693']
Exemple #3
0
def test_isbns_from_020__a_handles_capital_x():
    schema = load_schema('hep')
    subschema = schema['properties']['isbns']

    snippet = (
        '<datafield tag="020" ind1=" " ind2=" ">'
        '  <subfield code="a">069114558X</subfield>'
        '</datafield>'
    )  # record/1230427

    expected = [
        {'value': '069114558X'},
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['isbns'], subschema) is None
    assert expected == result['isbns']

    expected = [
        {'a': '069114558X'},
    ]
    result = hep2marc.do(result)

    assert expected == result['020']
Exemple #4
0
def test_report_numbers_from_037__a():
    schema = load_schema('hep')
    subschema = schema['properties']['report_numbers']

    snippet = (
        '<datafield tag="037" ind1=" " ind2=" ">'
        '  <subfield code="a">CERN-EP-2016-319</subfield>'
        '</datafield>'
    )  # record/1511277

    expected = [
        {'value': 'CERN-EP-2016-319'},
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['report_numbers'], subschema) is None
    assert expected == result['report_numbers']

    expected = [
        {'a': 'CERN-EP-2016-319'},
    ]
    result = hep2marc.do(result)

    assert expected == result['037']
Exemple #5
0
def test_isbns_from_020__a():
    schema = load_schema('hep')
    subschema = schema['properties']['isbns']

    snippet = (
        '<datafield tag="020" ind1=" " ind2=" ">'
        '  <subfield code="a">9780198759713</subfield>'
        '</datafield>'
    )  # record/1510325

    expected = [
        {'value': '9780198759713'},
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['isbns'], subschema) is None
    assert expected == result['isbns']

    expected = [
        {'a': '9780198759713'},
    ]
    result = hep2marc.do(result)

    assert expected == result['020']
Exemple #6
0
def test_dois_from_0247_a_q_2_9_normalizes_erratum():
    schema = load_schema('hep')
    subschema = schema['properties']['dois']

    snippet = (
        '<datafield tag="024" ind1="7" ind2=" ">'
        '  <subfield code="2">DOI</subfield>'
        '  <subfield code="9">bibmatch</subfield>'
        '  <subfield code="a">10.1103/PhysRevC.93.049901</subfield>'
        '  <subfield code="q">Erratum</subfield>'
        '</datafield>'
    )  # record/898839

    expected = [
        {
            'material': 'erratum',
            'value': '10.1103/PhysRevC.93.049901',
            'source': 'bibmatch',
        },
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['dois'], subschema) is None
    assert expected == result['dois']

    expected = [
        {
            'a': '10.1103/PhysRevC.93.049901',
            'q': 'erratum',
            '2': 'DOI',
            '9': 'bibmatch',
        },
    ]
    result = hep2marc.do(result)

    assert expected == result['0247']
Exemple #7
0
def test_document_type_from_980__a_handles_activity_report():
    schema = load_schema('hep')
    subschema = schema['properties']['document_type']

    snippet = (
        '<datafield tag="980" ind1=" " ind2=" ">'
        '  <subfield code="a">ActivityReport</subfield>'
        '</datafield>'
    )  # record/1514964

    expected = [
        'activity report',
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['document_type'], subschema) is None
    assert expected == result['document_type']

    expected = [
        {'a': 'ActivityReport'},
    ]
    result = hep2marc.do(result)

    assert expected == result['980']
Exemple #8
0
def test_publication_type_from_980__a():
    schema = load_schema('hep')
    subschema = schema['properties']['publication_type']

    snippet = (
        '<datafield tag="980" ind1=" " ind2=" ">'
        '  <subfield code="a">Review</subfield>'
        '</datafield>'
    )  # record/1509993

    expected = [
        'review',
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['publication_type'], subschema) is None
    assert expected == result['publication_type']

    expected = [
        {'a': 'review'},
    ]
    result = hep2marc.do(result)

    assert expected == result['980']
Exemple #9
0
def test_document_type_from_980__a_handles_conference_paper():
    schema = load_schema('hep')
    subschema = schema['properties']['document_type']

    snippet = (
        '<datafield tag="980" ind1=" " ind2=" ">'
        '  <subfield code="a">ConferencePaper</subfield>'
        '</datafield>'
    )  # record/1589240

    expected = [
        'conference paper',
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['document_type'], subschema) is None
    assert expected == result['document_type']

    expected = [
        {'a': 'ConferencePaper'},
    ]
    result = hep2marc.do(result)

    assert expected == result['980']
Exemple #10
0
def test_document_type_from_980__a():
    schema = load_schema('hep')
    subschema = schema['properties']['document_type']

    snippet = (
        '<datafield tag="980" ind1=" " ind2=" ">'
        '  <subfield code="a">Book</subfield>'
        '</datafield>'
    )  # record/1512050

    expected = [
        'book',
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['document_type'], subschema) is None
    assert expected == result['document_type']

    expected = [
        {'a': 'Book'},
    ]
    result = hep2marc.do(result)

    assert expected == result['980']
Exemple #11
0
def test_collections_from_980__a_babar_analysis_document():
    schema = load_schema('hep')
    subschema = schema['properties']['_collections']

    snippet = (
        '<datafield tag="980" ind1=" " ind2=" ">'
        '  <subfield code="a">BABAR-AnalysisDocument</subfield>'
        '</datafield>'
    )  # record/1598316

    expected = [
        'BABAR Analysis Documents',
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['_collections'], subschema) is None
    assert expected == result['_collections']

    expected = [
        {'a': 'BABAR-AnalysisDocument'},
    ]
    result = hep2marc.do(result)

    assert expected == result['980']
def test_editions_from_250__a():
    schema = load_schema('hep')
    subschema = schema['properties']['editions']

    snippet = ('<datafield tag="250" ind1=" " ind2=" ">'
               '  <subfield code="a">2nd ed.</subfield>'
               '</datafield>')  # record/1383727

    expected = [
        '2nd ed.',
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['editions'], subschema) is None
    assert expected == result['editions']

    expected = [
        {
            'a': '2nd ed.'
        },
    ]
    result = hep2marc.do(result)

    assert expected == result['250']
Exemple #13
0
def test_corporate_author_from_110__a():
    schema = load_schema('hep')
    subschema = schema['properties']['corporate_author']

    snippet = ('<datafield tag="110" ind1=" " ind2=" ">'
               '  <subfield code="a">CMS Collaboration</subfield>'
               '</datafield>')  # record/1621218

    expected = [
        'CMS Collaboration',
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['corporate_author'], subschema) is None
    assert expected == result['corporate_author']

    expected = [
        {
            'a': 'CMS Collaboration'
        },
    ]
    result = hep2marc.do(result)

    assert expected == result['110']
Exemple #14
0
def test_documents_from_FFT_does_not_require_s():
    schema = load_schema('hep')
    subschema = schema['properties']['documents']

    snippet = (
        '<datafield tag="FFT" ind1=" " ind2=" ">'
        '  <subfield code="a">http://www.mdpi.com/2218-1997/3/1/24/pdf</subfield>'
        '  <subfield code="d">Fulltext</subfield>'
        '  <subfield code="t">INSPIRE-PUBLIC</subfield>'
        '</datafield>'
    )  # DESY harvest

    expected = [
        {
            'key': 'document',
            'fulltext': True,
            'url': 'http://www.mdpi.com/2218-1997/3/1/24/pdf'
        }
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['documents'], subschema) is None
    assert expected == result['documents']
    assert 'figures' not in result

    expected = [
        {
            'a': 'http://www.mdpi.com/2218-1997/3/1/24/pdf',
            'd': 'Fulltext',
            't': 'INSPIRE-PUBLIC',
            'n': 'document',
        },
    ]
    result = hep2marc.do(result)

    assert expected == result['FFT']
def test_languages_from_041__a():
    schema = load_schema('hep')
    subschema = schema['properties']['languages']

    snippet = ('<datafield tag="041" ind1=" " ind2=" ">'
               '  <subfield code="a">Italian</subfield>'
               '</datafield>')  # record/1503566

    expected = [
        'it',
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['languages'], subschema) is None
    assert expected == result['languages']

    expected = [
        {
            'a': 'italian'
        },
    ]
    result = hep2marc.do(result)

    assert expected == result['041']
Exemple #16
0
def test_texkeys_from_035__a_9():
    schema = load_schema('hep')
    subschema = schema['properties']['texkeys']

    snippet = ('<datafield tag="035" ind1=" " ind2=" ">'
               '  <subfield code="9">INSPIRETeX</subfield>'
               '  <subfield code="a">Hagedorn:1963hdh</subfield>'
               '</datafield>')  # record/1403324

    expected = [
        'Hagedorn:1963hdh',
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['texkeys'], subschema) is None
    assert expected == result['texkeys']

    expected = [{
        '9': 'INSPIRETeX',
        'a': 'Hagedorn:1963hdh',
    }]
    result = hep2marc.do(result)

    assert expected == result['035']
Exemple #17
0
def test_book_series_from_490__a():
    schema = load_schema('hep')
    subschema = schema['properties']['book_series']

    snippet = (
        '<datafield tag="490" ind1=" " ind2=" ">'
        '  <subfield code="a">Graduate Texts in Physics</subfield>'
        '</datafield>'
    )  # record/1508903

    expected = [
        {'title': 'Graduate Texts in Physics'},
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['book_series'], subschema) is None
    assert expected == result['book_series']

    expected = [
        {'a': 'Graduate Texts in Physics'},
    ]
    result = hep2marc.do(result)

    assert expected == result['490']
def test_accelerator_experiments_from_693__e_0_and_693__e_discards_single_dashes(
):
    schema = load_schema('hep')
    subschema = schema['properties']['accelerator_experiments']

    snippet = ('<record>'
               '  <datafield tag="693" ind1=" " ind2=" ">'
               '    <subfield code="e">CERN-LHC-ATLAS</subfield>'
               '    <subfield code="0">1108541</subfield>'
               '  </datafield>'
               '  <datafield tag="693" ind1=" " ind2=" ">'
               '    <subfield code="e">-</subfield>'
               '  </datafield>'
               '</record>')  # record/1503527

    expected = [
        {
            'legacy_name': 'CERN-LHC-ATLAS',
            'record': {
                '$ref': 'http://localhost:5000/api/experiments/1108541',
            },
        },
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['accelerator_experiments'], subschema) is None
    assert expected == result['accelerator_experiments']

    expected = [
        {
            'e': 'CERN-LHC-ATLAS'
        },
    ]
    result = hep2marc.do(result)

    assert expected == result['693']
Exemple #19
0
def test_collections_from_980__a_hal_hidden():
    schema = load_schema('hep')
    subschema = schema['properties']['_collections']

    snippet = (
        '<datafield tag="980" ind1=" " ind2=" ">'
        '  <subfield code="a">HALhidden</subfield>'
        '</datafield>'
    )  # record/1505341

    expected = [
        'HAL Hidden',
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['_collections'], subschema) is None
    assert expected == result['_collections']

    expected = [
        {'a': 'HALhidden'},
    ]
    result = hep2marc.do(result)

    assert expected == result['980']
Exemple #20
0
def test_references_from_999C5a_h_o_s_x_y_0():
    schema = load_schema('hep')
    subschema = schema['properties']['references']

    snippet = (
        '<datafield tag="999" ind1="C" ind2="5">'
        '  <subfield code="a">doi:10.1142/S0217751X0804055X</subfield>'
        '  <subfield code="h">G.K. Leontaris</subfield>'
        '  <subfield code="o">15</subfield>'
        '  <subfield code="s">Int.J.Mod.Phys.,A23,2055</subfield>'
        '  <subfield code="x">Int. J. Mod. Phys. A 23 (doi:10.1142/S0217751X0804055X)</subfield>'
        '  <subfield code="y">2008</subfield>'
        '  <subfield code="0">780399</subfield>'
        '</datafield>')  # record/1478478/export/xme

    expected = [
        {
            'curated_relation':
            False,
            'record': {
                '$ref': 'http://localhost:5000/api/literature/780399',
            },
            'raw_refs': [
                {
                    'value':
                    'Int. J. Mod. Phys. A 23 (doi:10.1142/S0217751X0804055X)',
                    'schema': 'text',
                },
            ],
            'reference': {
                'dois': ['10.1142/S0217751X0804055X'],
                'authors': [
                    {
                        'full_name': u'Leontaris, G.K.'
                    },
                ],
                'label': '15',
                'publication_info': {
                    "artid": '2055',
                    'journal_title': 'Int.J.Mod.Phys.',
                    'journal_volume': 'A23',
                    'page_start': '2055',
                    'year': 2008,
                },
            },
        },
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['references'], subschema) is None
    assert expected == result['references']

    expected = [{
        'a': [
            'doi:10.1142/S0217751X0804055X',
        ],
        'h': [
            'Leontaris, G.K.',
        ],
        'o':
        '15',
        's':
        'Int.J.Mod.Phys.,A23,2055',
        'x': [
            'Int. J. Mod. Phys. A 23 (doi:10.1142/S0217751X0804055X)',
        ],
        'y':
        2008,
        '0':
        780399,
    }]
    result = hep2marc.do(result)

    assert expected == result['999C5']
Exemple #21
0
def test_references_from_999C5h_m_o_r_s_y_0():
    schema = load_schema('hep')
    subschema = schema['properties']['references']

    snippet = (
        '<datafield tag="999" ind1="C" ind2="5">'
        '  <subfield code="0">857215</subfield>'
        '  <subfield code="h">R. C. Myers and A. Sinha</subfield>'
        '  <subfield code="m">Seeing a c-theorem with holography ; [hep-th]</subfield>'
        '  <subfield code="o">10</subfield>'
        '  <subfield code="r">arXiv:1006.1263</subfield>'
        '  <subfield code="s">Phys.Rev.,D82,046006</subfield>'
        '  <subfield code="y">2010</subfield>'
        '</datafield>')  # record/1498589/export/xme

    expected = [
        {
            'curated_relation': False,
            'record': {
                '$ref': 'http://localhost:5000/api/literature/857215',
            },
            'reference': {
                'arxiv_eprint':
                '1006.1263',
                'authors': [
                    {
                        'full_name': u'Myers, R.C.'
                    },
                    {
                        'full_name': u'Sinha, A.'
                    },
                ],
                'label':
                '10',
                'misc': [
                    'Seeing a c-theorem with holography ; [hep-th]',
                ],
                'publication_info': {
                    'artid': '046006',
                    'journal_title': 'Phys.Rev.',
                    'journal_volume': 'D82',
                    'year': 2010,
                },
            },
        },
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['references'], subschema) is None
    assert expected == result['references']

    expected = [
        {
            '0': 857215,
            'h': [
                'Myers, R.C.',
                'Sinha, A.',
            ],
            'm': 'Seeing a c-theorem with holography ; [hep-th]',
            'o': '10',
            'r': [
                'arXiv:1006.1263',
            ],
            's': 'Phys.Rev.,D82,046006',
            'y': 2010,
        },
    ]
    result = hep2marc.do(result)

    assert expected == result['999C5']
Exemple #22
0
def test_references_from_999C5_0_h_m_o_r_t_y():
    schema = load_schema('hep')
    subschema = schema['properties']['references']

    snippet = (
        '<datafield tag="999" ind1="C" ind2="5">'
        '  <subfield code="0">674429</subfield>'
        '  <subfield code="h">R. Ardito et al.</subfield>'
        '  <subfield code="m">66</subfield>'
        '  <subfield code="o">57</subfield>'
        '  <subfield code="r">hep-ex/0501010</subfield>'
        '  <subfield code="t">CUORE: A Cryogenic underground Observatory for Rare Events</subfield>'
        '  <subfield code="y">2005</subfield>'
        '</datafield>')  # record/1615506

    expected = [
        {
            'curated_relation': False,
            'record': {
                '$ref': 'http://localhost:5000/api/literature/674429',
            },
            'reference': {
                'arxiv_eprint': 'hep-ex/0501010',
                'authors': [
                    {
                        'full_name': 'Ardito, R.'
                    },
                ],
                'label': '57',
                'misc': [
                    '66',
                ],
                'publication_info': {
                    'year': 2005
                },
                'title': {
                    'title':
                    'CUORE: A Cryogenic underground Observatory for Rare Events'
                },
            },
        },
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['references'], subschema) is None
    assert expected == result['references']

    expected = [
        {
            '0': 674429,
            'h': [
                'Ardito, R.',
            ],
            'm': '66',
            'o': '57',
            'r': [
                'hep-ex/0501010',
            ],
            't': 'CUORE: A Cryogenic underground Observatory for Rare Events',
            'y': 2005,
        },
    ]
    result = hep2marc.do(result)

    assert expected == result['999C5']
Exemple #23
0
def test_references_from_999C5h_k_double_m_o_s_y_0():
    schema = load_schema('hep')
    subschema = schema['properties']['references']

    snippet = (
        '<datafield tag="999" ind1="C" ind2="5">'
        '  <subfield code="h">W, Schoutens.</subfield>'
        '  <subfield code="k">Bouwknegt:1992wg</subfield>'
        '  <subfield code="m">Peter Bouwknegt and Kareljan</subfield>'
        '  <subfield code="m">symmetry in conformal field theory</subfield>'
        '  <subfield code="o">12</subfield>'
        '  <subfield code="s">Phys.Rept.,223,183-276</subfield>'
        '  <subfield code="y">1993</subfield>'
        '  <subfield code="0">338634</subfield>'
        '</datafield>')  # record/1613562/export/xme

    expected = [
        {
            'curated_relation': False,
            'record': {
                '$ref': 'http://localhost:5000/api/literature/338634',
            },
            'reference': {
                'authors': [
                    {
                        'full_name': 'Schoutens.,'
                    },
                ],
                'label':
                '12',
                'misc': [
                    'Peter Bouwknegt and Kareljan',
                    'symmetry in conformal field theory',
                ],
                'publication_info': {
                    'journal_title': 'Phys.Rept.',
                    'journal_volume': '223',
                    'page_start': '183',
                    'page_end': '276',
                    'year': 1993,
                },
                'texkey':
                'Bouwknegt:1992wg',
            },
        },
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['references'], subschema) is None
    assert expected == result['references']

    expected = [
        {
            '0': 338634,
            'h': [
                'Schoutens.,',
            ],
            'k': 'Bouwknegt:1992wg',
            'm':
            'Peter Bouwknegt and Kareljan / symmetry in conformal field theory',
            'o': '12',
            's': 'Phys.Rept.,223,183-276',
            'y': 1993,
        },
    ]
    result = hep2marc.do(result)

    assert expected == result['999C5']
Exemple #24
0
def test_references_from_999C5d_multiple_h_o_r_0_9():
    schema = load_schema('hep')
    subschema = schema['properties']['references']

    snippet = ('<datafield tag="999" ind1="C" ind2="5">'
               '  <subfield code="0">568216</subfield>'
               '  <subfield code="9">CURATOR</subfield>'
               '  <subfield code="d">eprint</subfield>'
               '  <subfield code="h">Y. Yan</subfield>'
               '  <subfield code="h">R. Tegen</subfield>'
               '  <subfield code="h">T. Gutsche</subfield>'
               '  <subfield code="h">V. E. Lyubovitskij</subfield>'
               '  <subfield code="h">A. Faessler</subfield>'
               '  <subfield code="o">20</subfield>'
               '  <subfield code="r">hep-ph/0112168v2</subfield>'
               '</datafield>')  # record/1410105

    expected = [
        {
            'curated_relation': False,
            'record': {
                '$ref': 'http://localhost:5000/api/literature/568216',
            },
            'reference': {
                'arxiv_eprint':
                'hep-ph/0112168',
                'authors': [
                    {
                        'full_name': 'Yan, Y.'
                    },
                    {
                        'full_name': 'Tegen, R.'
                    },
                    {
                        'full_name': 'Gutsche, T.'
                    },
                    {
                        'full_name': 'Lyubovitskij, V.E.'
                    },
                    {
                        'full_name': 'Faessler, A.'
                    },
                ],
                'label':
                '20',
            },
        },
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['references'], subschema) is None
    assert expected == result['references']

    expected = [
        {
            '0':
            568216,
            'h': [
                'Yan, Y.',
                'Tegen, R.',
                'Gutsche, T.',
                'Lyubovitskij, V.E.',
                'Faessler, A.',
            ],
            'o':
            '20',
            'r': [
                'hep-ph/0112168',
            ],
        },
    ]
    result = hep2marc.do(result)

    assert expected == result['999C5']
Exemple #25
0
def test_references_from_999C5a_h_i_m_o_p_y_9():
    schema = load_schema('hep')
    subschema = schema['properties']['references']

    snippet = (
        '<datafield tag="999" ind1="C" ind2="5">'
        '  <subfield code="o">16</subfield>'
        '  <subfield code="h">A. Del Guerra</subfield>'
        '  <subfield code="m">Ionizing Radiation Detectors for Medical Imaging Crossref:</subfield>'
        '  <subfield code="p">World Scientific</subfield>'
        '  <subfield code="i">9812562621</subfield>'
        '  <subfield code="a">doi:10.1142/5408</subfield>'
        '  <subfield code="y">2004</subfield>'
        '  <subfield code="9">refextract</subfield>'
        '</datafield>')  # record/1593684

    expected = [
        {
            'reference': {
                'authors': [
                    {
                        'full_name': 'Guerra, A.Del'
                    },  # XXX: wrong.
                ],
                'dois': [
                    '10.1142/5408',
                ],
                'imprint': {
                    'publisher': 'World Scientific'
                },
                'isbn':
                '9789812562623',
                'label':
                '16',
                'misc': [
                    'Ionizing Radiation Detectors for Medical Imaging Crossref:',
                ],
                'publication_info': {
                    'year': 2004
                },
            },
        },
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['references'], subschema) is None
    assert expected == result['references']

    expected = [
        {
            'a': [
                'doi:10.1142/5408',
            ],
            'h': [
                'Guerra, A.Del',  # XXX: wrong
            ],
            'i': '9789812562623',
            'm': 'Ionizing Radiation Detectors for Medical Imaging Crossref:',
            'o': '16',
            'p': 'World Scientific',
            'y': 2004,
        },
    ]
    result = hep2marc.do(result)

    assert expected == result['999C5']
Exemple #26
0
def test_references_from_999C5b_h_m_o_p_t_y_9():
    schema = load_schema('hep')
    subschema = schema['properties']['references']

    snippet = (
        '<datafield tag="999" ind1="C" ind2="5">'
        '  <subfield code="9">CURATOR</subfield>'
        '  <subfield code="b">C93-06-08</subfield>'
        '  <subfield code="h">C. Gaspar</subfield>'
        '  <subfield code="m">Real Time Conference,, Vancouver, Canada</subfield>'
        '  <subfield code="o">7</subfield>'
        '  <subfield code="p">IEEE</subfield>'
        '  <subfield code="t">DIM - A Distributed Information Management System for the Delphi experiment at CERN</subfield>'
        '  <subfield code="y">1993</subfield>'
        '</datafield>')  # record/1481519

    expected = [
        {
            'reference': {
                'authors': [
                    {
                        'full_name': 'Gaspar, C.'
                    },
                ],
                'imprint': {
                    'publisher': 'IEEE'
                },
                'label': '7',
                'misc': [
                    'Real Time Conference,, Vancouver, Canada',
                ],
                'publication_info': {
                    'cnum': 'C93-06-08',
                    'year': 1993,
                },
                'title': {
                    'title':
                    'DIM - A Distributed Information Management System for the Delphi experiment at CERN'
                },
            },
        },
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['references'], subschema) is None
    assert expected == result['references']

    expected = [
        {
            'b': 'C93-06-08',
            'h': [
                'Gaspar, C.',
            ],
            'm': 'Real Time Conference,, Vancouver, Canada',
            'o': '7',
            'p': 'IEEE',
            't':
            'DIM - A Distributed Information Management System for the Delphi experiment at CERN',
            'y': 1993,
        },
    ]
    result = hep2marc.do(result)

    assert expected == result['999C5']
Exemple #27
0
def test_reference_from_999C5o_h_c_t_s_r_y_0():
    schema = load_schema('hep')
    subschema = schema['properties']['references']

    snippet = (
        '<datafield tag="999" ind1="C" ind2="5">'
        '  <subfield code="o">36</subfield>'
        '  <subfield code="h">S. Chatrchyan et al.</subfield>'
        '  <subfield code="c">CMS Collaboration</subfield>'
        '  <subfield code="t">Angular analysis and branching fraction measurement of the decay B0 → K∗0 µ+ µ-</subfield>'
        '  <subfield code="s">Phys.Lett.,B727,77</subfield>'
        '  <subfield code="r">arXiv:1308.3409 [hep-ex]</subfield>'
        '  <subfield code="y">2013</subfield>'
        '  <subfield code="0">1247976</subfield>'
        '</datafield>')  # record/1591975

    expected = [{
        'curated_relation': False,
        'record': {
            '$ref': 'http://localhost:5000/api/literature/1247976'
        },
        'reference': {
            'arxiv_eprint': '1308.3409',
            'authors': [{
                'full_name': u'Chatrchyan, S.'
            }],
            'collaborations': ['CMS Collaboration'],
            'label': '36',
            'publication_info': {
                'artid': '77',
                'journal_title': 'Phys.Lett.',
                'journal_volume': 'B727',
                'page_start': '77',
                'year': 2013,
            },
            'title': {
                'title':
                u'Angular analysis and branching fraction measurement of the decay B0 → K∗0 µ+ µ-'
            },
        }
    }]
    result = hep.do(create_record(snippet))

    assert validate(result['references'], subschema) is None
    assert expected == result['references']

    expected = [{
        '0': 1247976,
        'c': [
            'CMS Collaboration',
        ],
        'h': [
            'Chatrchyan, S.',
        ],
        'o': '36',
        'r': [
            'arXiv:1308.3409',
        ],
        's': 'Phys.Lett.,B727,77',
        't':
        u'Angular analysis and branching fraction measurement of the decay B0 → K∗0 µ+ µ-',
        'y': 2013,
    }]
    result = hep2marc.do(result)

    assert expected == result['999C5']
Exemple #28
0
def test_authors_from_100__a_u_w_y_and_700_a_u_w_x_y():
    schema = load_schema('hep')
    subschema = schema['properties']['authors']

    snippet = ('<record>'
               '  <datafield tag="100" ind1=" " ind2=" ">'
               '    <subfield code="a">Kobayashi, Makoto</subfield>'
               '    <subfield code="u">Kyoto U.</subfield>'
               '    <subfield code="w">M.Kobayashi.5</subfield>'
               '    <subfield code="y">0</subfield>'
               '  </datafield>'
               '  <datafield tag="700" ind1=" " ind2=" ">'
               '    <subfield code="a">Maskawa, Toshihide</subfield>'
               '    <subfield code="u">Kyoto U.</subfield>'
               '    <subfield code="w">T.Maskawa.1</subfield>'
               '    <subfield code="x">998493</subfield>'
               '    <subfield code="y">1</subfield>'
               '  </datafield>'
               '</record>')  # record/81350/export/xme

    expected = [
        {
            'affiliations': [
                {
                    'value': 'Kyoto U.',
                },
            ],
            'full_name': 'Kobayashi, Makoto',
            'ids': [
                {
                    'schema': 'INSPIRE BAI',
                    'value': 'M.Kobayashi.5',
                },
            ],
        },
        {
            'affiliations': [
                {
                    'value': 'Kyoto U.',
                },
            ],
            'curated_relation': True,
            'full_name': 'Maskawa, Toshihide',
            'ids': [
                {
                    'schema': 'INSPIRE BAI',
                    'value': 'T.Maskawa.1',
                },
            ],
            'record': {
                '$ref': 'http://localhost:5000/api/authors/998493',
            },
        },
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['authors'], subschema) is None
    assert expected == result['authors']

    expected_100 = {
        'a': 'Kobayashi, Makoto',
        'u': [
            'Kyoto U.',
        ],
    }
    expected_700 = [
        {
            'a': 'Maskawa, Toshihide',
            'u': [
                'Kyoto U.',
            ],
        },
    ]
    result = hep2marc.do(result)

    assert expected_100 == result['100']
    assert expected_700 == result['700']
Exemple #29
0
def test_references_from_999C50_h_m_o_r_y():
    schema = load_schema('hep')
    subschema = schema['properties']['references']

    snippet = (
        '<datafield tag="999" ind1="C" ind2="5">'
        '  <subfield code="0">701721</subfield>'
        '  <subfield code="h">A. Ferrari, P.R. Sala, A. Fasso, and J. Ranft</subfield>'
        '  <subfield code="m">FLUKA: a multi-particle transport code, CERN-10 , INFN/TC_05/11</subfield>'
        '  <subfield code="o">13</subfield>'
        '  <subfield code="r">SLAC-R-773</subfield>'
        '  <subfield code="y">2005</subfield>'
        '</datafield>')  # record/1478478/export/xme

    expected = [
        {
            'curated_relation': False,
            'record': {
                '$ref': 'http://localhost:5000/api/literature/701721',
            },
            'reference': {
                'authors': [
                    {
                        'full_name': 'Ferrari, A.'
                    },
                    {
                        'full_name': 'Sala, P.R.'
                    },
                    {
                        'full_name': 'Fasso, A.'
                    },
                    {
                        'full_name': 'Ranft, J.'
                    },
                ],
                'label':
                '13',
                'misc': [
                    'FLUKA: a multi-particle transport code, CERN-10 , INFN/TC_05/11',
                ],
                'publication_info': {
                    'year': 2005
                },
                'report_numbers': [
                    'SLAC-R-773',
                ],
            },
        },
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['references'], subschema) is None
    assert expected == result['references']

    expected = [{
        '0': 701721,
        'h': [
            'Ferrari, A.',
            'Sala, P.R.',
            'Fasso, A.',
            'Ranft, J.',
        ],
        'm': 'FLUKA: a multi-particle transport code, CERN-10 , INFN/TC_05/11',
        'r': [
            'SLAC-R-773',
        ],
        'o': '13',
        'y': 2005,
    }]
    result = hep2marc.do(result)

    assert expected == result['999C5']
Exemple #30
0
def test_references_from_999C50_9_r_u_h_m_o():
    schema = load_schema('hep')
    subschema = schema['properties']['references']

    snippet = (
        '<datafield tag="999" ind1="C" ind2="5">'
        '  <subfield code="0">1511470</subfield>'
        '  <subfield code="9">CURATOR</subfield>'
        '  <subfield code="r">urn:nbn:de:hebis:77-diss-1000009520</subfield>'
        '  <subfield code="u">http://www.diss.fu-berlin.de/diss/receive/FUDISS_thesis_000000094316</subfield>'
        '  <subfield code="h">K. Wiebe</subfield>'
        '  <subfield code="m">Ph.D. thesis, University of Mainz, in preparation</subfield>'
        '  <subfield code="o">51</subfield>'
        '</datafield>')  # record/1504897

    expected = [
        {
            'curated_relation': False,
            'record': {
                '$ref': 'http://localhost:5000/api/literature/1511470',
            },
            'reference': {
                'authors': [
                    {
                        'full_name': 'Wiebe, K.'
                    },
                ],
                'label':
                '51',
                'misc': [
                    'Ph.D. thesis, University of Mainz, in preparation',
                ],
                'report_numbers': [
                    'urn:nbn:de:hebis:77-diss-1000009520',
                ],
                'urls': [
                    {
                        'value':
                        'http://www.diss.fu-berlin.de/diss/receive/FUDISS_thesis_000000094316'
                    },
                ],
            },
        },
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['references'], subschema) is None
    assert expected == result['references']

    expected = [
        {
            '0':
            1511470,
            'h': [
                'Wiebe, K.',
            ],
            'r': [
                'urn:nbn:de:hebis:77-diss-1000009520',
            ],
            'm':
            'Ph.D. thesis, University of Mainz, in preparation',
            'o':
            '51',
            'u': [
                'http://www.diss.fu-berlin.de/diss/receive/FUDISS_thesis_000000094316',
            ],
        },
    ]
    result = hep2marc.do(result)

    assert expected == result['999C5']
Exemple #31
0
def test_authors_from_100__a_j_m_u_v_w_y():
    schema = load_schema('hep')
    subschema = schema['properties']['authors']

    snippet = (
        '<datafield tag="100" ind1=" " ind2=" ">'
        '  <subfield code="a">MacNair, David</subfield>'
        '  <subfield code="j">JACoW-00009522</subfield>'
        '  <subfield code="m">[email protected]</subfield>'
        '  <subfield code="u">SLAC</subfield>'
        '  <subfield code="v">SLAC, Menlo Park, California, USA</subfield>'
        '  <subfield code="w">D.Macnair.2</subfield>'
        '  <subfield code="y">0</subfield>'
        '</datafield>')

    expected = [
        {
            'affiliations': [
                {
                    'value': 'SLAC'
                },
            ],
            'emails': [
                '*****@*****.**',
            ],
            'full_name':
            'MacNair, David',
            'ids': [
                {
                    'schema': 'JACOW',
                    'value': 'JACoW-00009522',
                },
                {
                    'schema': 'INSPIRE BAI',
                    'value': 'D.Macnair.2',
                },
            ],
            'raw_affiliations': [{
                'value': 'SLAC, Menlo Park, California, USA'
            }],
        },
    ]
    result = hep.do(create_record(snippet))

    assert validate(result['authors'], subschema) is None
    assert expected == result['authors']

    expected = {
        'a': 'MacNair, David',
        'j': [
            'JACoW-00009522',
        ],
        'm': [
            '*****@*****.**',
        ],
        'u': [
            'SLAC',
        ],
        'v': [
            'SLAC, Menlo Park, California, USA',
        ],
    }
    result = hep2marc.do(result)

    assert expected == result['100']