feat: alternar_ativo em CLIENTE e limpar em LOG_PAINEL (camada de banco)
This commit is contained in:
@@ -229,3 +229,17 @@ def excluir_cliente(cliente_id: int) -> bool:
|
||||
return cur.rowcount > 0
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
|
||||
def alternar_ativo(cliente_id: int) -> bool:
|
||||
"""True se a linha existia (cur.rowcount > 0) — mesma lógica de
|
||||
excluir_cliente/redefinir_senha pra distinguir "alternou" de "não
|
||||
tinha nada pra alternar". UPDATE ... SET ATIVO = 1 - ATIVO inverte o
|
||||
valor atomicamente, sem precisar de um SELECT antes."""
|
||||
conn = get_connection()
|
||||
try:
|
||||
with conn.cursor() as cur:
|
||||
cur.execute("UPDATE CLIENTE SET ATIVO = 1 - ATIVO WHERE ID = %s", (cliente_id,))
|
||||
return cur.rowcount > 0
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
@@ -65,3 +65,16 @@ def contar() -> int:
|
||||
return cur.fetchone()["total"]
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
|
||||
def limpar() -> None:
|
||||
"""Apaga todo o histórico de LOG_PAINEL. Quem chama (o router) grava
|
||||
uma entrada nova logo depois disso, registrando quem limpou — nunca
|
||||
chamar isso sem seguir com um registrar() depois, senão o rastro da
|
||||
própria limpeza se perde."""
|
||||
conn = get_connection()
|
||||
try:
|
||||
with conn.cursor() as cur:
|
||||
cur.execute("DELETE FROM LOG_PAINEL")
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
@@ -212,6 +212,18 @@ def test_criar_cliente_grava_ativo(cliente_id):
|
||||
assert cliente["ATIVO"] == 1
|
||||
|
||||
|
||||
def test_alternar_ativo_inverte_o_valor(cliente_id):
|
||||
assert db_clientes.obter_cliente(cliente_id)["ATIVO"] == 1
|
||||
assert db_clientes.alternar_ativo(cliente_id) is True
|
||||
assert db_clientes.obter_cliente(cliente_id)["ATIVO"] == 0
|
||||
assert db_clientes.alternar_ativo(cliente_id) is True
|
||||
assert db_clientes.obter_cliente(cliente_id)["ATIVO"] == 1
|
||||
|
||||
|
||||
def test_alternar_ativo_id_inexistente_retorna_false():
|
||||
assert db_clientes.alternar_ativo(999999999) is False
|
||||
|
||||
|
||||
def test_excluir_cliente_com_contato_bloqueia(cliente_id):
|
||||
conn = get_connection()
|
||||
try:
|
||||
|
||||
@@ -40,3 +40,12 @@ def test_contar(limpar):
|
||||
db_log.registrar("teste-log", "criar", "cliente", "1", True)
|
||||
depois = db_log.contar()
|
||||
assert depois == antes + 1
|
||||
|
||||
|
||||
def test_limpar_apaga_tudo(limpar):
|
||||
db_log.registrar("teste-log", "criar", "cliente", "1", True)
|
||||
assert db_log.contar() > 0
|
||||
|
||||
db_log.limpar()
|
||||
|
||||
assert db_log.contar() == 0
|
||||
|
||||
Reference in New Issue
Block a user