"""test_11_CheckAndFix_base * Test CheckAndFix methods required by the Automaton base class. - constructor - is_bad_aoi - temporary_record - authors - my_affiliation - collaboration """ import pytest import requests from gluon import current from harvest_tools.base import search_synonym from harvest_tools.checkandfix import CheckAndFix, CheckException from store_tools import load_record @pytest.fixture(scope="module") def reccds(): return load_record("cds.cern.ch", 1951625) @pytest.fixture(scope="module") def recins(): return load_record("inspirehep.net", 1319638, shelf="literature") @pytest.fixture(scope="module") def svc(): return CheckAndFix() def test_constructor_11001(svc): assert svc.reg_institute == \ r"(^|\|)Marseille, CPPM($|\|)|" \ r"(^|\|)CPPM, Marseille($|\|)|" \ r"(^|\|)Centre de Physique des Particules de Marseille \(CPPM\)($|\|)|" \ r"(^|\|)Aix Marseille Univ, CNRS/IN2P3, CPPM, Marseille, France($|\|)" # ............................................................................ # # cds.cern.ch record # def test_is_oai_cds_11010(svc, reccds): assert svc.is_oai(reccds) def test_is_bad_oai_cds_11011(svc, reccds): assert not svc.is_bad_oai_used(reccds) def test_temporary_record_cds_11012(svc, reccds): assert svc.temporary_record(reccds) is None # look for some temporarily record in inspirehep.net # using the MarcXML syntax # get a list of recids payload = {"p": "500__a:'*Temporary record*'", "of": "id", "rg": 10} r = requests.get("https://old.inspirehep.net/search", params=payload) li = r.json() # try with the oldest one to avoid issue with missing information, etc. with pytest.raises(CheckException): recins = load_record("inspirehep.net", li[-1]) svc.temporary_record(recins) def test_authors_cds_11013(svc, reccds): assert svc.authors(reccds) is None def test__get_author_rescue_list_cds_11014(svc, reccds): assert svc._get_author_rescue_list(reccds, 8, 7) == ["C. Adrover", "S. Akar", "E. Aslanides", "J. Cogan", "W. Kanso", "R. Le Gac", "O. Leroy", "G. Mancinelli", "E. Maurice", "A. Morda", "A. Mordà", "M. Perrin-Terrin", "M. Sapunov", "J. Serrano", "A. Tsaregorodtsev"] def test_my_affiliation_cds_11015(svc, reccds): assert svc.my_affiliation(reccds, 8, 7) == "Marseille, CPPM" # a paper from NA62 -- no CPPM author recna62 = load_record("cds.cern.ch", 1434415) with pytest.raises(CheckException): svc.my_affiliation(recna62, id_project=8, id_team=7) def test_collaboration_cds_11016(svc, reccds): assert svc.collaboration(reccds) is None # ............................................................................ # # inspirehep.net record (March 2020 onward) # def test_is_oai_ins_11020(svc, recins): assert svc.is_oai(recins) def test_is_bad_oai_ins_11021(svc, recins): assert not svc.is_bad_oai_used(recins) def test_authors_ins_11023(svc, recins): assert svc.authors(recins) is None def test__get_author_rescue_list_ins_11024(svc, recins): assert svc._get_author_rescue_list(recins, 8, 7) == ["C. Adrover", "S. Akar", "E. Aslanides", "J. Cogan", "W. Kanso", "R. Le Gac", "O. Leroy", "G. Mancinelli", "E. Maurice", "A. Morda", "A. Mordà", "M. Perrin-Terrin", "M. Sapunov", "J. Serrano", "A. Tsaregorodtsev"] def test_my_affiliation_ins_11025(svc, recins): assert svc.my_affiliation(recins, 8, 7) == "Marseille, CPPM" # a paper from NA62 -- no CPPM author recna62 = load_record("cds.cern.ch", 1434415) with pytest.raises(CheckException): svc.my_affiliation(recna62, id_project=8, id_team=7) def test_collaboration_ins_11026(svc, recins): assert svc.collaboration(recins) is None # ............................................................................ # # others # def test_search_synonym_11030(): db = current.db # collaboration ANTARES, TANAMI (defined as synonym in the db) record = load_record("inspirehep.net", 1342250, shelf="literature") colid = search_synonym( db.collaborations, "collaboration", record.collaboration()) assert colid == 2 # collaboration = ANTARES (defined as synonym in the db)) record = load_record("inspirehep.net", 718872, shelf="literature") colid = search_synonym( db.collaborations, "collaboration", record.collaboration()) assert colid == 2