Add validation for display_order and EventMedia tests

Introduce a `validate_display_order` method to ensure a default value of 0 for `display_order`. Extend testing infrastructure with fixtures and unit tests for `EventMedia` to validate properties, metadata, and default behaviors.
This commit is contained in:
2025-02-28 14:55:59 +01:00
parent 841bb7f56d
commit 97155f4b6b
3 changed files with 182 additions and 1 deletions

View File

@@ -1,7 +1,7 @@
from enum import Enum
from sqlalchemy import Column, String, Integer, Boolean, ForeignKey, JSON, Enum as SQLEnum
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.orm import relationship
from sqlalchemy.orm import relationship, validates
from .base import Base, TimestampMixin, UUIDMixin
@@ -48,6 +48,11 @@ class EventMedia(Base, UUIDMixin, TimestampMixin):
def __repr__(self):
return f"<EventMedia {self.original_filename} ({self.media_type}) for event={self.event_id}>"
@validates('display_order')
def validate_display_order(self, key, value):
return value if value is not None else 0
@property
def is_image(self):
return self.media_type == MediaType.IMAGE