示例#1
0
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"]
示例#2
0
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)
示例#5
0
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"]