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
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)
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)
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}
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)
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"]
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