Browse Source

Fix #2470

pull/2476/head
Cesar Carvalho 7 years ago
parent
commit
713a69b476
  1. 11
      sapl/parlamentares/forms.py
  2. 51
      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!"

51
sapl/parlamentares/tests/test_parlamentares.py

@ -237,6 +237,14 @@ 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',
'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', 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',
@ -261,6 +269,49 @@ def test_legislatura_form_datas_invalidas():
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)
def test_valida_campos_obrigatorios_frente_form(): def test_valida_campos_obrigatorios_frente_form():
form = FrenteForm(data={}) form = FrenteForm(data={})

Loading…
Cancel
Save