From 27103ff08f8f9264e150995b04eec0af852bd19d Mon Sep 17 00:00:00 2001 From: Cesar Augusto de Carvalho Date: Wed, 13 Feb 2019 13:44:18 -0200 Subject: [PATCH] =?UTF-8?q?Fix=202470=20-=20Corre=C3=A7=C3=B5es=20em=20Leg?= =?UTF-8?q?islatura=20Form=20(#2476)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix #2470 * Fix #2470 * fix #2470 * correcao da msg de erro --- sapl/parlamentares/forms.py | 13 +-- .../parlamentares/tests/test_parlamentares.py | 86 +++++++++++++++++-- 2 files changed, 86 insertions(+), 13 deletions(-) diff --git a/sapl/parlamentares/forms.py b/sapl/parlamentares/forms.py index a0ef549a4..0c0f8887d 100755 --- a/sapl/parlamentares/forms.py +++ b/sapl/parlamentares/forms.py @@ -167,21 +167,22 @@ class LegislaturaForm(ModelForm): pk = self.instance.pk 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 - ).order_by('data_fim').first() + ).order_by('data_fim').exclude(id=pk).first() if ultima_legislatura and ultima_legislatura.numero >= numero: self.logger.error("Número ({}) deve ser maior que o da legislatura anterior ({})." .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: 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)) 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) raise ValidationError(_(msg_erro)) diff --git a/sapl/parlamentares/tests/test_parlamentares.py b/sapl/parlamentares/tests/test_parlamentares.py index 0f8d6e24f..e7b885871 100644 --- a/sapl/parlamentares/tests/test_parlamentares.py +++ b/sapl/parlamentares/tests/test_parlamentares.py @@ -237,28 +237,100 @@ def test_legislatura_form_invalido(): @pytest.mark.django_db(transaction=False) 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_fim': '2021-12-31', '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 " "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_fim': '2017-01-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)