You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
2.0 KiB
Python
46 lines
2.0 KiB
Python
import unittest
|
|
|
|
from admin_app.db.models import StaffAccount
|
|
from shared.contracts import StaffRole
|
|
|
|
|
|
class StaffAccountModelTests(unittest.TestCase):
|
|
def test_staff_account_declares_expected_table_and_columns(self):
|
|
self.assertEqual(StaffAccount.__tablename__, "staff_accounts")
|
|
self.assertIn("email", StaffAccount.__table__.columns)
|
|
self.assertIn("display_name", StaffAccount.__table__.columns)
|
|
self.assertIn("password_hash", StaffAccount.__table__.columns)
|
|
self.assertIn("role", StaffAccount.__table__.columns)
|
|
self.assertIn("is_active", StaffAccount.__table__.columns)
|
|
self.assertIn("last_login_at", StaffAccount.__table__.columns)
|
|
self.assertIn("created_at", StaffAccount.__table__.columns)
|
|
self.assertIn("updated_at", StaffAccount.__table__.columns)
|
|
|
|
def test_staff_account_role_column_normalizes_portuguese_and_legacy_values(self):
|
|
role_column = StaffAccount.__table__.columns["role"]
|
|
|
|
self.assertEqual(role_column.default.arg, StaffRole.COLABORADOR)
|
|
self.assertEqual(role_column.type.process_bind_param(StaffRole.DIRETOR, None), "diretor")
|
|
self.assertEqual(role_column.type.process_bind_param("admin", None), "diretor")
|
|
self.assertEqual(role_column.type.process_result_value("staff", None), StaffRole.COLABORADOR)
|
|
self.assertEqual(role_column.type.process_result_value("diretor", None), StaffRole.DIRETOR)
|
|
|
|
def test_staff_account_can_hold_director_identity_fields(self):
|
|
account = StaffAccount(
|
|
email="diretor@empresa.com",
|
|
display_name="Diretor Interno",
|
|
password_hash="hashed-secret",
|
|
role=StaffRole.DIRETOR,
|
|
is_active=True,
|
|
)
|
|
|
|
self.assertEqual(account.email, "diretor@empresa.com")
|
|
self.assertEqual(account.display_name, "Diretor Interno")
|
|
self.assertEqual(account.password_hash, "hashed-secret")
|
|
self.assertEqual(account.role, StaffRole.DIRETOR)
|
|
self.assertTrue(account.is_active)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|