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
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()