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
|
return cur.rowcount > 0
|
||||||
finally:
|
finally:
|
||||||
conn.close()
|
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"]
|
return cur.fetchone()["total"]
|
||||||
finally:
|
finally:
|
||||||
conn.close()
|
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
|
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):
|
def test_excluir_cliente_com_contato_bloqueia(cliente_id):
|
||||||
conn = get_connection()
|
conn = get_connection()
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -40,3 +40,12 @@ def test_contar(limpar):
|
|||||||
db_log.registrar("teste-log", "criar", "cliente", "1", True)
|
db_log.registrar("teste-log", "criar", "cliente", "1", True)
|
||||||
depois = db_log.contar()
|
depois = db_log.contar()
|
||||||
assert depois == antes + 1
|
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