Sistema de Apoio ao Processo Legislativo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

139 lines
5.5 KiB

import pytest
from django.utils.translation import ugettext_lazy as _
from model_mommy import mommy
from sapl.materia.models import TipoMateriaLegislativa, MateriaLegislativa
from sapl.parlamentares.models import Legislatura, Partido, SessaoLegislativa
from sapl.sessao import forms
from sapl.sessao.models import (ExpedienteMateria, SessaoPlenaria,
TipoSessaoPlenaria)
def test_valida_campos_obrigatorios_sessao_plenaria_form():
form = forms.SessaoPlenariaForm(data={})
assert not form.is_valid()
errors = form.errors
assert errors['legislatura'] == [_('Este campo é obrigatório.')]
assert errors['sessao_legislativa'] == [_('Este campo é obrigatório.')]
assert errors['tipo'] == [_('Este campo é obrigatório.')]
assert errors['numero'] == [_('Este campo é obrigatório.')]
assert errors['data_inicio'] == [_('Este campo é obrigatório.')]
assert errors['hora_inicio'] == [_('Este campo é obrigatório.')]
assert len(errors) == 6
@pytest.mark.django_db(transaction=False)
def test_sessao_plenaria_form_valido():
legislatura = mommy.make(Legislatura)
sessao = mommy.make(SessaoLegislativa)
tipo = mommy.make(TipoSessaoPlenaria)
form = forms.SessaoPlenariaForm(data={'legislatura': str(legislatura.pk),
'numero': '1',
'tipo': str(tipo.pk),
'sessao_legislativa': str(sessao.pk),
'data_inicio': '10/11/2017',
'hora_inicio': '10:10'
})
assert form.is_valid()
@pytest.mark.django_db(transaction=False)
def test_numero_duplicado_sessao_plenaria_form():
legislatura = mommy.make(Legislatura)
sessao = mommy.make(SessaoLegislativa)
tipo = mommy.make(TipoSessaoPlenaria)
mommy.make(SessaoPlenaria,
legislatura=legislatura,
sessao_legislativa=sessao,
tipo=tipo,
numero=1)
form = forms.SessaoPlenariaForm(data={'legislatura': str(legislatura.pk),
'numero': '1',
'tipo': str(tipo.pk),
'sessao_legislativa': str(sessao.pk),
'data_inicio': '10/11/2017',
'hora_inicio': '10:10'
})
assert not form.is_valid()
assert form.errors['__all__'] == ["Número de Sessão Plenária já existente "
"para a Legislatura, Sessão Legislativa "
"e Tipo informados. Favor escolher um "
"número distinto."]
@pytest.mark.django_db(transaction=False)
def test_valida_campos_obrigatorios_bancada_form():
form = forms.BancadaForm(data={})
assert not form.is_valid()
errors = form.errors
assert errors['legislatura'] == [_('Este campo é obrigatório.')]
assert errors['nome'] == [_('Este campo é obrigatório.')]
assert len(errors) == 2
@pytest.mark.django_db(transaction=False)
def test_bancada_form_valido():
legislatura = mommy.make(Legislatura)
partido = mommy.make(Partido)
form = forms.BancadaForm(data={'legislatura': str(legislatura.pk),
'nome': 'Nome da Bancada',
'partido': str(partido.pk),
'data_criacao': '10/11/2017',
'data_extincao': '10/12/2017',
'descricao': 'teste'
})
assert form.is_valid()
@pytest.mark.django_db(transaction=False)
def test_bancada_form_datas_invalidas():
legislatura = mommy.make(Legislatura)
partido = mommy.make(Partido)
form = forms.BancadaForm(data={'legislatura': str(legislatura.pk),
'nome': 'Nome da Bancada',
'partido': str(partido.pk),
'data_criacao': '2016-11-01',
'data_extincao': '2016-10-01',
'descricao': 'teste'
})
assert not form.is_valid()
assert form.errors['__all__'] == [_('Data de extinção não pode ser menor '
'que a de criação')]
@pytest.mark.django_db(transaction=False)
def test_expediente_materia_form_valido():
tipo_materia = mommy.make(TipoMateriaLegislativa)
materia = mommy.make(MateriaLegislativa, tipo=tipo_materia)
sessao = mommy.make(SessaoPlenaria)
instance = mommy.make(ExpedienteMateria, sessao_plenaria=sessao,
materia=materia)
form = forms.ExpedienteMateriaForm(data={'data_ordem': '28/12/2009',
'numero_ordem': 1,
'tipo_materia': tipo_materia.pk,
'numero_materia': materia.numero,
'ano_materia': materia.ano,
'tipo_votacao': 1,
'sessao_plenaria': sessao.pk
},
instance=instance)
assert form.is_valid()