From 2d7df01fecef97ea9993022d957b362904bec55d Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Mon, 21 Mar 2016 11:03:55 -0300 Subject: [PATCH] Adiciona novos testes a materia --- materia/test_materia.py | 177 ++++++++++++++++++++++++++++++++++++++-- materia/views.py | 30 ++++--- 2 files changed, 189 insertions(+), 18 deletions(-) diff --git a/materia/test_materia.py b/materia/test_materia.py index a139f1661..8f76640dd 100644 --- a/materia/test_materia.py +++ b/materia/test_materia.py @@ -3,10 +3,56 @@ from django.core.urlresolvers import reverse from model_mommy import mommy from comissoes.models import Comissao, TipoComissao +from norma.models import LegislacaoCitada, NormaJuridica, TipoNormaJuridica from .models import (Anexada, Autor, Autoria, DespachoInicial, - MateriaLegislativa, RegimeTramitacao, TipoAutor, - TipoMateriaLegislativa) + DocumentoAcessorio, MateriaLegislativa, Numeracao, + RegimeTramitacao, StatusTramitacao, TipoAutor, + TipoDocumento, TipoMateriaLegislativa, Tramitacao, + UnidadeTramitacao) + + +def make_unidade_tramitacao(descricao): + # Cria uma comissão para ser a unidade de tramitação + tipo_comissao = mommy.make(TipoComissao) + comissao = mommy.make(Comissao, + tipo=tipo_comissao, + nome=descricao, + sigla='T', + data_criacao='2016-03-21') + + # Testa a comissão + assert comissao.tipo == tipo_comissao + assert comissao.nome == descricao + + # Cria a unidade + unidade = mommy.make(UnidadeTramitacao, comissao=comissao) + assert unidade.comissao == comissao + + return unidade + + +@pytest.mark.django_db(transaction=False) +def make_norma(): + # Cria um novo tipo de Norma + tipo = mommy.make(TipoNormaJuridica, + sigla='T1', + descricao='Teste_Tipo_Norma') + mommy.make(NormaJuridica, + tipo=tipo, + numero=1, + ano=2016, + data='2016-03-21', + esfera_federacao='E', + ementa='Teste_Ementa') + + # Testa se a Norma foi criada + norma = NormaJuridica.objects.first() + assert norma.tipo == tipo + assert norma.numero == 1 + assert norma.ano == 2016 + + return norma @pytest.mark.django_db(transaction=False) @@ -16,7 +62,7 @@ def make_materia_principal(): # Cria a matéria principal tipo = mommy.make(TipoMateriaLegislativa, sigla='T1', - descricao='Teste_1') + descricao='Teste_MateriaLegislativa') mommy.make(MateriaLegislativa, tipo=tipo, numero='165', @@ -24,8 +70,12 @@ def make_materia_principal(): data_apresentacao='2003-01-01', regime_tramitacao=regime_tramitacao) - # Testa se a matéria principal foi criada - return MateriaLegislativa.objects.get(numero=165, ano=2002) + # Testa matéria + materia = MateriaLegislativa.objects.first() + assert materia.numero == 165 + assert materia.ano == 2002 + + return materia @pytest.mark.django_db(transaction=False) @@ -114,3 +164,120 @@ def test_despacho_inicial_submit(client): despacho = DespachoInicial.objects.first() assert despacho.comissao == comissao assert despacho.materia == materia_principal + + +@pytest.mark.django_db(transaction=False) +def test_numeracao_submit(client): + materia_principal = make_materia_principal() + + # Cria dados para inserir na numeração + tipo = mommy.make(TipoMateriaLegislativa, + sigla='T2', + descricao='Teste_2') + # Testa POST + response = client.post(reverse('numeracao', + kwargs={'pk': materia_principal.pk}), + {'tipo_materia': tipo.pk, + 'numero_materia': '341', + 'ano_materia': 2015, + 'data_materia': '2016-03-21', + 'salvar': 'salvar'}, + follow=True) + + assert response.status_code == 200 + + # Verifica se a numeração foi criada + numeracao = Numeracao.objects.first() + assert numeracao.tipo_materia == tipo + assert numeracao.ano_materia == 2015 + + +@pytest.mark.django_db(transaction=False) +def test_documento_acessorio_submit(client): + materia_principal = make_materia_principal() + + # Cria um tipo de Autor + tipo_autor = mommy.make(TipoAutor, descricao='Teste Tipo_Autor') + + # Cria um Autor + autor = mommy.make(Autor, tipo=tipo_autor, nome='Autor Teste') + + # Cria um tipo de documento + tipo = mommy.make(TipoDocumento, + descricao='Teste') + + # Testa POST + response = client.post(reverse('documento_acessorio', + kwargs={'pk': materia_principal.pk}), + {'tipo': tipo.pk, + 'nome': 'teste_nome', + 'data_materia': '2016-03-21', + 'autor': autor, + 'ementa': 'teste_ementa', + 'salvar': 'salvar'}, + follow=True) + + assert response.status_code == 200 + + # Verifica se o documento foi criado + doc = DocumentoAcessorio.objects.first() + assert doc.tipo == tipo + assert doc.nome == 'teste_nome' + assert doc.autor == str(autor) + + +@pytest.mark.django_db(transaction=False) +def test_legislacao_citada_submit(client): + materia_principal = make_materia_principal() + norma = make_norma() + + # Testa POST + response = client.post(reverse('legislacao_citada', + kwargs={'pk': materia_principal.pk}), + {'tipo': norma.tipo.pk, + 'numero': norma.numero, + 'ano': norma.ano, + 'disposicao': 'disposicao', + 'salvar': 'salvar'}, + follow=True) + + assert response.status_code == 200 + + # Testa se a legislação citada foi criada + leg = LegislacaoCitada.objects.first() + assert leg.norma == norma + assert leg.disposicoes == 'disposicao' + + +@pytest.mark.django_db(transaction=False) +def test_tramitacao_submit(client): + materia_principal = make_materia_principal() + # Cria status para tramitação + status_tramitacao = mommy.make(StatusTramitacao, + indicador='F', + sigla='ST', + descricao='Status_Teste') + # Testa POST + response = client.post( + reverse('tramitacao_materia', + kwargs={'pk': materia_principal.pk}), + {'unidade_tramitacao_local': make_unidade_tramitacao( + 'Unidade Local').pk, + 'unidade_tramitacao_destino': make_unidade_tramitacao( + 'Unidade Destino').pk, + 'urgente': True, + 'status': status_tramitacao.pk, + 'data_tramitacao': '2016-03-21', + 'texto': 'Texto_Teste', + 'salvar': 'salvar'}, + follow=True) + + assert response.status_code == 200 + + # Testa se a tramitacao foi criada + tramitacao = Tramitacao.objects.first() + assert (tramitacao.unidade_tramitacao_local.comissao.nome == + 'Unidade Local') + assert (tramitacao.unidade_tramitacao_destino.comissao.nome == + 'Unidade Destino') + assert tramitacao.urgente is True diff --git a/materia/views.py b/materia/views.py index 16b31278a..c0f2cb4a3 100644 --- a/materia/views.py +++ b/materia/views.py @@ -998,23 +998,27 @@ class TramitacaoView(CreateView): if form.is_valid(): ultima_tramitacao = Tramitacao.objects.filter( materia_id=kwargs['pk']).last() + if ultima_tramitacao: + destino = ultima_tramitacao.unidade_tramitacao_destino + cleaned_data = form.cleaned_data['unidade_tramitacao_local'] + if (destino == cleaned_data): + tramitacao = form.save(commit=False) + tramitacao.materia = materia + tramitacao.save() + else: + msg = _('A origem da nova tramitação \ + deve ser igual ao destino da última adicionada!') + messages.add_message(request, messages.INFO, msg) + return self.render_to_response( + {'form': form, + 'object': materia, + 'tramitacoes': tramitacoes_list}) - destino = ultima_tramitacao.unidade_tramitacao_destino - cleaned_data = form.cleaned_data['unidade_tramitacao_local'] - if (destino == cleaned_data): + do_envia_email_tramitacao(request, materia) + else: tramitacao = form.save(commit=False) tramitacao.materia = materia tramitacao.save() - else: - msg = _('A origem da nova tramitação \ - deve ser igual ao destino da última adicionada!') - messages.add_message(request, messages.INFO, msg) - return self.render_to_response( - {'form': form, - 'object': materia, - 'tramitacoes': tramitacoes_list}) - - do_envia_email_tramitacao(request, materia) return self.form_valid(form) else: return self.render_to_response({'form': form,