- Removed legacy Alembic migration files and consolidated schema management into a new Pydantic-backed initializer (`scripts/init_db.py`). - Updated `main.py` to ensure the new DB initializer runs on startup, maintaining idempotency. - Adjusted session management in `config/database.py` to prevent DetachedInstanceError. - Introduced new enums in `models/enums.py` for better organization and clarity. - Refactored various models to utilize the new enums, improving code maintainability. - Enhanced middleware to handle JSON validation more robustly, ensuring non-JSON requests do not trigger JSON errors. - Added tests for middleware and enums to ensure expected behavior and consistency. - Updated changelog to reflect significant changes and improvements.
23 lines
866 B
Python
23 lines
866 B
Python
from sqlalchemy import Enum as SQLEnum
|
|
|
|
from models.enums import (
|
|
MiningOperationType,
|
|
ScenarioStatus,
|
|
FinancialCategory,
|
|
DistributionType,
|
|
)
|
|
|
|
|
|
def test_enum_members_and_sql_names():
|
|
# Verify enum members exist
|
|
assert MiningOperationType.OTHER.value == "other"
|
|
assert ScenarioStatus.DRAFT.value == "draft"
|
|
assert FinancialCategory.REVENUE.value == "revenue"
|
|
assert DistributionType.NORMAL.value == "normal"
|
|
|
|
# Verify SQLAlchemy SQLEnum name mapping is consistent
|
|
assert SQLEnum(MiningOperationType, name="miningoperationtype").name == "miningoperationtype"
|
|
assert SQLEnum(ScenarioStatus, name="scenariostatus").name == "scenariostatus"
|
|
assert SQLEnum(FinancialCategory, name="financialcategory").name == "financialcategory"
|
|
assert SQLEnum(DistributionType, name="distributiontype").name == "distributiontype"
|