diff --git a/sapl/sessao/models.py b/sapl/sessao/models.py index dd1dfc8dc..824d9ad2d 100644 --- a/sapl/sessao/models.py +++ b/sapl/sessao/models.py @@ -476,7 +476,7 @@ class VotoParlamentar(models.Model): # RegistroVotacaoParlamentar ''' votacao = models.ForeignKey(RegistroVotacao, blank=True, - null=True) + null=True,on_delete=models.CASCADE) parlamentar = models.ForeignKey(Parlamentar, on_delete=models.PROTECT) voto = models.CharField(max_length=10) @@ -496,10 +496,10 @@ class VotoParlamentar(models.Model): # RegistroVotacaoParlamentar ordem = models.ForeignKey(OrdemDia, blank=True, - null=True) + null=True, on_delete=models.CASCADE) expediente = models.ForeignKey(ExpedienteMateria, blank=True, - null=True) + null=True, on_delete=models.CASCADE) class Meta: verbose_name = _('Registro de Votação de Parlamentar') diff --git a/sapl/sessao/tests/test_sessao.py b/sapl/sessao/tests/test_sessao.py index 87940a174..c5996b8bd 100644 --- a/sapl/sessao/tests/test_sessao.py +++ b/sapl/sessao/tests/test_sessao.py @@ -5,13 +5,14 @@ from django.utils.translation import ugettext_lazy as _ from model_mommy import mommy from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa -from sapl.parlamentares.models import Legislatura, Partido, SessaoLegislativa +from sapl.parlamentares.models import Legislatura, Parlamentar, Partido,SessaoLegislativa from sapl.sessao import forms from sapl.sessao.models import (ExpedienteMateria, ExpedienteSessao, IntegranteMesa, Orador, OrdemDia, PresencaOrdemDia, RegistroVotacao, SessaoPlenaria, SessaoPlenariaPresenca, - TipoResultadoVotacao, TipoSessaoPlenaria) + TipoResultadoVotacao, TipoSessaoPlenaria, + VotoParlamentar) def test_valida_campos_obrigatorios_sessao_plenaria_form(): form = forms.SessaoPlenariaForm(data={}) @@ -193,7 +194,8 @@ def test_delete_sessao_plenaria_cascade_registro_votacao_ordemdia(): sessao_plenaria = create_sessao_plenaria() ordem = mommy.make(OrdemDia, sessao_plenaria=sessao_plenaria, - materia=materia) + materia=materia, + tipo_votacao='2') tipo_resultado_votacao = mommy.make(TipoResultadoVotacao, nome='ok', natureza="A") @@ -201,13 +203,32 @@ def test_delete_sessao_plenaria_cascade_registro_votacao_ordemdia(): tipo_resultado_votacao=tipo_resultado_votacao, materia=materia, ordem=ordem) + presenca = mommy.make(PresencaOrdemDia, + sessao_plenaria=sessao_plenaria) + parlamentar = mommy.make(Parlamentar) + voto_parlamentar = mommy.make(VotoParlamentar, + votacao=registro, + parlamentar=parlamentar, + ordem=ordem) sessao_plenaria.delete() - ordem_filter = OrdemDia.objects.filter(sessao_plenaria=sessao_plenaria) - registro_filter = RegistroVotacao.objects.filter(tipo_resultado_votacao=tipo_resultado_votacao, - materia=materia, - ordem=ordem) - assert len(registro_filter) == 0 - assert len(ordem_filter) == 0 + presenca_filter = PresencaOrdemDia.objects.filter( + sessao_plenaria=sessao_plenaria).exists() + ordem_filter = OrdemDia.objects.filter( + sessao_plenaria=sessao_plenaria).exists() + registro_filter = RegistroVotacao.objects.filter( + tipo_resultado_votacao=tipo_resultado_votacao, + materia=materia, + ordem=ordem).exists() + materia_filter = MateriaLegislativa.objects.filter(id=materia.id).exists() + parlamentar_filter = Parlamentar.objects.exists() + voto_parlamentar_filter = VotoParlamentar.objects.filter( + ordem=ordem).exists() + assert registro_filter == False + assert ordem_filter == False + assert presenca_filter == False + assert voto_parlamentar_filter == False + assert materia_filter == True # Não exclui materia + assert parlamentar_filter == True # Não exclui Parlamentar @pytest.mark.django_db(transaction=False) def test_delete_sessao_plenaria_cascade_registro_votacao_expediente(): @@ -215,7 +236,8 @@ def test_delete_sessao_plenaria_cascade_registro_votacao_expediente(): sessao_plenaria = create_sessao_plenaria() expediente = mommy.make(ExpedienteMateria, sessao_plenaria=sessao_plenaria, - materia=materia) + materia=materia, + tipo_votacao='2') tipo_resultado_votacao = mommy.make(TipoResultadoVotacao, nome='ok', natureza="A") @@ -223,32 +245,31 @@ def test_delete_sessao_plenaria_cascade_registro_votacao_expediente(): tipo_resultado_votacao=tipo_resultado_votacao, materia=materia, expediente=expediente) - - sessao_plenaria.delete() - expediente_filter = ExpedienteMateria.objects.filter(sessao_plenaria=sessao_plenaria) - registro_filter = RegistroVotacao.objects.filter(tipo_resultado_votacao=tipo_resultado_votacao, - materia=materia, - expediente=expediente) - assert len(registro_filter) == 0 - assert len(expediente_filter) == 0 - -@pytest.mark.django_db(transaction=False) -def test_delete_sessao_plenaria_cascade_presenca_ordemdia(): - sessao_plenaria = create_sessao_plenaria() - presenca = mommy.make(PresencaOrdemDia, - sessao_plenaria=sessao_plenaria) - sessao_plenaria.delete() - presenca_filter = PresencaOrdemDia.objects.filter(sessao_plenaria=sessao_plenaria) - assert len(presenca_filter) == 0 - -@pytest.mark.django_db(transaction=False) -def test_delete_sessao_plenaria_cascade_presenca_expediente(): - sessao_plenaria = create_sessao_plenaria() presenca = mommy.make(SessaoPlenariaPresenca, sessao_plenaria=sessao_plenaria) + parlamentar = mommy.make(Parlamentar) + voto_parlamentar = mommy.make(VotoParlamentar, + votacao=registro, + parlamentar=parlamentar, + expediente=expediente) sessao_plenaria.delete() - presenca_filter = SessaoPlenariaPresenca.objects.filter(sessao_plenaria=sessao_plenaria) - assert len(presenca_filter) == 0 + expediente_filter = ExpedienteMateria.objects.filter( + sessao_plenaria=sessao_plenaria).exists() + registro_filter = RegistroVotacao.objects.filter( + tipo_resultado_votacao=tipo_resultado_votacao, + materia=materia, + expediente=expediente).exists() + presenca_filter = SessaoPlenariaPresenca.objects.filter( + sessao_plenaria=sessao_plenaria).exists() + parlamentar_filter = Parlamentar.objects.exists() + voto_parlamentar_filter = VotoParlamentar.objects.filter( + expediente=expediente).exists() + assert registro_filter == False + assert expediente_filter == False + assert presenca_filter == False + assert voto_parlamentar_filter == False + assert parlamentar_filter == True # Não exclui Parlamentar + @pytest.mark.django_db(transaction=False) def test_delete_sessao_plenaria_cascade_integrante_mesa(): @@ -256,23 +277,26 @@ def test_delete_sessao_plenaria_cascade_integrante_mesa(): mesa = mommy.make(IntegranteMesa, sessao_plenaria=sessao_plenaria) sessao_plenaria.delete() - mesa_filter = IntegranteMesa.objects.filter(sessao_plenaria=sessao_plenaria) - assert len(mesa_filter) == 0 + mesa_filter = IntegranteMesa.objects.filter( + sessao_plenaria=sessao_plenaria).exists() + assert mesa_filter == False @pytest.mark.django_db(transaction=False) -def test_delete_sessao_plenaria_cascade_expediente_sessao(): +def test_delete_sessao_plenaria_cascade_expedientesessao(): sessao_plenaria = create_sessao_plenaria() expediente_sessao = mommy.make(ExpedienteSessao, sessao_plenaria=sessao_plenaria) sessao_plenaria.delete() - expediente_sessao_filter = ExpedienteSessao.objects.filter(sessao_plenaria=sessao_plenaria) - assert len(expediente_sessao_filter) == 0 + expediente_sessao_filter = ExpedienteSessao.objects.filter( + sessao_plenaria=sessao_plenaria).exists() + assert expediente_sessao_filter == False @pytest.mark.django_db(transaction=False) def test_delete_sessao_plenaria_cascade_orador(): sessao_plenaria = create_sessao_plenaria() expediente_sessao = mommy.make(Orador, - sessao_plenaria=sessao_plenaria) + sessao_plenaria=sessao_plenaria) sessao_plenaria.delete() - orador_filter = Orador.objects.filter(sessao_plenaria=sessao_plenaria) - assert len(orador_filter) == 0 + orador_filter = Orador.objects.filter( + sessao_plenaria=sessao_plenaria).exists() + assert orador_filter == False