def test_base_provider_validate_failure(app, db):
    provider = BasePIDProvider(pid_type="testid")
    success, errors = provider.validate(identifier=None,
                                        client=None,
                                        provider="fail")
    assert not success
    assert errors == [_("Provider name fail does not match None")]
def test_base_provider_validate_no_values_given(app, db):
    provider = BasePIDProvider(pid_type="testid")
    # base has name set to None
    success, errors = provider.validate(identifier=None,
                                        client=None,
                                        provider=None)
    assert success
    assert not errors
Пример #3
0
def test_base_provider_hard_delete(app, db):
    provider = BasePIDProvider(pid_type="testid")

    created_pid = provider.create(pid_value="1234")
    assert provider.delete(created_pid, {})

    # NOTE: DB level requires pid_type
    with pytest.raises(PIDDoesNotExistError):
        PersistentIdentifier.get(pid_value="1234", pid_type="testid")
Пример #4
0
def test_base_provider_get_existing_different_status(app, db):
    provider = BasePIDProvider(pid_type="testid")

    created_pid = provider.create(pid_value="1234", status=PIDStatus.RESERVED)
    get_pid = provider.get(pid_value="1234")

    assert created_pid == get_pid
    assert get_pid.pid_value == "1234"
    assert get_pid.pid_type == "testid"
    assert get_pid.status == PIDStatus.RESERVED
Пример #5
0
def test_base_provider_create(app, db):
    provider = BasePIDProvider()

    created_pid = provider.create(pid_value="1234", pid_type="testid")
    db_pid = PersistentIdentifier.get(pid_value="1234", pid_type="testid")

    assert created_pid == db_pid
    assert created_pid.pid_value == "1234"
    assert created_pid.pid_type == "testid"
    assert created_pid.status == PIDStatus.NEW
Пример #6
0
def test_base_provider_register(app, db):
    provider = BasePIDProvider(pid_type="testid")

    created_pid = provider.create(pid_value="1234")
    assert provider.register(created_pid, {})

    # NOTE: DB level requires pid_type
    db_pid = PersistentIdentifier.get(pid_value="1234", pid_type="testid")

    assert db_pid.status == PIDStatus.REGISTERED
    assert db_pid.pid_value == "1234"
Пример #7
0
def test_base_provider_create_default_pid_type(app, db):
    provider = BasePIDProvider(pid_type="testid")

    created_pid = provider.create(pid_value="1234")
    # NOTE: DB level requires pid_type
    db_pid = PersistentIdentifier.get(pid_value="1234", pid_type="testid")

    assert created_pid == db_pid
    assert db_pid.pid_value == "1234"
    assert created_pid.pid_type == "testid"
    assert created_pid.status == PIDStatus.NEW
Пример #8
0
def test_base_provider_soft_delete(app, db):
    provider = BasePIDProvider(pid_type="testid")

    created_pid = provider.create(pid_value="1234")
    assert provider.reserve(created_pid, {})
    assert provider.delete(created_pid, {})

    # NOTE: DB level requires pid_type
    db_pid = PersistentIdentifier.get(pid_value="1234", pid_type="testid")

    assert db_pid.status == PIDStatus.DELETED
    assert db_pid.pid_value == "1234"
Пример #9
0
def test_base_provider_validate(app, db):
    provider = BasePIDProvider(pid_type="testid")
    # NOTE: BasePIDProvider defaults name to None
    assert provider.validate(identifier=None, client=None, provider=None)
Пример #10
0
def test_base_provider_get_status(app, db):
    provider = BasePIDProvider(pid_type="testid")

    created_pid = provider.create(pid_value="1234")
    assert provider.get_status(created_pid.pid_value) == PIDStatus.NEW
Пример #11
0
def base_provider():
    """Application factory fixture."""
    return BasePIDProvider(pid_type="testid")