refactor: enhance type hinting and casting for improved type safety across multiple files
This commit is contained in:
@@ -3,10 +3,12 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from enum import StrEnum
|
||||
from typing import cast
|
||||
|
||||
from app.models.activity import Activity, ActivityType
|
||||
from app.models.deal import Deal, DealStage, DealStatus
|
||||
from app.models.organization_member import OrganizationMember, OrganizationRole
|
||||
from sqlalchemy import Enum as SqlEnum
|
||||
|
||||
|
||||
def _values(enum_cls: type[StrEnum]) -> list[str]:
|
||||
@@ -14,20 +16,20 @@ def _values(enum_cls: type[StrEnum]) -> list[str]:
|
||||
|
||||
|
||||
def test_organization_role_column_uses_value_strings() -> None:
|
||||
role_type = OrganizationMember.__table__.c.role.type # noqa: SLF001 - runtime inspection
|
||||
role_type = cast(SqlEnum, OrganizationMember.__table__.c.role.type) # noqa: SLF001
|
||||
assert role_type.enums == _values(OrganizationRole)
|
||||
|
||||
|
||||
def test_deal_status_column_uses_value_strings() -> None:
|
||||
status_type = Deal.__table__.c.status.type # noqa: SLF001 - runtime inspection
|
||||
status_type = cast(SqlEnum, Deal.__table__.c.status.type) # noqa: SLF001
|
||||
assert status_type.enums == _values(DealStatus)
|
||||
|
||||
|
||||
def test_deal_stage_column_uses_value_strings() -> None:
|
||||
stage_type = Deal.__table__.c.stage.type # noqa: SLF001 - runtime inspection
|
||||
stage_type = cast(SqlEnum, Deal.__table__.c.stage.type) # noqa: SLF001
|
||||
assert stage_type.enums == _values(DealStage)
|
||||
|
||||
|
||||
def test_activity_type_column_uses_value_strings() -> None:
|
||||
activity_type = Activity.__table__.c.type.type # noqa: SLF001 - runtime inspection
|
||||
activity_type = cast(SqlEnum, Activity.__table__.c.type.type) # noqa: SLF001
|
||||
assert activity_type.enums == _values(ActivityType)
|
||||
|
||||
Reference in New Issue
Block a user