mirror of https://github.com/interlegis/sapl.git
Marcio Mazza
9 years ago
2 changed files with 72 additions and 7 deletions
@ -0,0 +1,59 @@ |
|||
import pytest |
|||
from django.apps import apps |
|||
from django.contrib.auth.models import Group, Permission |
|||
from django.contrib.contenttypes.models import ContentType |
|||
|
|||
from inicializa_grupos_autorizacoes import cria_grupos_permissoes |
|||
|
|||
pytestmark = pytest.mark.django_db |
|||
|
|||
apps_com_permissao_padrao = [ |
|||
'comissoes', 'materia', 'norma', 'sessao', 'painel'] |
|||
|
|||
|
|||
@pytest.mark.parametrize('app_label', apps_com_permissao_padrao) |
|||
def test_grupo_padrao_tem_permissoes_sobre_todo_o_app(app_label): |
|||
|
|||
app = apps.get_app_config(app_label) |
|||
|
|||
# código testado |
|||
cria_grupos_permissoes() |
|||
|
|||
def gerar_permissoes(app): |
|||
for model in app.get_models(): |
|||
for op in ['add', 'change', 'delete']: |
|||
yield model, 'Can %s %s' % (op, model._meta.verbose_name) |
|||
grupo = Group.objects.get(name='Operador de %s' % app.verbose_name) |
|||
esperado = set(gerar_permissoes(app)) |
|||
|
|||
real = set((p.content_type.model_class(), p.name) |
|||
for p in grupo.permissions.all()) |
|||
assert real == esperado |
|||
|
|||
|
|||
@pytest.mark.parametrize('app_label', apps_com_permissao_padrao) |
|||
def test_permissoes_extras_sao_apagadas(app_label): |
|||
|
|||
app = apps.get_app_config(app_label) |
|||
grupo = Group.objects.create(name='Operador de %s' % app.verbose_name) |
|||
|
|||
permissao_errada = Permission.objects.create( |
|||
name='STUB', content_type=ContentType.objects.first()) |
|||
grupo.permissions.add(permissao_errada) |
|||
|
|||
# código testado |
|||
cria_grupos_permissoes() |
|||
|
|||
assert not grupo.permissions.filter(id=permissao_errada.id).exists() |
|||
|
|||
|
|||
# Operador de Comissões |
|||
# Operador de Matéria |
|||
# Operador de Norma Jurídica |
|||
# Operador de Sessão Plenária |
|||
|
|||
# Operador de Protocolo Administrativo |
|||
# Operador de Documento Administrativo |
|||
|
|||
|
|||
# Operador Geral |
Loading…
Reference in new issue