def test_valid_unmanaged(app, db, minimal_record, location): valid_full = { "doi": { "identifier": "10.5281/zenodo.1234", "provider": "external", } } minimal_record["pids"] = valid_full assert valid_full == RDMRecordSchema().load(minimal_record)["pids"]
def test_valid_unknown_scheme(app, db, minimal_record, location): valid_full = { "rand-unknown": { "identifier": "aa::bb::11:::22", "provider": "datacite", "client": "zenodo" } } minimal_record["pids"] = valid_full assert valid_full == RDMRecordSchema().load(minimal_record)["pids"]
def test_valid_pid(app, db, minimal_record, location): valid_full = { "doi": { "identifier": "10.5281/zenodo.1234", "provider": "datacite", "client": "zenodo" } } minimal_record["pids"] = valid_full assert valid_full == RDMRecordSchema().load(minimal_record)["pids"]
def test_invalid_external_with_client(app, db, minimal_record, location): invalid_pid_type = { "doi": { "identifier": "10.5281/zenodo.1234", "provider": "external", "client": "zenodo" } } minimal_record["pids"] = invalid_pid_type with pytest.raises(ValidationError): data = RDMRecordSchema().load(minimal_record)
def test_valid_pid(app, db, minimal_record, location): # NOTE: PID attributes validity is checked at component level # At marshmallow level only the identifier's format is checked # based on the scheme value valid_full = { "doi": { "identifier": "10.5281/zenodo.1234", "provider": "datacite", "client": "zenodo" } } minimal_record["pids"] = valid_full assert valid_full == RDMRecordSchema().load(minimal_record)["pids"]