Esempio n. 1
0
def test_creatibutor_name_edge_cases():
    # Pass in name and family_name: name is ignored
    valid_person_name_and_given_name = {
        "name": "Cesar, Julio",
        "family_name": "Cesar",
        "type": "personal"
    }
    expected = {
        "name": "Cesar",
        "type": "personal",
        "family_name": "Cesar",
    }
    assert expected == PersonOrOrganizationSchema().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 == PersonOrOrganizationSchema().load(
        valid_org_name_and_family_name)
Esempio n. 2
0
def test_creator_person_valid_minimal():
    valid_given_name = {"given_name": "Julio", "type": "personal"}
    expected = {
        "given_name": "Julio",
        "name": "Julio",
        "type": "personal",
    }
    assert expected == PersonOrOrganizationSchema().load(valid_given_name)

    valid_family_name = {"family_name": "Cesar", "type": "personal"}
    expected = {
        "family_name": "Cesar",
        "name": "Cesar",
        "type": "personal",
    }
    assert expected == PersonOrOrganizationSchema().load(valid_family_name)
Esempio n. 3
0
def test_creator_invalid_no_type():
    invalid_no_type = {
        "name": "Julio Cesar",
    }

    assert_raises_messages(
        lambda: PersonOrOrganizationSchema().load(invalid_no_type), {
            'type':
            ["Invalid value. Choose one of ['organizational', 'personal']."]
        })
Esempio n. 4
0
def test_creator_invalid_identifiers_ror():
    invalid_ror_identifier = {
        "name": "Julio Cesar Empire",
        "type": "organizational",
        "identifiers": [{
            "scheme": "ror",
            "identifier": "9999-9999-9999-9999",
        }]
    }

    loaded = PersonOrOrganizationSchema().load(invalid_ror_identifier)
    # Check that the scheme type was force by the backend
    assert loaded["identifiers"][0]["scheme"] == "gnd"
def test_creator_invalid_identifiers_ror(app):
    invalid_ror_identifier = {
        "name": "Julio Cesar Empire",
        "type": "organizational",
        "identifiers": [{
            "scheme": "ror",
            "identifier": "9999-9999-9999-9999",
        }]
    }

    assert_raises_messages(
        lambda: PersonOrOrganizationSchema().load(invalid_ror_identifier),
        {'identifiers': {0: {'identifier': 'Invalid ROR identifier.'}}}
    )
Esempio n. 6
0
def test_creator_organization_valid_full():
    # Full organization
    valid_full_org = {
        "name": "California Digital Library",
        "type": "organizational",
        "identifiers": [{
            "scheme": "ror",
            "identifier": "03yrm5c26"
        }],
        "family_name": "I am ignored!"
    }

    loaded = PersonOrOrganizationSchema().load(valid_full_org)
    valid_full_org.pop("family_name")
    assert valid_full_org == loaded
def test_creator_invalid_identifiers_orcid(app):
    invalid_orcid_identifier = {
        "family_name": "Cesar",
        "given_name": "Julio",
        "type": "personal",
        "identifiers": [{
            "scheme": "orcid",
            # NOTE: This *is* an invalid ORCiD
            "identifier": "9999-9999-9999-9999",
        }]
    }

    assert_raises_messages(
        lambda: PersonOrOrganizationSchema().load(invalid_orcid_identifier),
        {'identifiers': {0: {'identifier': 'Invalid ORCID identifier.'}}}
    )
Esempio n. 8
0
def test_creator_invalid_identifiers_orcid():
    invalid_orcid_identifier = {
        "family_name":
        "Cesar",
        "given_name":
        "Julio",
        "type":
        "personal",
        "identifiers": [{
            "scheme": "orcid",
            # NOTE: This *is* an invalid ORCiD
            "identifier": "9999-9999-9999-9999",
        }]
    }

    loaded = PersonOrOrganizationSchema().load(invalid_orcid_identifier)
    # Check that the scheme type was force by the backend
    assert loaded["identifiers"][0]["scheme"] == "gnd"
Esempio n. 9
0
def test_creator_invalid_identifiers_scheme():
    invalid_scheme = {
        "family_name":
        "Cesar",
        "given_name":
        "Julio",
        "type":
        "personal",
        "identifiers": [{
            "scheme": "unapproved scheme",
            "identifier": "0000-0002-1825-0097",
        }]
    }

    # Check returns the 3 schemes (org + personal)
    # because the scheme-per-type check comes later on
    loaded = PersonOrOrganizationSchema().load(invalid_scheme)
    # Check that the scheme type was force by the backend
    assert loaded["identifiers"][0]["scheme"] == "orcid"
def test_creator_invalid_identifiers_scheme(app):
    invalid_scheme = {
        "family_name": "Cesar",
        "given_name": "Julio",
        "type": "personal",
        "identifiers": [{
            "scheme": "unapproved scheme",
            "identifier": "0000-0002-1825-0097",
        }]
    }

    # Check returns the 3 schemes (org + personal)
    # because the scheme-per-type check comes later on
    assert_raises_messages(
        lambda: PersonOrOrganizationSchema().load(invalid_scheme),
        {'identifiers': {0: {
            'scheme': 'Invalid scheme.'
        }}}
    )
Esempio n. 11
0
def test_creator_organization_valid_minimal():
    valid_minimal = {"name": "Julio Cesar Empire", "type": "organizational"}
    assert valid_minimal == PersonOrOrganizationSchema().load(valid_minimal)