Browse Source

Adiciona testes simples para LegislaturaForm

pull/1434/head
Edward Ribeiro 8 years ago
parent
commit
2fe0ee4d07
  1. 24
      sapl/parlamentares/forms.py
  2. 45
      sapl/parlamentares/tests/test_parlamentares.py

24
sapl/parlamentares/forms.py

@ -98,6 +98,26 @@ class LegislaturaForm(ModelForm):
model = Legislatura model = Legislatura
exclude = [] exclude = []
def clean(self):
data = super(LegislaturaForm, self).clean()
if not self.is_valid():
return self.cleaned_data
data_inicio = data['data_inicio']
data_fim = data['data_fim']
data_eleicao = data['data_eleicao']
if data_eleicao.year >= data_inicio.year:
raise ValidationError(_("Data eleição não pode ser inferior a "
"data início da legislatura"))
if data_inicio > data_fim or (data_fim.year - data_inicio.year != 4):
raise ValidationError(_("Intervalo de início e fim inválido para "
"legislatura."))
return data
class LegislaturaCreateForm(LegislaturaForm): class LegislaturaCreateForm(LegislaturaForm):
@ -105,6 +125,10 @@ class LegislaturaCreateForm(LegislaturaForm):
super(LegislaturaCreateForm, self).clean() super(LegislaturaCreateForm, self).clean()
cleaned_data = self.cleaned_data cleaned_data = self.cleaned_data
if not self.is_valid():
return cleaned_data
eleicao = cleaned_data['data_eleicao'] eleicao = cleaned_data['data_eleicao']
inicio = cleaned_data['data_inicio'] inicio = cleaned_data['data_inicio']
fim = cleaned_data['data_fim'] fim = cleaned_data['data_fim']

45
sapl/parlamentares/tests/test_parlamentares.py

@ -3,7 +3,7 @@ from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from model_mommy import mommy from model_mommy import mommy
from sapl.parlamentares.forms import MandatoForm from sapl.parlamentares.forms import (LegislaturaForm, MandatoForm)
from sapl.parlamentares.models import (Dependente, Filiacao, Legislatura, from sapl.parlamentares.models import (Dependente, Filiacao, Legislatura,
Mandato, Parlamentar, Partido, Mandato, Parlamentar, Partido,
TipoDependente) TipoDependente)
@ -134,7 +134,7 @@ def test_mandato_submit(admin_client):
follow=True) follow=True)
mandato = Mandato.objects.first() mandato = Mandato.objects.first()
assert 'Observação do mandato' == mandato.observacao assert str(_('Observação do mandato')) == str(_(mandato.observacao))
@pytest.mark.django_db(transaction=False) @pytest.mark.django_db(transaction=False)
@ -213,3 +213,44 @@ def test_mandato_form_datas_invalidas():
assert not form.is_valid() assert not form.is_valid()
assert form.errors['__all__'] == \ assert form.errors['__all__'] == \
["Data fim mandato fora do intervalo de legislatura informada"] ["Data fim mandato fora do intervalo de legislatura informada"]
def test_legislatura_form_invalido():
legislatura_form = LegislaturaForm(data={})
assert not legislatura_form.is_valid()
errors = legislatura_form.errors
errors['numero'] == [_('Este campo é obrigatório.')]
errors['data_inicio'] == [_('Este campo é obrigatório.')]
errors['data_fim'] == [_('Este campo é obrigatório.')]
errors['data_eleicao'] == [_('Este campo é obrigatório.')]
assert len(errors) == 4
def test_legislatura_form_datas_invalidas():
legislatura_form = LegislaturaForm(data={'numero': '1',
'data_inicio': '2017-02-01',
'data_fim': '2021-12-31',
'data_eleicao': '2017-02-01'
})
assert not legislatura_form.is_valid()
expected = \
_("Data eleição não pode ser inferior a data início da legislatura")
assert legislatura_form.errors['__all__'] == [expected]
legislatura_form = LegislaturaForm(data={'numero': '1',
'data_inicio': '2017-02-01',
'data_fim': '2017-01-01',
'data_eleicao': '2016-11-01'
})
assert not legislatura_form.is_valid()
assert legislatura_form.errors['__all__'] == \
[_("Intervalo de início e fim inválido para legislatura.")]

Loading…
Cancel
Save