import datetime import uuid import sqlalchemy as sa from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import Mapped, mapped_column from campaigns.connectors.db.orm import Base default_str = "default" def default_uuid() -> uuid.UUID: return uuid.UUID("680f9d5f-d8ea-4291-aa3e-3ef852b2f07e") def default_datetime() -> datetime.datetime: return datetime.datetime( year=2022, month=12, day=10, hour=12, minute=10, second=30, tzinfo=datetime.UTC ) class Model(Base): __tablename__ = "model" id: Mapped[uuid.UUID] = mapped_column( UUID(as_uuid=True), primary_key=True, default=default_uuid, ) name: Mapped[str] = mapped_column(sa.String(50), default=default_str) created_at: Mapped[datetime.datetime] = mapped_column(default=default_datetime) def test_model_defaults() -> None: model = Model() assert model.id == default_uuid() assert model.name == default_str assert model.created_at == default_datetime()