def test_journals_create_with_invalid_data(inspire_app): data = faker.record("jou", with_control_number=True) data["invalid_key"] = "should throw an error" record_control_number = str(data["control_number"]) with pytest.raises(ValidationError): JournalsRecord.create(data) record_pid = PersistentIdentifier.query.filter_by( pid_value=record_control_number).one_or_none() assert record_pid is None
def test_journals_create_with_existing_control_number(inspire_app): data = faker.record("jou", with_control_number=True) existing_object_uuid = uuid.uuid4() create_pidstore( object_uuid=existing_object_uuid, pid_type="jou", pid_value=data["control_number"], ) with pytest.raises(PIDAlreadyExists): JournalsRecord.create(data)
def test_create_record_from_db_depending_on_its_pid_type(inspire_app): data = faker.record("jou") record = InspireRecord.create(data) assert type(record) == JournalsRecord assert record.pid_type == "jou" record = JournalsRecord.create(data) assert type(record) == JournalsRecord assert record.pid_type == "jou"
def test_journals_create(inspire_app): data = faker.record("jou") record = JournalsRecord.create(data) control_number = str(record["control_number"]) record_db = RecordMetadata.query.filter_by(id=record.id).one() assert record == record_db.json record_pid = PersistentIdentifier.query.filter_by( pid_type="jou", pid_value=str(control_number)).one() assert record.model.id == record_pid.object_uuid assert control_number == record_pid.pid_value
def test_indexer_deletes_record_from_es(inspire_app, datadir): def assert_record_is_deleted_from_es(): current_search.flush_and_refresh("records-journals") expected_records_count = 0 record_lit_es = JournalsSearch().get_record(str(record.id)).execute().hits assert expected_records_count == len(record_lit_es) data = orjson.loads((datadir / "1213103.json").read_text()) record = JournalsRecord.create(data) db.session.commit() record.delete() db.session.commit() retry_until_pass(assert_record_is_deleted_from_es)
def test_journals_update(inspire_app): data = faker.record("jou", with_control_number=True) record = JournalsRecord.create(data) assert data["control_number"] == record["control_number"] data_update = {"public_notes": [{"value": "UPDATED"}]} data.update(data_update) record.update(data) control_number = str(record["control_number"]) record_updated_db = RecordMetadata.query.filter_by(id=record.id).one() assert data == record_updated_db.json record_updated_pid = PersistentIdentifier.query.filter_by( pid_type="jou", pid_value=str(control_number)).one() assert record.model.id == record_updated_pid.object_uuid assert control_number == record_updated_pid.pid_value
def test_aut_citation_count_property_blows_up_on_wrong_pid_type(inspire_app): data = faker.record("jou") record = JournalsRecord.create(data) with pytest.raises(AttributeError): record.citation_count