Пример #1
0
def test_minter_change_opening_date_doesnt_change_cnum(inspire_app):
    data = {
        "$schema": "https://labs.inspirehep.net/schemas/records/conferences.json",
        "_collections": ["Conferences"],
        "opening_date": "2005-09-16",
    }
    record = ConferencesRecord.create(data)
    expected_cnum = "C05-09-16"

    assert "cnum" in record
    assert record["cnum"] == expected_cnum

    record["opening_date"] = "2020-09-16"
    record.update(dict(record))

    updated_rec = ConferencesRecord.get_record_by_pid_value(record["control_number"])

    assert updated_rec["opening_date"] == "2020-09-16"
    assert updated_rec["cnum"] == expected_cnum
Пример #2
0
def assign_paper_to_conference(literature_recids, conference_recid):
    try:
        conference = ConferencesRecord.get_record_by_pid_value(
            conference_recid)
    except PIDDoesNotExistError:
        LOGGER.exception(
            "Cannot assign papers to conference. Conference does not exist.",
            conference_recid=conference_recid,
        )
    conference_ref = conference.get("self")
    cnum = conference.get("cnum")
    for recid in literature_recids:
        try:
            record = LiteratureRecord.get_record_by_pid_value(recid)
        except PIDDoesNotExistError:
            LOGGER.error(
                "Cannot assign record to conference. Record does not exist.",
                literature_recid=recid,
                conference_recid=conference_recid,
            )
            continue
        with db.session.begin_nested():
            try:
                updated_data = assign_conference(record, conference_ref, cnum)
                record.update(updated_data)
            except ValidationError:
                LOGGER.exception(
                    "Cannot assign conference to paper.",
                    recid=recid,
                    cnum=cnum,
                    conference_recid=conference_recid,
                )
            except MissingArgumentError:
                LOGGER.error(
                    "CNUM and conference $ref are required.",
                    cnum=cnum,
                    conference_ref=conference_ref,
                    record_recid=recid,
                )
    db.session.commit()