import unittest from admin_app.db.models import AuditLog class AuditLogModelTests(unittest.TestCase): def test_audit_log_declares_expected_table_and_columns(self): self.assertEqual(AuditLog.__tablename__, "admin_audit_logs") self.assertIn("actor_staff_account_id", AuditLog.__table__.columns) self.assertIn("event_type", AuditLog.__table__.columns) self.assertIn("resource_type", AuditLog.__table__.columns) self.assertIn("resource_id", AuditLog.__table__.columns) self.assertIn("outcome", AuditLog.__table__.columns) self.assertIn("message", AuditLog.__table__.columns) self.assertIn("payload_json", AuditLog.__table__.columns) self.assertIn("ip_address", AuditLog.__table__.columns) self.assertIn("user_agent", AuditLog.__table__.columns) def test_audit_log_uses_staff_account_foreign_key(self): foreign_keys = list(AuditLog.__table__.columns["actor_staff_account_id"].foreign_keys) self.assertEqual(len(foreign_keys), 1) self.assertEqual(str(foreign_keys[0].target_fullname), "staff_accounts.id") if __name__ == "__main__": unittest.main()