Browse Source

Adiciona testes básicos de checagem de data para Mandato

pull/1434/head
Edward Ribeiro 8 years ago
parent
commit
a977e36751
  1. 14
      sapl/parlamentares/forms.py
  2. 30
      sapl/parlamentares/tests/test_parlamentares.py

14
sapl/parlamentares/forms.py

@ -67,6 +67,20 @@ class MandatoForm(ModelForm):
data = self.cleaned_data
legislatura = data['legislatura']
data_inicio_mandato = data['data_inicio_mandato']
if data_inicio_mandato:
if (data_inicio_mandato < legislatura.data_inicio or
data_inicio_mandato > legislatura.data_fim):
raise ValidationError(_('Data início mandato fora do intervalo de legislatura informada'))
data_fim_mandato = data['data_fim_mandato']
if data_fim_mandato:
if (data_fim_mandato < legislatura.data_inicio or
data_fim_mandato > legislatura.data_fim):
raise ValidationError(_('Data fim mandato fora do intervalo de legislatura informada'))
existe_mandato = Mandato.objects.filter(
parlamentar=data['parlamentar'],
legislatura=data['legislatura']).exists()

30
sapl/parlamentares/tests/test_parlamentares.py

@ -127,7 +127,6 @@ def test_mandato_submit(admin_client):
kwargs={'pk': 14}),
{'parlamentar': 14, # hidden field
'legislatura': 5,
'data_fim_mandato': '2016-01-01',
'data_expedicao_diploma': '2016-03-22',
'observacao': 'Observação do mandato',
'salvar': 'salvar'},
@ -182,3 +181,32 @@ def test_mandato_form_duplicado():
assert not form.is_valid()
assert form.errors['__all__'] == ['Mandato nesta legislatura já existe.']
@pytest.mark.django_db(transaction=False)
def test_mandato_form_datas_invalidas():
parlamentar = mommy.make(Parlamentar, pk=1)
legislatura = mommy.make(Legislatura, pk=1,
data_inicio='2017-01-01',
data_fim='2021-12-31')
form = MandatoForm(data={
'parlamentar': str(parlamentar.pk),
'legislatura': str(legislatura.pk),
'data_expedicao_diploma': '2016-11-01',
'data_inicio_mandato': '2016-12-12',
'data_fim_mandato': '2019-10-09'
})
assert not form.is_valid()
assert form.errors['__all__'] == ['Data início mandato fora do intervalo de legislatura informada']
form = MandatoForm(data={
'parlamentar': str(parlamentar.pk),
'legislatura': str(legislatura.pk),
'data_expedicao_diploma': '2016-11-01',
'data_inicio_mandato': '2017-02-02',
'data_fim_mandato': '2022-01-01'
})
assert not form.is_valid()
assert form.errors['__all__'] == ['Data fim mandato fora do intervalo de legislatura informada']

Loading…
Cancel
Save