Exemple #1
0
def test_valid_minimal_related_identifiers():
    valid_minimal = {
        "identifier": "10.5281/zenodo.9999988",
        "scheme": "doi",
        "relation_type": "requires"
    }

    data = RelatedIdentifierSchema().load(valid_minimal)
    assert data == valid_minimal
def test_invalid_no_type_related_identifiers(app):
    invalid_no_relation_type = {
        "identifier": "10.5281/rdm.9999988",
        "scheme": "doi",
        "resource_type": {
            "id": "image-photo"
        }
    }
    with pytest.raises(ValidationError):
        data = RelatedIdentifierSchema().load(invalid_no_relation_type)
def test_invalid_no_identifiers_related_identifiers(app):
    invalid_no_identifier = {
        "scheme": "doi",
        "relation_type": {"id": "requires"},
        "resource_type": {
            "id": "image-photo"
        }
    }
    with pytest.raises(ValidationError):
        data = RelatedIdentifierSchema().load(invalid_no_identifier)
def test_invalid_no_scheme_related_identifiers(app):
    invalid_no_scheme = {
        "identifier": "10.5281/zenodo.9999988",
        "relation_type": "requires",
        "resource_type": {
            "type": "image",
            "subtype": "image-photo"
        }
    }
    with pytest.raises(ValidationError):
        data = RelatedIdentifierSchema().load(invalid_no_scheme)
def test_invalid_scheme_related_identifiers(app):
    invalid_scheme = {
        "identifier": "10.5281/rdm.9999988",
        "scheme": "INVALID",
        "relation_type": {"id": "requires"},
        "resource_type": {
            "id": "image-photo"
        }
    }

    with pytest.raises(ValidationError):
        RelatedIdentifierSchema().load(invalid_scheme)
def test_valid_no_scheme_related_identifiers(app):
    """It is valid becuase the schema is detected by the schema."""
    valid_no_scheme = {
        "identifier": "10.5281/zenodo.9999988",
        "relation_type": {"id": "requires"},
        "resource_type": {
            "id": "image-photo"
        }
    }
    loaded = RelatedIdentifierSchema().load(valid_no_scheme)
    valid_no_scheme["scheme"] = "doi"
    assert valid_no_scheme == loaded
def test_valid_related_identifiers(app):
    valid_full = {
        "identifier": "10.5281/rdm.9999988",
        "scheme": "doi",
        "relation_type": {"id": "requires"},
        "resource_type": {
            "id": "image-photo"
        }
    }

    data = RelatedIdentifierSchema().load(valid_full)
    assert data == valid_full
def test_invalid_extra_field_related_identifiers(app):
    invalid_extra = {
        "identifier": "10.5281/rdm.9999988",
        "scheme": "doi",
        "relation_type": {"id": "requires"},
        "resource_type": {
            "id": "image-photo"
        },
        "extra": "field"
    }
    with pytest.raises(ValidationError):
        data = RelatedIdentifierSchema().load(invalid_extra)
def test_invalid_scheme_related_identifiers(app):
    invalid_scheme = {
        "identifier": "10.5281/zenodo.9999988",
        "scheme": "INVALID",
        "relation_type": "requires",
        "resource_type": {
            "id": "image-photo"
        }
    }

    loaded = RelatedIdentifierSchema().load(invalid_scheme)
    # Check the backend forced the correct scheme
    assert loaded["scheme"] == "doi"