feat: coluna PERFIL em FUNCIONARIO_PAINEL + contar_admins_ativos
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
95b1da7c10
commit
718e845651
@@ -19,7 +19,7 @@ def _limpar():
|
||||
@pytest.fixture
|
||||
def funcionario_id():
|
||||
_limpar()
|
||||
novo_id = db_funcionarios.criar_funcionario("Fulano Teste", LOGIN_TESTE, "senhaForte123")
|
||||
novo_id = db_funcionarios.criar_funcionario("Fulano Teste", LOGIN_TESTE, "senhaForte123", "PADRAO")
|
||||
yield novo_id
|
||||
_limpar()
|
||||
|
||||
@@ -30,14 +30,16 @@ def test_criar_e_obter_funcionario(funcionario_id):
|
||||
assert f["NOME"] == "Fulano Teste"
|
||||
assert f["LOGIN"] == LOGIN_TESTE
|
||||
assert f["ATIVO"] == 1
|
||||
assert f["PERFIL"] == "PADRAO"
|
||||
assert "SENHA_HASH" not in f # obter_funcionario não expõe o hash
|
||||
|
||||
|
||||
def test_obter_por_login_inclui_senha_hash(funcionario_id):
|
||||
def test_obter_por_login_inclui_senha_hash_e_perfil(funcionario_id):
|
||||
f = db_funcionarios.obter_por_login(LOGIN_TESTE)
|
||||
assert f is not None
|
||||
assert "SENHA_HASH" in f
|
||||
assert f["SENHA_HASH"] != "senhaForte123" # nunca em texto puro
|
||||
assert f["PERFIL"] == "PADRAO"
|
||||
|
||||
|
||||
def test_obter_por_login_inexistente(funcionario_id):
|
||||
@@ -51,16 +53,18 @@ def test_login_em_uso(funcionario_id):
|
||||
|
||||
|
||||
def test_listar_funcionarios_inclui_o_criado(funcionario_id):
|
||||
logins = [f["LOGIN"] for f in db_funcionarios.listar_funcionarios()]
|
||||
assert LOGIN_TESTE in logins
|
||||
encontrados = {f["LOGIN"]: f for f in db_funcionarios.listar_funcionarios()}
|
||||
assert LOGIN_TESTE in encontrados
|
||||
assert encontrados[LOGIN_TESTE]["PERFIL"] == "PADRAO"
|
||||
|
||||
|
||||
def test_atualizar_funcionario(funcionario_id):
|
||||
novo_login = "teste.db.funcionarios.editado"
|
||||
db_funcionarios.atualizar_funcionario(funcionario_id, "Fulano Editado", novo_login)
|
||||
db_funcionarios.atualizar_funcionario(funcionario_id, "Fulano Editado", novo_login, "ADMIN")
|
||||
f = db_funcionarios.obter_funcionario(funcionario_id)
|
||||
assert f["NOME"] == "Fulano Editado"
|
||||
assert f["LOGIN"] == novo_login
|
||||
assert f["PERFIL"] == "ADMIN"
|
||||
|
||||
|
||||
def test_redefinir_senha(funcionario_id):
|
||||
@@ -76,3 +80,19 @@ def test_alternar_ativo(funcionario_id):
|
||||
assert db_funcionarios.obter_funcionario(funcionario_id)["ATIVO"] == 0
|
||||
db_funcionarios.alternar_ativo(funcionario_id)
|
||||
assert db_funcionarios.obter_funcionario(funcionario_id)["ATIVO"] == 1
|
||||
|
||||
|
||||
def test_contar_admins_ativos(funcionario_id):
|
||||
# funcionario_id é PADRAO (fixture acima) — não conta.
|
||||
antes = db_funcionarios.contar_admins_ativos()
|
||||
|
||||
admin_id = db_funcionarios.criar_funcionario(
|
||||
"Admin Teste", "teste.db.funcionarios.admin", "senhaForte123", "ADMIN"
|
||||
)
|
||||
try:
|
||||
assert db_funcionarios.contar_admins_ativos() == antes + 1
|
||||
|
||||
db_funcionarios.alternar_ativo(admin_id) # desativa
|
||||
assert db_funcionarios.contar_admins_ativos() == antes
|
||||
finally:
|
||||
_limpar()
|
||||
|
||||
Reference in New Issue
Block a user