def test_search_check_do_partitions_work_in_indexed_jobs(inspire_app):
    for i in range(4560, 4570):
        create_record("lit", data={"control_number": i})

    class AddPublicNote(SearchCheckDo):
        query = ""

        @staticmethod
        def check(record, logger, state):
            return True

        @staticmethod
        def do(record, logger, state):
            record["public_notes"] = [{"value": "Modified record"}]

    with patch.dict(os.environ, {"JOB_COMPLETION_INDEX": "3", "JOB_COMPLETIONS": "5"}):
        AddPublicNote()

    for record in InspireRecord.get_records_by_pids(
        [("lit", str(i)) for i in range(4560, 4570)]
    ):
        if record["control_number"] in [4563, 4568]:
            assert record["public_notes"] == [{"value": "Modified record"}]
        else:
            assert "public_notes" not in record
示例#2
0
def test_get_records_by_pids_with_empty(inspire_app):
    pids = []

    expected_result_len = 0

    result_uuids = InspireRecord.get_records_by_pids(pids)
    result_uuids = list(result_uuids)

    assert expected_result_len == len(result_uuids)
示例#3
0
def test_get_records_by_pids_with_not_existing_pids(inspire_app):
    pids = [("lit", "123"), ("aut", "234"), ("lit", "345")]

    expected_result_len = 0

    result_uuids = InspireRecord.get_records_by_pids(pids)
    result_uuids = list(result_uuids)

    assert expected_result_len == len(result_uuids)
示例#4
0
def _get_hal_id_map(record):
    affiliations = record.get_value("authors.affiliations.record", default=[])
    affiliation_list = chain.from_iterable(affiliations)
    affiliation_recids = [get_recid_from_ref(el) for el in affiliation_list]

    pids = [("ins", str(pid)) for pid in affiliation_recids]
    institutions = InspireRecord.get_records_by_pids(pids)

    return {el["control_number"]: _get_hal_id(el) for el in institutions}
示例#5
0
def test_get_records_by_pids_with_empty(base_app, db, es,
                                        create_record_factory):
    pids = []

    expected_result_len = 0

    result_uuids = InspireRecord.get_records_by_pids(pids)
    result_uuids = list(result_uuids)

    assert expected_result_len == len(result_uuids)
示例#6
0
def test_clean_stub_authors_query_all_stub_authors(override_config,
                                                   inspire_app, cli):
    with override_config(FEATURE_FLAG_ENABLE_BAI_PROVIDER=True,
                         FEATURE_FLAG_ENABLE_BAI_CREATION=True):
        control_numbers = []
        for _ in range(30):
            rec = create_record("aut",
                                data={"stub": True},
                                with_control_number=True)
            control_numbers.append(("aut", str(rec["control_number"])))

        cli.invoke(["disambiguation", "clean_stub_authors"])

        results = InspireRecord.get_records_by_pids(control_numbers)
        for result in results:
            assert result["deleted"]
示例#7
0
def test_get_records_by_pids(inspire_app):
    records = [
        create_record_factory("lit"),
        create_record_factory("lit"),
        create_record_factory("lit"),
    ]

    pids = [("lit", str(record.json["control_number"])) for record in records]

    expected_result_len = 3
    expected_result = [record.json for record in records]

    result = InspireRecord.get_records_by_pids(pids)
    result = list(result)

    assert expected_result_len == len(result)
    for record in result:
        assert record in expected_result