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)
示例#3
0
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.']
            }
        })
示例#4
0
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)