Add and extend test coverage for models and their methods
Enhanced test coverage includes `repr` methods, model functionality, and validation logic for key models like `GiftItem`, `GiftCategory`, `EventMedia`, `RSVP`, and `GiftPurchase`. Refactored and added fixtures to support comprehensive testing scenarios. Addresses validation for gift reordering and updates `EventMedia` representation format for consistency.
This commit is contained in:
@@ -46,7 +46,8 @@ class EventMedia(Base, UUIDMixin, TimestampMixin):
|
||||
uploader = relationship("User", foreign_keys=[uploaded_by])
|
||||
|
||||
def __repr__(self):
|
||||
return f"<EventMedia {self.original_filename} ({self.media_type}) for event={self.event_id}>"
|
||||
return f"<EventMedia {self.original_filename} ({self.media_type.value}) for event={self.event_id}>"
|
||||
|
||||
|
||||
@validates('display_order')
|
||||
def validate_display_order(self, key, value):
|
||||
|
||||
@@ -174,6 +174,13 @@ class GiftCategory(Base, UUIDMixin, TimestampMixin):
|
||||
Args:
|
||||
gift_ids: List of gift IDs in desired order
|
||||
"""
|
||||
# Validate gift IDs
|
||||
existing_gift_ids = {gift.id for gift in self.gifts}
|
||||
for gift_id in gift_ids:
|
||||
if gift_id not in existing_gift_ids:
|
||||
raise ValueError(f"Gift ID {gift_id} not found in category")
|
||||
|
||||
# Reorder logic
|
||||
gift_order = {gift_id: idx for idx, gift_id in enumerate(gift_ids)}
|
||||
for gift in self.gifts:
|
||||
if gift.id in gift_order:
|
||||
|
||||
Reference in New Issue
Block a user