Browse Source

Fix #2470

pull/2476/head
Cesar Carvalho 7 years ago
parent
commit
c29b868e2f
  1. 11
      sapl/parlamentares/forms.py
  2. 65
      sapl/parlamentares/tests/test_parlamentares.py

11
sapl/parlamentares/forms.py

@ -158,7 +158,6 @@ class LegislaturaForm(ModelForm):
if not self.is_valid(): if not self.is_valid():
return self.cleaned_data return self.cleaned_data
numero = data['numero'] numero = data['numero']
data_inicio = data['data_inicio'] data_inicio = data['data_inicio']
data_fim = data['data_fim'] data_fim = data['data_fim']
@ -166,19 +165,19 @@ class LegislaturaForm(ModelForm):
pk = self.instance.pk pk = self.instance.pk
ultima_legislatura = Legislatura.objects.filter(data_inicio__lt=data_inicio ultima_legislatura = Legislatura.objects.filter(data_inicio__lt=data_inicio
).order_by('-data_inicio').first() ).order_by('-data_inicio').exclude(id=pk).first()
proxima_legislatura = Legislatura.objects.filter(data_fim__gt=data_fim proxima_legislatura = Legislatura.objects.filter(data_fim__gt=data_fim
).order_by('data_fim').first() ).order_by('data_fim').exclude(id=pk).first()
if ultima_legislatura and ultima_legislatura.numero >= numero: if ultima_legislatura and ultima_legislatura.numero >= numero:
self.logger.error("Número ({}) deve ser maior que o da legislatura anterior ({})." self.logger.error("Número ({}) deve ser maior que o da legislatura anterior ({})."
.format(numero, ultima_legislatura.numero)) .format(numero, ultima_legislatura.numero))
raise ValidationError(_("Número deve ser maior que o da legislatura anterior")) raise ValidationError(_("Número deve ser maior que o da legislatura anterior ({})."
.format(numero)))
elif proxima_legislatura and proxima_legislatura.numero <= numero: elif proxima_legislatura and proxima_legislatura.numero <= numero:
self.logger.error("O Número ({}) deve ser menor que {}, pois existe uma " self.logger.error("O Número ({}) deve ser menor que {}, pois existe uma "
"legislatura afrente cronologicamente desta que está sendo criada!" "legislatura cronologicamente a frente desta que está sendo criada!"
.format(numero, proxima_legislatura.numero)) .format(numero, proxima_legislatura.numero))
msg_erro = "O Número deve ser menor que {}, pois existe uma " \ msg_erro = "O Número deve ser menor que {}, pois existe uma " \
"legislatura afrente cronologicamente desta que está sendo criada!" "legislatura afrente cronologicamente desta que está sendo criada!"

65
sapl/parlamentares/tests/test_parlamentares.py

@ -237,28 +237,79 @@ def test_legislatura_form_invalido():
@pytest.mark.django_db(transaction=False) @pytest.mark.django_db(transaction=False)
def test_legislatura_form_datas_invalidas(): def test_legislatura_form_datas_invalidas():
legislatura_form = LegislaturaForm(data={'numero': '1', legislatura_form = LegislaturaForm(data={'numero': '1',
'data_inicio': '2017-02-01',
'data_fim': '2021-12-31',
'data_eleicao': '2016-11-01'
})
assert legislatura_form.is_valid()
legislatura_form = LegislaturaForm(data={'numero': '1',
'data_inicio': '2017-02-01', 'data_inicio': '2017-02-01',
'data_fim': '2021-12-31', 'data_fim': '2021-12-31',
'data_eleicao': '2017-02-01' 'data_eleicao': '2017-02-01'
}) })
assert not legislatura_form.is_valid() assert not legislatura_form.is_valid()
expected = \ expected = \
_("A data início deve ser menor que a data fim " _("A data início deve ser menor que a data fim "
"e a data eleição deve ser menor que a data início") "e a data eleição deve ser menor que a data início")
assert legislatura_form.errors['__all__'] == [expected] assert legislatura_form.errors['__all__'] == [expected]
legislatura_form = LegislaturaForm(data={'numero': '1', legislatura_form = LegislaturaForm(data={'numero': '1',
'data_inicio': '2017-02-01', 'data_inicio': '2017-02-01',
'data_fim': '2017-01-01', 'data_fim': '2017-01-01',
'data_eleicao': '2016-11-01' 'data_eleicao': '2016-11-01'
}) })
assert not legislatura_form.is_valid() assert not legislatura_form.is_valid()
assert legislatura_form.errors['__all__'] == [expected] assert legislatura_form.errors['__all__'] == [expected]
@pytest.mark.django_db(transaction=False)
def test_legislatura_form_numeros_invalidos():
legislatura_form = LegislaturaForm(data={'numero': '5',
'data_inicio': '2017-02-01',
'data_fim': '2021-12-31',
'data_eleicao': '2016-11-01'
})
assert legislatura_form.is_valid()
legislatura = mommy.make(Legislatura, pk=1,
numero=5,
data_inicio='2017-02-01',
data_fim='2021-12-31',
data_eleicao='2016-11-01')
legislatura_form = LegislaturaForm(data={'numero': '6',
'data_inicio': '2014-02-01',
'data_fim': '2016-12-31',
'data_eleicao': '2013-11-01'
})
assert not legislatura_form.is_valid()
legislatura_form = LegislaturaForm(data={'numero': '4',
'data_inicio': '2022-02-01',
'data_fim': '2025-12-31',
'data_eleicao': '2021-11-01'
})
assert not legislatura_form.is_valid()
legislatura_form = LegislaturaForm(data={'numero': '5',
'data_inicio': '2014-02-01',
'data_fim': '2016-12-31',
'data_eleicao': '2013-11-01'
})
legislatura_form.instance = legislatura
assert legislatura_form.is_valid()
@pytest.mark.django_db(transaction=False) @pytest.mark.django_db(transaction=False)

Loading…
Cancel
Save