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
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):
@ -105,6 +125,10 @@ class LegislaturaCreateForm(LegislaturaForm):
super(LegislaturaCreateForm, self).clean()
cleaned_data = self.cleaned_data
if not self.is_valid():
return cleaned_data
eleicao = cleaned_data['data_eleicao']
inicio = cleaned_data['data_inicio']
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 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,
Mandato, Parlamentar, Partido,
TipoDependente)
@ -134,7 +134,7 @@ def test_mandato_submit(admin_client):
follow=True)
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)
@ -213,3 +213,44 @@ def test_mandato_form_datas_invalidas():
assert not form.is_valid()
assert form.errors['__all__'] == \
["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