Browse Source

ajusta teste de criação de proposição

pull/3371/head
Leandro Roberto 5 years ago
parent
commit
655f82811e
  1. 118
      sapl/materia/tests/test_materia.py

118
sapl/materia/tests/test_materia.py

@ -1,22 +1,23 @@
from datetime import date from datetime import date
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.files.uploadedfile import SimpleUploadedFile from django.core.files.uploadedfile import SimpleUploadedFile
from django.urls import reverse
from django.db.models import Max from django.db.models import Max
from django.urls import reverse
from model_bakery import baker from model_bakery import baker
import pytest import pytest
from sapl.base.models import Autor, TipoAutor, AppConfig from sapl.base.models import Autor, TipoAutor, AppConfig
from sapl.comissoes.models import Comissao, TipoComissao from sapl.comissoes.models import Comissao, TipoComissao
from sapl.materia.forms import (TramitacaoForm, compara_tramitacoes_mat,
TramitacaoUpdateForm)
from sapl.materia.models import (Anexada, Autoria, DespachoInicial, from sapl.materia.models import (Anexada, Autoria, DespachoInicial,
DocumentoAcessorio, MateriaLegislativa, DocumentoAcessorio, MateriaLegislativa,
Numeracao, Proposicao, RegimeTramitacao, Numeracao, Proposicao, RegimeTramitacao,
StatusTramitacao, TipoDocumento, StatusTramitacao, TipoDocumento,
TipoMateriaLegislativa, TipoProposicao, TipoMateriaLegislativa, TipoProposicao,
Tramitacao, UnidadeTramitacao) Tramitacao, UnidadeTramitacao)
from sapl.materia.forms import (TramitacaoForm, compara_tramitacoes_mat,
TramitacaoUpdateForm)
from sapl.norma.models import (LegislacaoCitada, NormaJuridica, from sapl.norma.models import (LegislacaoCitada, NormaJuridica,
TipoNormaJuridica) TipoNormaJuridica)
from sapl.parlamentares.models import Legislatura from sapl.parlamentares.models import Legislatura
@ -123,6 +124,7 @@ def test_lista_materias_anexadas_ciclo():
assert len(lista) == 1 assert len(lista) == 1
assert lista[0] == materia_anexada assert lista[0] == materia_anexada
@pytest.mark.django_db(transaction=False) @pytest.mark.django_db(transaction=False)
def make_unidade_tramitacao(descricao): def make_unidade_tramitacao(descricao):
# Cria uma comissão para ser a unidade de tramitação # Cria uma comissão para ser a unidade de tramitação
@ -551,9 +553,9 @@ def test_proposicao_submit(admin_client):
autor = baker.make( autor = baker.make(
Autor, Autor,
user=user,
tipo=tipo_autor, tipo=tipo_autor,
nome='Autor Teste') nome='Autor Teste')
autor.operadores.add(user)
file_content = 'file_content' file_content = 'file_content'
texto = SimpleUploadedFile("file.txt", file_content.encode('UTF-8')) texto = SimpleUploadedFile("file.txt", file_content.encode('UTF-8'))
@ -597,9 +599,9 @@ def test_form_errors_proposicao(admin_client):
autor = baker.make( autor = baker.make(
Autor, Autor,
user=user,
tipo=tipo_autor, tipo=tipo_autor,
nome='Autor Teste') nome='Autor Teste')
autor.operadores.add(user)
file_content = 'file_content' file_content = 'file_content'
texto = SimpleUploadedFile("file.txt", file_content.encode('UTF-8')) texto = SimpleUploadedFile("file.txt", file_content.encode('UTF-8'))
@ -730,7 +732,6 @@ def test_tramitacoes_materias_anexadas(admin_client):
data_anexacao="2020-11-05" data_anexacao="2020-11-05"
) )
unidade_tramitacao_local_1 = make_unidade_tramitacao(descricao="Teste 1") unidade_tramitacao_local_1 = make_unidade_tramitacao(descricao="Teste 1")
unidade_tramitacao_destino_1 = make_unidade_tramitacao(descricao="Teste 2") unidade_tramitacao_destino_1 = make_unidade_tramitacao(descricao="Teste 2")
unidade_tramitacao_destino_2 = make_unidade_tramitacao(descricao="Teste 3") unidade_tramitacao_destino_2 = make_unidade_tramitacao(descricao="Teste 3")
@ -752,20 +753,25 @@ def test_tramitacoes_materias_anexadas(admin_client):
assert form.is_valid() assert form.is_valid()
tramitacao_principal = form.save() tramitacao_principal = form.save()
tramitacao_anexada = materia_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() tramitacao_anexada = materia_anexada.tramitacao_set.order_by(
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() '-data_tramitacao', '-id').first()
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by(
# Verifica se foram criadas as tramitações para as matérias anexadas e anexadas às anexadas '-data_tramitacao', '-id').first()
assert materia_principal.tramitacao_set.order_by('-data_tramitacao', '-id').first() == tramitacao_principal
assert tramitacao_principal.materia.em_tramitacao == (tramitacao_principal.status.indicador != "F") # Verifica se foram criadas as tramitações para as matérias anexadas e
# anexadas às anexadas
assert materia_principal.tramitacao_set.order_by(
'-data_tramitacao', '-id').first() == tramitacao_principal
assert tramitacao_principal.materia.em_tramitacao == (
tramitacao_principal.status.indicador != "F")
assert compara_tramitacoes_mat(tramitacao_principal, tramitacao_anexada) assert compara_tramitacoes_mat(tramitacao_principal, tramitacao_anexada)
assert MateriaLegislativa.objects.get(id=materia_anexada.pk).em_tramitacao \ assert MateriaLegislativa.objects.get(id=materia_anexada.pk).em_tramitacao \
== (tramitacao_anexada.status.indicador != "F") == (tramitacao_anexada.status.indicador != "F")
assert compara_tramitacoes_mat(tramitacao_anexada_anexada, tramitacao_principal) assert compara_tramitacoes_mat(
tramitacao_anexada_anexada, tramitacao_principal)
assert MateriaLegislativa.objects.get(id=materia_anexada_anexada.pk).em_tramitacao \ assert MateriaLegislativa.objects.get(id=materia_anexada_anexada.pk).em_tramitacao \
== (tramitacao_anexada_anexada.status.indicador != "F") == (tramitacao_anexada_anexada.status.indicador != "F")
# Teste Edição de Tramitacao # Teste Edição de Tramitacao
form = TramitacaoUpdateForm(data={}) form = TramitacaoUpdateForm(data={})
# Alterando unidade_tramitacao_destino # Alterando unidade_tramitacao_destino
@ -779,22 +785,23 @@ def test_tramitacoes_materias_anexadas(admin_client):
assert form.is_valid() assert form.is_valid()
tramitacao_principal = form.save() tramitacao_principal = form.save()
tramitacao_anexada = materia_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() tramitacao_anexada = materia_anexada.tramitacao_set.order_by(
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() '-data_tramitacao', '-id').first()
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by(
'-data_tramitacao', '-id').first()
assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_2 assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_2
assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2 assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2
assert tramitacao_anexada_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2 assert tramitacao_anexada_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2
# Teste Remoção de Tramitacao # Teste Remoção de Tramitacao
url = reverse('sapl.materia:tramitacao_delete', url = reverse('sapl.materia:tramitacao_delete',
kwargs={'pk': tramitacao_principal.pk}) kwargs={'pk': tramitacao_principal.pk})
response = admin_client.post(url, {'confirmar': 'confirmar'}, follow=True) response = admin_client.post(url, {'confirmar': 'confirmar'}, follow=True)
assert Tramitacao.objects.filter(id=tramitacao_principal.pk).count() == 0 assert Tramitacao.objects.filter(id=tramitacao_principal.pk).count() == 0
assert Tramitacao.objects.filter(id=tramitacao_anexada.pk).count() == 0 assert Tramitacao.objects.filter(id=tramitacao_anexada.pk).count() == 0
assert Tramitacao.objects.filter(id=tramitacao_anexada_anexada.pk).count() == 0 assert Tramitacao.objects.filter(
id=tramitacao_anexada_anexada.pk).count() == 0
# Testes para quando as tramitações das anexadas divergem # Testes para quando as tramitações das anexadas divergem
form = TramitacaoForm(data={}) form = TramitacaoForm(data={})
@ -809,8 +816,10 @@ def test_tramitacoes_materias_anexadas(admin_client):
assert form.is_valid() assert form.is_valid()
tramitacao_principal = form.save() tramitacao_principal = form.save()
tramitacao_anexada = materia_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() tramitacao_anexada = materia_anexada.tramitacao_set.order_by(
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() '-data_tramitacao', '-id').first()
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by(
'-data_tramitacao', '-id').first()
form = TramitacaoUpdateForm(data={}) form = TramitacaoUpdateForm(data={})
# Alterando unidade_tramitacao_destino # Alterando unidade_tramitacao_destino
@ -825,13 +834,15 @@ def test_tramitacoes_materias_anexadas(admin_client):
assert form.is_valid() assert form.is_valid()
tramitacao_anexada = form.save() tramitacao_anexada = form.save()
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by(
'-data_tramitacao', '-id').first()
assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_1 assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_1
assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2 assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2
assert tramitacao_anexada_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2 assert tramitacao_anexada_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2
# Editando a tramitação principal, as tramitações anexadas não devem ser editadas # Editando a tramitação principal, as tramitações anexadas não devem ser
# editadas
form = TramitacaoUpdateForm(data={}) form = TramitacaoUpdateForm(data={})
# Alterando o texto # Alterando o texto
form.data = {'data_tramitacao': tramitacao_principal.data_tramitacao, form.data = {'data_tramitacao': tramitacao_principal.data_tramitacao,
@ -844,28 +855,33 @@ def test_tramitacoes_materias_anexadas(admin_client):
assert form.is_valid() assert form.is_valid()
tramitacao_principal = form.save() tramitacao_principal = form.save()
tramitacao_anexada = materia_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() tramitacao_anexada = materia_anexada.tramitacao_set.order_by(
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() '-data_tramitacao', '-id').first()
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by(
'-data_tramitacao', '-id').first()
assert tramitacao_principal.texto == "Testando a alteração" assert tramitacao_principal.texto == "Testando a alteração"
assert not tramitacao_anexada.texto == "Testando a alteração" assert not tramitacao_anexada.texto == "Testando a alteração"
assert not tramitacao_anexada_anexada.texto == "Testando a alteração" assert not tramitacao_anexada_anexada.texto == "Testando a alteração"
# Removendo a tramitação pricipal, as tramitações anexadas não devem ser removidas, pois divergiram # Removendo a tramitação pricipal, as tramitações anexadas não devem ser
# removidas, pois divergiram
url = reverse('sapl.materia:tramitacao_delete', url = reverse('sapl.materia:tramitacao_delete',
kwargs={'pk': tramitacao_principal.pk}) kwargs={'pk': tramitacao_principal.pk})
response = admin_client.post(url, {'confirmar': 'confirmar'}, follow=True) response = admin_client.post(url, {'confirmar': 'confirmar'}, follow=True)
assert Tramitacao.objects.filter(id=tramitacao_principal.pk).count() == 0 assert Tramitacao.objects.filter(id=tramitacao_principal.pk).count() == 0
assert Tramitacao.objects.filter(id=tramitacao_anexada.pk).count() == 1 assert Tramitacao.objects.filter(id=tramitacao_anexada.pk).count() == 1
assert Tramitacao.objects.filter(id=tramitacao_anexada_anexada.pk).count() == 1 assert Tramitacao.objects.filter(
id=tramitacao_anexada_anexada.pk).count() == 1
# Removendo a tramitação anexada, a tramitação anexada à anexada deve ser removida # Removendo a tramitação anexada, a tramitação anexada à anexada deve ser
# removida
url = reverse('sapl.materia:tramitacao_delete', url = reverse('sapl.materia:tramitacao_delete',
kwargs={'pk': tramitacao_anexada.pk}) kwargs={'pk': tramitacao_anexada.pk})
response = admin_client.post(url, {'confirmar': 'confirmar'}, follow=True) response = admin_client.post(url, {'confirmar': 'confirmar'}, follow=True)
assert Tramitacao.objects.filter(id=tramitacao_anexada.pk).count() == 0 assert Tramitacao.objects.filter(id=tramitacao_anexada.pk).count() == 0
assert Tramitacao.objects.filter(id=tramitacao_anexada_anexada.pk).count() == 0 assert Tramitacao.objects.filter(
id=tramitacao_anexada_anexada.pk).count() == 0
# Agora testando para caso não seja desejado tramitar as matérias anexadas # Agora testando para caso não seja desejado tramitar as matérias anexadas
# junto com as matérias principais # junto com as matérias principais
@ -888,16 +904,19 @@ def test_tramitacoes_materias_anexadas(admin_client):
assert form.is_valid() assert form.is_valid()
tramitacao_principal = form.save() tramitacao_principal = form.save()
tramitacao_anexada = materia_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() tramitacao_anexada = materia_anexada.tramitacao_set.order_by(
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() '-data_tramitacao', '-id').first()
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by(
'-data_tramitacao', '-id').first()
# Deve ser criada tramitação apenas para a matéria principal # Deve ser criada tramitação apenas para a matéria principal
assert materia_principal.tramitacao_set.order_by('-data_tramitacao', '-id').first() == tramitacao_principal assert materia_principal.tramitacao_set.order_by(
'-data_tramitacao', '-id').first() == tramitacao_principal
assert not tramitacao_anexada assert not tramitacao_anexada
assert not tramitacao_anexada_anexada assert not tramitacao_anexada_anexada
# Criação de uma tramitação igual para a anexada à principal para testar a
# Criação de uma tramitação igual para a anexada à principal para testar a edição # edição
form = TramitacaoForm(data={}) form = TramitacaoForm(data={})
form.data = {'data_tramitacao': date(2019, 5, 6), form.data = {'data_tramitacao': date(2019, 5, 6),
'unidade_tramitacao_local': unidade_tramitacao_local_1.pk, 'unidade_tramitacao_local': unidade_tramitacao_local_1.pk,
@ -910,11 +929,15 @@ def test_tramitacoes_materias_anexadas(admin_client):
assert form.is_valid() assert form.is_valid()
tramitacao_anexada = form.save() tramitacao_anexada = form.save()
tramitacao_principal = materia_principal.tramitacao_set.order_by('-data_tramitacao', '-id').first() tramitacao_principal = materia_principal.tramitacao_set.order_by(
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() '-data_tramitacao', '-id').first()
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by(
assert materia_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() == tramitacao_anexada '-data_tramitacao', '-id').first()
assert materia_principal.tramitacao_set.order_by('-data_tramitacao', '-id').all().count() == 1
assert materia_anexada.tramitacao_set.order_by(
'-data_tramitacao', '-id').first() == tramitacao_anexada
assert materia_principal.tramitacao_set.order_by(
'-data_tramitacao', '-id').all().count() == 1
assert compara_tramitacoes_mat(tramitacao_principal, tramitacao_anexada) assert compara_tramitacoes_mat(tramitacao_principal, tramitacao_anexada)
assert not tramitacao_anexada_anexada assert not tramitacao_anexada_anexada
@ -931,8 +954,10 @@ def test_tramitacoes_materias_anexadas(admin_client):
assert form.is_valid() assert form.is_valid()
tramitacao_principal = form.save() tramitacao_principal = form.save()
tramitacao_anexada = materia_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() tramitacao_anexada = materia_anexada.tramitacao_set.order_by(
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() '-data_tramitacao', '-id').first()
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by(
'-data_tramitacao', '-id').first()
assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_2 assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_2
assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_1 assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_1
@ -951,8 +976,10 @@ def test_tramitacoes_materias_anexadas(admin_client):
assert form.is_valid() assert form.is_valid()
tramitacao_anexada = form.save() tramitacao_anexada = form.save()
tramitacao_principal = materia_principal.tramitacao_set.order_by('-data_tramitacao', '-id').first() tramitacao_principal = materia_principal.tramitacao_set.order_by(
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() '-data_tramitacao', '-id').first()
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by(
'-data_tramitacao', '-id').first()
assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_2 assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_2
assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2 assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2
@ -960,7 +987,8 @@ def test_tramitacoes_materias_anexadas(admin_client):
assert compara_tramitacoes_mat(tramitacao_principal, tramitacao_anexada) assert compara_tramitacoes_mat(tramitacao_principal, tramitacao_anexada)
# Testando a remoção # Testando a remoção
# Removendo a tramitação pricipal, as tramitações anexadas não devem ser removidas # Removendo a tramitação pricipal, as tramitações anexadas não devem ser
# removidas
url = reverse('sapl.materia:tramitacao_delete', url = reverse('sapl.materia:tramitacao_delete',
kwargs={'pk': tramitacao_principal.pk}) kwargs={'pk': tramitacao_principal.pk})
response = admin_client.post(url, {'confirmar': 'confirmar'}, follow=True) response = admin_client.post(url, {'confirmar': 'confirmar'}, follow=True)

Loading…
Cancel
Save