|
|
|
@ -1,22 +1,23 @@ |
|
|
|
from datetime import date |
|
|
|
|
|
|
|
from django.contrib.auth import get_user_model |
|
|
|
from django.contrib.contenttypes.models import ContentType |
|
|
|
from django.core.files.uploadedfile import SimpleUploadedFile |
|
|
|
from django.urls import reverse |
|
|
|
from django.db.models import Max |
|
|
|
from django.urls import reverse |
|
|
|
from model_bakery import baker |
|
|
|
import pytest |
|
|
|
|
|
|
|
from sapl.base.models import Autor, TipoAutor, AppConfig |
|
|
|
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, |
|
|
|
DocumentoAcessorio, MateriaLegislativa, |
|
|
|
Numeracao, Proposicao, RegimeTramitacao, |
|
|
|
StatusTramitacao, TipoDocumento, |
|
|
|
TipoMateriaLegislativa, TipoProposicao, |
|
|
|
Tramitacao, UnidadeTramitacao) |
|
|
|
from sapl.materia.forms import (TramitacaoForm, compara_tramitacoes_mat, |
|
|
|
TramitacaoUpdateForm) |
|
|
|
from sapl.norma.models import (LegislacaoCitada, NormaJuridica, |
|
|
|
TipoNormaJuridica) |
|
|
|
from sapl.parlamentares.models import Legislatura |
|
|
|
@ -123,6 +124,7 @@ def test_lista_materias_anexadas_ciclo(): |
|
|
|
assert len(lista) == 1 |
|
|
|
assert lista[0] == materia_anexada |
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.django_db(transaction=False) |
|
|
|
def make_unidade_tramitacao(descricao): |
|
|
|
# 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, |
|
|
|
user=user, |
|
|
|
tipo=tipo_autor, |
|
|
|
nome='Autor Teste') |
|
|
|
autor.operadores.add(user) |
|
|
|
|
|
|
|
file_content = 'file_content' |
|
|
|
texto = SimpleUploadedFile("file.txt", file_content.encode('UTF-8')) |
|
|
|
@ -597,9 +599,9 @@ def test_form_errors_proposicao(admin_client): |
|
|
|
|
|
|
|
autor = baker.make( |
|
|
|
Autor, |
|
|
|
user=user, |
|
|
|
tipo=tipo_autor, |
|
|
|
nome='Autor Teste') |
|
|
|
autor.operadores.add(user) |
|
|
|
|
|
|
|
file_content = 'file_content' |
|
|
|
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" |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
unidade_tramitacao_local_1 = make_unidade_tramitacao(descricao="Teste 1") |
|
|
|
unidade_tramitacao_destino_1 = make_unidade_tramitacao(descricao="Teste 2") |
|
|
|
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() |
|
|
|
|
|
|
|
tramitacao_principal = form.save() |
|
|
|
tramitacao_anexada = materia_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
|
|
|
|
# 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") |
|
|
|
tramitacao_anexada = materia_anexada.tramitacao_set.order_by( |
|
|
|
'-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by( |
|
|
|
'-data_tramitacao', '-id').first() |
|
|
|
|
|
|
|
# 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 MateriaLegislativa.objects.get(id=materia_anexada.pk).em_tramitacao \ |
|
|
|
== (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 \ |
|
|
|
== (tramitacao_anexada_anexada.status.indicador != "F") |
|
|
|
|
|
|
|
|
|
|
|
# Teste Edição de Tramitacao |
|
|
|
form = TramitacaoUpdateForm(data={}) |
|
|
|
# Alterando unidade_tramitacao_destino |
|
|
|
@ -779,22 +785,23 @@ def test_tramitacoes_materias_anexadas(admin_client): |
|
|
|
|
|
|
|
assert form.is_valid() |
|
|
|
tramitacao_principal = form.save() |
|
|
|
tramitacao_anexada = materia_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada = materia_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_2 |
|
|
|
assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2 |
|
|
|
assert tramitacao_anexada_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2 |
|
|
|
|
|
|
|
|
|
|
|
# Teste Remoção de Tramitacao |
|
|
|
url = reverse('sapl.materia:tramitacao_delete', |
|
|
|
kwargs={'pk': tramitacao_principal.pk}) |
|
|
|
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_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 |
|
|
|
form = TramitacaoForm(data={}) |
|
|
|
@ -809,8 +816,10 @@ def test_tramitacoes_materias_anexadas(admin_client): |
|
|
|
assert form.is_valid() |
|
|
|
|
|
|
|
tramitacao_principal = form.save() |
|
|
|
tramitacao_anexada = materia_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada = materia_anexada.tramitacao_set.order_by( |
|
|
|
'-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by( |
|
|
|
'-data_tramitacao', '-id').first() |
|
|
|
|
|
|
|
form = TramitacaoUpdateForm(data={}) |
|
|
|
# Alterando unidade_tramitacao_destino |
|
|
|
@ -825,13 +834,15 @@ def test_tramitacoes_materias_anexadas(admin_client): |
|
|
|
assert form.is_valid() |
|
|
|
|
|
|
|
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_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={}) |
|
|
|
# Alterando o texto |
|
|
|
form.data = {'data_tramitacao': tramitacao_principal.data_tramitacao, |
|
|
|
@ -844,28 +855,33 @@ def test_tramitacoes_materias_anexadas(admin_client): |
|
|
|
|
|
|
|
assert form.is_valid() |
|
|
|
tramitacao_principal = form.save() |
|
|
|
tramitacao_anexada = materia_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada = materia_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.texto == "Testando a alteração" |
|
|
|
assert not tramitacao_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', |
|
|
|
kwargs={'pk': tramitacao_principal.pk}) |
|
|
|
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_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', |
|
|
|
kwargs={'pk': tramitacao_anexada.pk}) |
|
|
|
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_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 |
|
|
|
# junto com as matérias principais |
|
|
|
@ -888,16 +904,19 @@ def test_tramitacoes_materias_anexadas(admin_client): |
|
|
|
assert form.is_valid() |
|
|
|
|
|
|
|
tramitacao_principal = form.save() |
|
|
|
tramitacao_anexada = materia_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada = materia_anexada.tramitacao_set.order_by( |
|
|
|
'-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 |
|
|
|
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_anexada |
|
|
|
|
|
|
|
|
|
|
|
# Criação de uma tramitação igual para a anexada à principal para testar a edição |
|
|
|
# Criação de uma tramitação igual para a anexada à principal para testar a |
|
|
|
# edição |
|
|
|
form = TramitacaoForm(data={}) |
|
|
|
form.data = {'data_tramitacao': date(2019, 5, 6), |
|
|
|
'unidade_tramitacao_local': unidade_tramitacao_local_1.pk, |
|
|
|
@ -910,11 +929,15 @@ def test_tramitacoes_materias_anexadas(admin_client): |
|
|
|
assert form.is_valid() |
|
|
|
|
|
|
|
tramitacao_anexada = form.save() |
|
|
|
tramitacao_principal = materia_principal.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
|
|
|
|
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 |
|
|
|
tramitacao_principal = materia_principal.tramitacao_set.order_by( |
|
|
|
'-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by( |
|
|
|
'-data_tramitacao', '-id').first() |
|
|
|
|
|
|
|
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 not tramitacao_anexada_anexada |
|
|
|
|
|
|
|
@ -931,8 +954,10 @@ def test_tramitacoes_materias_anexadas(admin_client): |
|
|
|
|
|
|
|
assert form.is_valid() |
|
|
|
tramitacao_principal = form.save() |
|
|
|
tramitacao_anexada = materia_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada = materia_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_2 |
|
|
|
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() |
|
|
|
tramitacao_anexada = form.save() |
|
|
|
tramitacao_principal = materia_principal.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.order_by('-data_tramitacao', '-id').first() |
|
|
|
tramitacao_principal = materia_principal.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_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) |
|
|
|
|
|
|
|
# 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', |
|
|
|
kwargs={'pk': tramitacao_principal.pk}) |
|
|
|
response = admin_client.post(url, {'confirmar': 'confirmar'}, follow=True) |
|
|
|
|