From d59772d676818c6f9b76480b036b69cd0ca56e7a Mon Sep 17 00:00:00 2001 From: Eduardo Calil Date: Thu, 25 Aug 2016 18:37:50 -0300 Subject: [PATCH] Cria teste para criacao de nova tramitacao de um documento administrativo --- sapl/protocoloadm/tests/test_protocoloadm.py | 137 ++++++++++++++++++- 1 file changed, 136 insertions(+), 1 deletion(-) diff --git a/sapl/protocoloadm/tests/test_protocoloadm.py b/sapl/protocoloadm/tests/test_protocoloadm.py index b4d39942e..3a3373727 100644 --- a/sapl/protocoloadm/tests/test_protocoloadm.py +++ b/sapl/protocoloadm/tests/test_protocoloadm.py @@ -1,10 +1,15 @@ +import datetime import pytest from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ from model_mommy import mommy +from sapl.materia.models import UnidadeTramitacao from sapl.protocoloadm.forms import AnularProcoloAdmForm -from sapl.protocoloadm.models import Protocolo +from sapl.protocoloadm.models import (DocumentoAdministrativo, Protocolo, + StatusTramitacaoAdministrativo, + TipoDocumentoAdministrativo, + TramitacaoAdministrativo) @pytest.mark.django_db(transaction=False) @@ -104,3 +109,133 @@ def test_form_anular_protocolo_campos_obrigatorios(): assert len(form.errors) == 1 assert form.errors['justificativa_anulacao'] == \ [_('Este campo é obrigatório.')] + + +@pytest.mark.django_db(transaction=False) +def test_create_tramitacao(admin_client): + tipo_doc = mommy.make( + TipoDocumentoAdministrativo, + descricao='Teste Tipo_DocAdm') + + documento_adm = mommy.make( + DocumentoAdministrativo, + tipo=tipo_doc) + + unidade_tramitacao_local_1 = mommy.make( + UnidadeTramitacao, pk=1) + + unidade_tramitacao_destino_1 = mommy.make( + UnidadeTramitacao, pk=2) + + unidade_tramitacao_destino_2 = mommy.make( + UnidadeTramitacao, pk=3) + + status = mommy.make( + StatusTramitacaoAdministrativo) + + tramitacao = mommy.make( + TramitacaoAdministrativo, + unidade_tramitacao_local=unidade_tramitacao_local_1, + unidade_tramitacao_destino=unidade_tramitacao_destino_1, + status=status, + documento=documento_adm, + data_tramitacao=datetime.date(2016, 8, 21)) + + response = admin_client.post( + reverse( + 'sapl.protocoloadm:tramitacaoadministrativo_create', + kwargs={'pk': documento_adm.pk}), + {'unidade_tramitacao_local': unidade_tramitacao_destino_2.pk, + 'documento': documento_adm.pk, + 'status': status.pk, + 'data_tramitacao': datetime.date(2016, 8, 21)}, + follow=True) + + msg = _('A origem da nova tramitação deve ser igual ao ' + 'destino da última adicionada!') + + # Verifica se a origem da nova tramitacao é igual ao destino da última + assert msg in response.context_data[ + 'form'].errors['__all__'] + + response = admin_client.post( + reverse( + 'sapl.protocoloadm:tramitacaoadministrativo_create', + kwargs={'pk': documento_adm.pk}), + {'unidade_tramitacao_local': unidade_tramitacao_destino_1.pk, + 'documento': documento_adm.pk, + 'status': status.pk, + 'data_tramitacao': datetime.date(2016, 8, 20)}, + follow=True) + + msg = _('A data da nova tramitação deve ser ' + + 'maior que a data da última tramitação!') + + # Verifica se a data da nova tramitação é maior do que a última + assert msg in response.context_data[ + 'form'].errors['__all__'] + + response = admin_client.post( + reverse( + 'sapl.protocoloadm:tramitacaoadministrativo_create', + kwargs={'pk': documento_adm.pk}), + {'unidade_tramitacao_local': unidade_tramitacao_destino_1.pk, + 'documento': documento_adm.pk, + 'status': status.pk, + 'data_tramitacao': datetime.date(2016, 8, 26)}, + follow=True) + + msg = _('A data de tramitação deve ser ' + + 'menor ou igual a data de hoje!') + + # Verifica se a data da tramitação é menor do que a data de hoje + assert msg in response.context_data[ + 'form'].errors['__all__'] + + response = admin_client.post( + reverse( + 'sapl.protocoloadm:tramitacaoadministrativo_create', + kwargs={'pk': documento_adm.pk}), + {'unidade_tramitacao_local': unidade_tramitacao_destino_1.pk, + 'documento': documento_adm.pk, + 'status': status.pk, + 'data_tramitacao': datetime.date(2016, 8, 21), + 'data_encaminhamento': datetime.date(2016, 8, 20)}, + follow=True) + + msg = _('A data de encaminhamento deve ser ' + + 'maior que a data de tramitação!') + + assert msg in response.context_data[ + 'form'].errors['__all__'] + + response = admin_client.post( + reverse( + 'sapl.protocoloadm:tramitacaoadministrativo_create', + kwargs={'pk': documento_adm.pk}), + {'unidade_tramitacao_local': unidade_tramitacao_destino_1.pk, + 'documento': documento_adm.pk, + 'status': status.pk, + 'data_tramitacao': datetime.date(2016, 8, 21), + 'data_fim_prazo': datetime.date(2016, 8, 20)}, + follow=True) + + msg = _('A data fim de prazo deve ser ' + + 'maior que a data de tramitação!') + + assert msg in response.context_data[ + 'form'].errors['__all__'] + + response = admin_client.post( + reverse( + 'sapl.protocoloadm:tramitacaoadministrativo_create', + kwargs={'pk': documento_adm.pk}), + {'unidade_tramitacao_local': unidade_tramitacao_destino_1.pk, + 'documento': documento_adm.pk, + 'status': status.pk, + 'data_tramitacao': datetime.date(2016, 8, 21)}, + follow=True) + + tramitacao = TramitacaoAdministrativo.objects.last() + # Verifica se a tramitacao que obedece as regras de negócios é criada + assert tramitacao.data_tramitacao == datetime.date(2016, 8, 21)