Exemplo n.º 1
0
def test_get_matching_users(app, db, es, test_users):
    with db.session.begin_nested():
        actor = RecordRoleActor(name='test', originator=test_users.u1, path='/roles')
        db.session.add(actor)
    assert set() == set(actor.get_matching_users())
    assert {test_users.u1.id, test_users.u2.id} == set(actor.get_matching_users(record={
        'roles': test_users.r1.id
    }))
Exemplo n.º 2
0
def test_user_matches(app, db, es, test_users):
    with db.session.begin_nested():
        actor = RecordRoleActor(name='test', originator=test_users.u1, path='/roles')
        db.session.add(actor)
    assert not actor.user_matches(test_users.u1, {'system_roles': [authenticated_user]})
    assert not actor.user_matches(test_users.u2, {'system_roles': [authenticated_user]})
    assert not actor.user_matches(test_users.u3, {'system_roles': [authenticated_user]})
    assert not actor.user_matches(AnonymousUser(), {'system_roles': [any_user]})

    assert actor.user_matches(test_users.u1, {'system_roles': [authenticated_user]}, record={
        'roles': test_users.r1.id
    })
    assert actor.user_matches(test_users.u2, {'system_roles': [authenticated_user]}, record={
        'roles': test_users.r1.id
    })
    assert not actor.user_matches(test_users.u3, {'system_roles': [authenticated_user]}, record={
        'roles': test_users.r1.id
    })
    assert not actor.user_matches(AnonymousUser(), {'system_roles': [any_user]}, record={
        'roles': test_users.r1.id
    })
Exemplo n.º 3
0
def test_get_elasticsearch_query(app, db, es, test_users):
    with db.session.begin_nested():
        actor = RecordRoleActor(name='test', originator=test_users.u1, path='/roles')
        db.session.add(actor)
    assert Terms(_invenio_explicit_acls__role=[test_users.r1.id]) == \
           actor.get_elasticsearch_query(test_users.u1, {'system_roles': [authenticated_user]})
    assert Terms(_invenio_explicit_acls__role=[test_users.r1.id, test_users.r2.id]) == \
           actor.get_elasticsearch_query(test_users.u2, {'system_roles': [authenticated_user]})
    assert Terms(_invenio_explicit_acls__role=[test_users.r2.id]) == \
           actor.get_elasticsearch_query(test_users.u3, {'system_roles': [authenticated_user]})

    assert actor.get_elasticsearch_query(AnonymousUser(), {'system_roles': [any_user]}) is None
Exemplo n.º 4
0
def test_get_elasticsearch_representation(app, db, es, test_users):
    with db.session.begin_nested():
        actor = RecordRoleActor(name='test', originator=test_users.u1, path='/roles')
        db.session.add(actor)

    with pytest.raises(Exception, match='This Actor works on record, so pass one!'):
        actor.get_elasticsearch_representation()

    assert [test_users.r1.id] == actor.get_elasticsearch_representation(record={
        'roles': test_users.r1.id
    })
    assert [test_users.r1.id] == actor.get_elasticsearch_representation(record={
        'roles': [test_users.r1.id]
    })

    others = ['aaa']
    assert [test_users.r1.id] + others == actor.get_elasticsearch_representation(others, record={
        'roles': [test_users.r1.id]
    })
Exemplo n.º 5
0
def test_get_es_schema(app, db, es, test_users):
    with db.session.begin_nested():
        actor = RecordRoleActor(name='test', originator=test_users.u1, path='/roles')
        db.session.add(actor)

    assert {'type': 'integer'} == actor.get_elasticsearch_schema(ES_VERSION[0])
Exemplo n.º 6
0
def test_str(app, db, test_users):
    with db.session.begin_nested():
        actor = RecordRoleActor(name='test', originator=test_users.u1, path='/roles')
        db.session.add(actor)
    assert 'RecordRoleActor[test; /roles]' == str(actor)