fix: busca de clientes restrita ao campo escolhido em ordenar_por

Antes, digitar qualquer coisa na busca comparava com CODIGO, CNPJ,
RAZAO e FANTASIA ao mesmo tempo (OR), entao escolher 'Ordenar por:
Codigo' e buscar '242' trazia tambem clientes cujo CNPJ ou Razao
continham '242' em outro lugar. Agora a busca usa so a coluna
selecionada no dropdown (mesma whitelist ja usada pra ordenacao).

listar_clientes()/contar_clientes() e o template ganharam o ajuste;
o dropdown mudou de rotulo pra 'Buscar/ordenar por' pra deixar claro
que controla os dois.

93/93 testes passando.
This commit is contained in:
Gustavo
2026-08-13 14:24:09 -03:00
parent 8d83122e98
commit 2f1d008404
6 changed files with 25 additions and 21 deletions
+3 -3
View File
@@ -61,7 +61,7 @@ def test_listar_clientes(monkeypatch):
{"ID": 1, "CODIGO": "000001", "RAZAO": "Cliente Um", "FANTASIA": "Um", "CNPJ": "11222333000181"}
],
)
monkeypatch.setattr(router_clientes.db_clientes, "contar_clientes", lambda busca=None: 1)
monkeypatch.setattr(router_clientes.db_clientes, "contar_clientes", lambda busca=None, ordenar_por="razao": 1)
resposta = client.get("/clientes")
assert resposta.status_code == 200
assert "Cliente Um" in resposta.text
@@ -76,7 +76,7 @@ def test_listar_clientes_pagina_com_controles_de_paginacao(monkeypatch):
for i in range(1, 6)
],
)
monkeypatch.setattr(router_clientes.db_clientes, "contar_clientes", lambda busca=None: 250)
monkeypatch.setattr(router_clientes.db_clientes, "contar_clientes", lambda busca=None, ordenar_por="razao": 250)
resposta = client.get("/clientes?pagina=2")
assert resposta.status_code == 200
@@ -94,7 +94,7 @@ def test_listar_clientes_ordenar_por_invalido_cai_no_padrao(monkeypatch):
return []
monkeypatch.setattr(router_clientes.db_clientes, "listar_clientes", _listar_clientes)
monkeypatch.setattr(router_clientes.db_clientes, "contar_clientes", lambda busca=None: 0)
monkeypatch.setattr(router_clientes.db_clientes, "contar_clientes", lambda busca=None, ordenar_por="razao": 0)
client.get("/clientes?ordenar_por=coisa_invalida_qualquer")
assert capturado["ordenar_por"] == "razao"