- padronizando o nome de get_db_connection e session para get_db_session, para não confundir com session do Flask ou sessoes web
- corrigindo potenciais erros
-- has_permission nao consegue com lazy load carregar permission depois de load_user fechar a conexao, entao joinedLoad com Permission antes de fechar
-- db.rollback não existe caso db = get_db_session() apareça muito depois dentro do try, padronizando antes de try
--- comparar role por nivel (Role.SECRETARIO_GERAL) e nao por nome ("Secretario Geral")
- unificacao de get_otp_qr_code
- mudança de nowutc() para now(UTC) conforme novo padrão
56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
from functions.database import get_db_session, Usuario, Role
|
|
from werkzeug.security import generate_password_hash
|
|
|
|
def create_test_users():
|
|
"""Cria usuários de teste"""
|
|
db = get_db_session()
|
|
try:
|
|
# Lista de usuários de teste
|
|
test_users = [
|
|
{
|
|
'username': 'aligner',
|
|
'email': 'aligner@test.com',
|
|
'password': 'Test123!@#',
|
|
'is_admin': False
|
|
},
|
|
{
|
|
'username': 'tester',
|
|
'email': 'tester@test.com',
|
|
'password': 'Test123!@#',
|
|
'is_admin': False
|
|
},
|
|
{
|
|
'username': 'deployer',
|
|
'email': 'deployer@test.com',
|
|
'password': 'Test123!@#',
|
|
'is_admin': False
|
|
}
|
|
]
|
|
|
|
# Criar cada usuário
|
|
for user_data in test_users:
|
|
user = db.query(Usuario).filter_by(username=user_data['username']).first()
|
|
|
|
if not user:
|
|
user = Usuario(
|
|
username=user_data['username'],
|
|
email=user_data['email'],
|
|
is_admin=user_data['is_admin']
|
|
)
|
|
user.set_password(user_data['password'])
|
|
db.add(user)
|
|
print(f"Usuário {user_data['username']} criado")
|
|
else:
|
|
print(f"Usuário {user_data['username']} já existe")
|
|
|
|
db.commit()
|
|
print("Usuários de teste criados com sucesso")
|
|
|
|
except Exception as e:
|
|
print(f"Erro ao criar usuários de teste: {str(e)}")
|
|
db.rollback()
|
|
finally:
|
|
db.close()
|
|
|
|
if __name__ == "__main__":
|
|
create_test_users() |