Browse Source

Fix 2470 - Correções em Legislatura Form (#2476)

* Fix #2470

* Fix #2470

* fix #2470

* correcao da msg de erro
pull/2465/head
Cesar Augusto de Carvalho 6 years ago
committed by Edward
parent
commit
27103ff08f
  1. 13
      sapl/parlamentares/forms.py
  2. 86
      sapl/parlamentares/tests/test_parlamentares.py

13
sapl/parlamentares/forms.py

@ -167,21 +167,22 @@ 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( raise ValidationError(_("Número deve ser maior que o da legislatura anterior ({})."
_("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 à 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 cronologicamente à frente desta que está sendo criada!"
msg_erro = msg_erro.format(proxima_legislatura.numero) msg_erro = msg_erro.format(proxima_legislatura.numero)
raise ValidationError(_(msg_erro)) raise ValidationError(_(msg_erro))

86
sapl/parlamentares/tests/test_parlamentares.py

@ -237,28 +237,100 @@ 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()
legislatura = mommy.make(Legislatura, pk=2,
numero=1,
data_inicio='2002-02-01',
data_fim='2005-12-31',
data_eleicao='2001-11-01')
legislatura2 = mommy.make(Legislatura, pk=3,
numero=3,
data_inicio='2008-02-01',
data_fim='2011-12-31',
data_eleicao='2007-11-01')
legislatura_form = LegislaturaForm(data={'numero': '1',
'data_inicio': '2010-02-01',
'data_fim': '2013-12-31',
'data_eleicao': '2009-11-01'
})
legislatura_form.instance = legislatura
assert not legislatura_form.is_valid()
@pytest.mark.django_db(transaction=False) @pytest.mark.django_db(transaction=False)

Loading…
Cancel
Save