Browse Source

Adiciona novos testes a materia

pull/285/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
2d7df01fec
  1. 177
      materia/test_materia.py
  2. 30
      materia/views.py

177
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

30
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,

Loading…
Cancel
Save