test(T05): contact router, rental router, email service, rate limiting tests + retry queue

This commit is contained in:
Implementation Engineer
2026-07-10 01:05:58 +02:00
parent db5080df48
commit e220ff7db9
17 changed files with 780 additions and 89 deletions
+2 -1
View File
@@ -4,5 +4,6 @@ from app.models.rental_request import RentalRequest, RentalRequestItem
from app.models.contact import Contact
from app.models.admin_user import AdminUser
from app.models.sync_log import SyncLog
from app.models.email_queue import EmailQueue
__all__ = ["EquipmentCache", "RentalRequest", "RentalRequestItem", "Contact", "AdminUser", "SyncLog"]
__all__ = ["EquipmentCache", "RentalRequest", "RentalRequestItem", "Contact", "AdminUser", "SyncLog", "EmailQueue"]
+18
View File
@@ -0,0 +1,18 @@
"""Email queue model for failed email retry."""
from sqlalchemy import Column, Integer, String, Text, TIMESTAMP, func
from app.database import Base
class EmailQueue(Base):
__tablename__ = "email_queue"
id = Column(Integer, primary_key=True, autoincrement=True)
to_addr = Column(String(255), nullable=False)
subject = Column(String(255), nullable=False)
html_body = Column(Text, nullable=False)
text_body = Column(Text)
reply_to = Column(String(255))
status = Column(String(32), default="pending", nullable=False)
attempts = Column(Integer, default=0, nullable=False)
created_at = Column(TIMESTAMP, server_default=func.now())
updated_at = Column(TIMESTAMP, server_default=func.now(), onupdate=func.now())