def test_creatibutor_name_edge_cases(): # Pass in name and given_name: name is ignored valid_person_name_and_given_name = { "name": "Cesar, Julio", "given_name": "Julio", "type": "personal" } expected = { "name": "Julio", "type": "personal", "given_name": "Julio", } assert expected == CreatorSchema().load(valid_person_name_and_given_name) # Pass name and family_name for organization: family_name is ignored and # removed valid_org_name_and_family_name = { "name": "Julio Cesar Inc.", "family_name": "Cesar", "type": "organizational" } expected = { "name": "Julio Cesar Inc.", "type": "organizational", } assert expected == CreatorSchema().load(valid_org_name_and_family_name)
def test_creator_person_valid_minimal(): valid_given_name = {"given_name": "Julio", "type": "personal"} expected = { "given_name": "Julio", "name": "Julio", "type": "personal", } assert expected == CreatorSchema().load(valid_given_name) valid_family_name = {"family_name": "Cesar", "type": "personal"} expected = { "family_name": "Cesar", "name": "Cesar", "type": "personal", } assert expected == CreatorSchema().load(valid_family_name)
def test_creator_person_invalid_no_given_name_nor_family_name(): invalid_no_given_name_nor_family_name = { "person_or_org": { "identifiers": [{ "scheme": "orcid", "identifier": "0000-0002-1825-0097", }], "type": "personal" }, "affiliations": [{ "name": "Entity One", "identifiers": [{ "scheme": "ror", "identifier": "03yrm5c26" }] }], } assert_raises_messages( lambda: CreatorSchema().load(invalid_no_given_name_nor_family_name), { "person_or_org": { 'given_name': ['Family name or given name must be filled.'], 'family_name': ['Family name or given name must be filled.'] } })
def test_creator_person_valid_full(): valid_full_person = { "person_or_org": { "type": "personal", "given_name": "Julio", "family_name": "Cesar", "identifiers": [{ "scheme": "orcid", "identifier": "0000-0002-1825-0097", }], }, "affiliations": [{ "name": "Entity One", "identifiers": [{ "scheme": "ror", "identifier": "03yrm5c26" }] }] } loaded = CreatorSchema().load(valid_full_person) valid_full_person["person_or_org"]["name"] = "Cesar, Julio" assert valid_full_person == loaded
def test_creator_invalid_no_type(): invalid_no_type = { "name": "Julio Cesar", } assert_raises_messages(lambda: CreatorSchema().load(invalid_no_type), { 'type': ["Invalid value. Choose one of ['organizational', 'personal']."] })
def test_creator_invalid_identifiers_scheme(): invalid_scheme = { "name": "Julio Cesar", "type": "personal", "identifiers": { "unapproved scheme": "0000-0002-1825-0097", } } assert_raises_messages( lambda: CreatorSchema().load(invalid_scheme), {'identifiers': ["Invalid value. Choose one of ['orcid', 'ror']."]})
def test_creator_organization_invalid_identifiers(): invalid_identifier_for_org = { "name": "Julio Cesar Empire", "type": "organizational", "identifiers": { "orcid": "0000-0002-1825-0097", } } assert_raises_messages( lambda: CreatorSchema().load(invalid_identifier_for_org), {'identifiers': ["Invalid value. Choose one of ['ror']."]})
def test_creator_invalid_identifiers_for_person(): invalid_identifier_for_person = { "name": "Julio Cesar", "type": "personal", "identifiers": { "ror": "03yrm5c26" } } assert_raises_messages( lambda: CreatorSchema().load(invalid_identifier_for_person), {'identifiers': ["Invalid value. Choose one of ['orcid']."]})
def test_creator_invalid_identifiers_ror(): invalid_ror_identifier = { "name": "Julio Cesar Empire", "type": "organizational", "identifiers": { "ror": "9999-9999-9999-9999", } } assert_raises_messages( lambda: CreatorSchema().load(invalid_ror_identifier), {'identifiers': {'ror': ["Invalid value."]}} )
def test_creator_valid_full_organization(): # Full organization valid_full_org = { "name": "California Digital Library", "type": "organizational", "identifiers": { "ror": "03yrm5c26", }, # "given_name", "family_name" and "affiliations" are ignored if passed "family_name": "I am ignored!" } data = CreatorSchema().load(valid_full_org) assert data == valid_full_org
def test_creator_invalid_identifiers_orcid(): invalid_orcid_identifier = { "name": "Julio Cesar", "type": "personal", "identifiers": { # NOTE: This *is* an invalid ORCiD "orcid": "9999-9999-9999-9999", } } assert_raises_messages( lambda: CreatorSchema().load(invalid_orcid_identifier), {'identifiers': {'orcid': ["Invalid value."]}} )
def test_creator_valid_role(vocabulary_clear): valid_role = { "family_name": "Cesar", "given_name": "Julio", "type": "personal", "role": "rightsholder" } expected = { "family_name": "Cesar", "given_name": "Julio", "name": "Cesar, Julio", "type": "personal", "role": "rightsholder" } assert expected == CreatorSchema().load(valid_role)
def test_creator_person_valid_no_given_name(app): valid_full_person = { "person_or_org": { "type": "personal", "family_name": "Cesar", "identifiers": [{ "scheme": "orcid", "identifier": "0000-0002-1825-0097", }], }, "affiliations": [{"id": "test"}] } loaded = CreatorSchema().load(valid_full_person) valid_full_person["person_or_org"]["name"] = "Cesar" assert valid_full_person == loaded
def test_creator_organization_valid_full(): # Full organization valid_full_org = { "name": "California Digital Library", "type": "organizational", "identifiers": { "ror": "03yrm5c26", }, "family_name": "I am ignored!" } expected = { "name": "California Digital Library", "type": "organizational", "identifiers": { "ror": "03yrm5c26", }, } assert expected == CreatorSchema().load(valid_full_org)
def test_creator_valid_full_person(): valid_full_person = { "name": "Julio Cesar", "type": "personal", "given_name": "Julio", "family_name": "Cesar", "identifiers": { "orcid": '0000-0002-1825-0097', }, "affiliations": [{ "name": "Entity One", "identifiers": { "ror": "03yrm5c26" } }] } data = CreatorSchema().load(valid_full_person) assert data == valid_full_person
def test_creator_person_invalid_no_family_name(app): invalid_no_family_name = { "person_or_org": { "given_name": "Julio", "identifiers": [{ "scheme": "orcid", "identifier": "0000-0002-1825-0097", }], "type": "personal" }, "affiliations": [{"id": "test"}] } assert_raises_messages( lambda: CreatorSchema().load(invalid_no_family_name), {"person_or_org": { 'family_name': ['Family name must be filled.'] }} )
def test_creator_valid_role(app): valid_role = { "person_or_org": { "family_name": "Cesar", "given_name": "Julio", "type": "personal", }, "role": {"id": "editor"} } expected = { "person_or_org": { "family_name": "Cesar", "given_name": "Julio", "name": "Cesar, Julio", "type": "personal", }, "role": {"id": "editor"} } assert expected == CreatorSchema().load(valid_role)
def test_creator_invalid_no_name(): invalid_no_name = { "type": "personal", "given_name": "Julio", "family_name": "Cesar", "identifiers": { "orcid": "0000-0002-1825-0097", }, "affiliations": [{ "name": "Entity One", "identifiers": { "ror": "03yrm5c26" } }] } assert_raises_messages( lambda: CreatorSchema().load(invalid_no_name), {'name': ['Missing data for required field.']} )
def test_creator_organization_valid_minimal(): valid_minimal = {"name": "Julio Cesar Empire", "type": "organizational"} assert valid_minimal == CreatorSchema().load(valid_minimal)
def test_creator_valid_minimal(): valid_minimal = { "name": "Julio Cesar", "type": "personal" } assert valid_minimal == CreatorSchema().load(valid_minimal)