Browse Source
Merge pull request #7 from Move-System/fix/inventario-tramitacao-materia
Fix(Reconciliacao): inventario devolve a materia de cada tramitacao AB#1480
pull/3858/head
Kemuel-sepulvida
1 month ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with
24 additions and
4 deletions
-
sapl/integracao_hub/tests/test_reconciliacao.py
-
sapl/integracao_hub/views.py
|
|
|
@ -73,7 +73,21 @@ def test_inventario_cursores_independentes_para_tramitacao(cliente_hub): |
|
|
|
INVENTARIO, {'id_gt': proposicao.pk - 1, 'tramitacao_id_gt': tramitacao.pk}) |
|
|
|
|
|
|
|
assert proposicao.pk in resposta.data['proposicoes'] |
|
|
|
assert tramitacao.pk not in resposta.data['tramitacoes'] |
|
|
|
assert tramitacao.pk not in [t['id'] for t in resposta.data['tramitacoes']] |
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.django_db(transaction=False) |
|
|
|
def test_inventario_traz_a_materia_de_cada_tramitacao(cliente_hub): |
|
|
|
# Sem a materia o hub compara id de tramitacao com id de materia e conta o |
|
|
|
# acervo inteiro como lacuna (incidente de 14/08). A materia e o que diz se |
|
|
|
# aquela tramitacao pertence a algo que o hub deveria ter integrado. |
|
|
|
tramitacao = baker.make(Tramitacao) |
|
|
|
|
|
|
|
resposta = cliente_hub.get(INVENTARIO, {'id_gt': 0, 'tramitacao_id_gt': 0}) |
|
|
|
|
|
|
|
entrada = next(t for t in resposta.data['tramitacoes'] |
|
|
|
if t['id'] == tramitacao.pk) |
|
|
|
assert entrada['materia'] == tramitacao.materia_id |
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.django_db(transaction=False) |
|
|
|
|
|
|
|
@ -277,9 +277,15 @@ class InventarioView(PollView): |
|
|
|
proposicoes = list( |
|
|
|
Proposicao.objects.filter(id__gt=id_gt, cancelado=False) |
|
|
|
.order_by('id').values_list('id', flat=True)[:limite]) |
|
|
|
tramitacoes = list( |
|
|
|
Tramitacao.objects.filter(id__gt=tramitacao_id_gt) |
|
|
|
.order_by('id').values_list('id', flat=True)[:limite]) |
|
|
|
# Tramitacao vem com a materia junto porque a conferencia do hub NAO e por |
|
|
|
# id de tramitacao: o hub so integra tramitacao de materia que ele conhece |
|
|
|
# (proposicao que virou materia depois do marco). Devolver so o id fazia o |
|
|
|
# hub contar como lacuna toda tramitacao do acervo — falso positivo eterno, |
|
|
|
# visto em 14/08: 500 "ausentes" que na verdade eram historico. |
|
|
|
tramitacoes = [ |
|
|
|
{'id': t['id'], 'materia': t['materia_id']} |
|
|
|
for t in Tramitacao.objects.filter(id__gt=tramitacao_id_gt) |
|
|
|
.order_by('id').values('id', 'materia_id')[:limite]] |
|
|
|
|
|
|
|
return Response({ |
|
|
|
'proposicoes': proposicoes, |
|
|
|
|