| 123456789101112131415161718192021222324252627 |
- from pathlib import Path
- ROOT = Path(__file__).resolve().parents[1]
- def test_rbac_migration_preserves_legacy_accounts_and_seeds_fixed_roles():
- migration = (
- ROOT / "migrations/versions/20260716_10_rbac.py"
- ).read_text(encoding="utf-8")
- assert "users_legacy" in migration
- assert "DROP TABLE" not in migration.upper()
- assert "password_hash" in migration
- assert "password VARCHAR" not in migration
- assert "ON DELETE CASCADE" in migration
- for role in ("admin", "editor", "viewer"):
- assert role in migration
- def test_rbac_models_never_define_reversible_password_column():
- models = (ROOT / "app/core/system/models.py").read_text(encoding="utf-8")
- assert "password_hash" in models
- assert "password =" not in models
- assert "class User" in models
- assert "class Role" in models
|