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"