Beispiel #1
0
def test_jobs_create_with_invalid_data(base_app, db, create_pidstore):
    data = faker.record("job", with_control_number=True)
    data["invalid_key"] = "should throw an error"
    record_control_number = str(data["control_number"])

    with pytest.raises(ValidationError):
        JobsRecord.create(data)

    record_pid = PersistentIdentifier.query.filter_by(
        pid_value=record_control_number
    ).one_or_none()
    assert record_pid is None
Beispiel #2
0
def test_jobs_create_with_existing_control_number(base_app, db, create_pidstore):
    data = faker.record("job", with_control_number=True)
    existing_object_uuid = uuid.uuid4()

    create_pidstore(
        object_uuid=existing_object_uuid,
        pid_type="job",
        pid_value=data["control_number"],
    )

    with pytest.raises(PIDAlreadyExists):
        JobsRecord.create(data)
Beispiel #3
0
 def post(self):
     """Adds new job record"""
     data = job_loader_v1()
     data = self.prepare_data(data)
     record = JobsRecord.create(data)
     db.session.commit()
     self.create_ticket(record, "rt/new_job.html")
     return jsonify({"pid_value": record["control_number"]}), 201
Beispiel #4
0
 def post(self):
     """Adds new job record"""
     data = self.load_data_from_request()
     builder = self.get_builder_with_new_record(data)
     data = self.get_valid_record_data_from_builder(builder)
     record = JobsRecord.create(data)
     db.session.commit()
     self.create_ticket(record, "rt/new_job.html")
     return jsonify({"pid_value": record["control_number"]}), 201
Beispiel #5
0
def test_create_record_from_db_depending_on_its_pid_type(base_app, db, es):
    data = faker.record("job")
    record = InspireRecord.create(data)
    assert type(record) == JobsRecord
    assert record.pid_type == "job"

    record = JobsRecord.create(data)
    assert type(record) == JobsRecord
    assert record.pid_type == "job"
Beispiel #6
0
def test_create_record_from_db_depending_on_its_pid_type(inspire_app):
    data = faker.record("job")
    record = InspireRecord.create(data)
    assert isinstance(record, JobsRecord)
    assert record.pid_type == "job"

    record = JobsRecord.create(data)
    assert isinstance(record, JobsRecord)
    assert record.pid_type == "job"
Beispiel #7
0
def test_indexer_deletes_record_from_es(inspire_app):
    def assert_record_is_deleted_from_es():
        current_search.flush_and_refresh("records-jobs")
        expected_records_count = 0
        record_lit_es = JobsSearch().get_record(str(record.id)).execute().hits
        assert expected_records_count == len(record_lit_es)

    record = JobsRecord.create(faker.record("job"))
    db.session.commit()

    record.delete()
    db.session.commit()

    retry_until_pass(assert_record_is_deleted_from_es)
Beispiel #8
0
def test_jobs_create(base_app, db, es):
    data = faker.record("job")
    record = JobsRecord.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="job", pid_value=str(control_number)
    ).one()

    assert record.model.id == record_pid.object_uuid
    assert control_number == record_pid.pid_value
Beispiel #9
0
def test_jobs_update(base_app, db, es):
    data = faker.record("job", with_control_number=True)
    record = JobsRecord.create(data)

    assert data["control_number"] == record["control_number"]
    data_update = {"description": "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="job", pid_value=str(control_number)
    ).one()

    assert record.model.id == record_updated_pid.object_uuid
    assert control_number == record_updated_pid.pid_value
Beispiel #10
0
def test_aut_citation_count_property_blows_up_on_wrong_pid_type(base_app, db, es):
    data = faker.record("job")
    record = JobsRecord.create(data)

    with pytest.raises(AttributeError):
        record.citation_count