Added full suite of tests & added testing to CI/CD

This commit is contained in:
c-d-p
2025-04-23 00:51:14 +02:00
parent e15a5c7612
commit be00f021ba
27 changed files with 1035 additions and 48 deletions

View File

@@ -1,5 +1,5 @@
# modules/calendar/api.py
from fastapi import APIRouter, Depends
from fastapi import APIRouter, Depends, status
from sqlalchemy.orm import Session
from datetime import datetime
from typing import List, Optional
@@ -12,7 +12,7 @@ from modules.calendar.service import create_calendar_event, get_calendar_event_b
router = APIRouter(prefix="/calendar", tags=["calendar"])
@router.post("/events", response_model=CalendarEventResponse)
@router.post("/events", response_model=CalendarEventResponse, status_code=status.HTTP_201_CREATED)
def create_event(
event: CalendarEventCreate,
user: User = Depends(get_current_user),

View File

@@ -1,5 +1,5 @@
# modules/calendar/models.py
from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, JSON # Add JSON
from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, JSON, Boolean # Add Boolean
from sqlalchemy.orm import relationship
from core.database import Base
@@ -12,6 +12,7 @@ class CalendarEvent(Base):
start = Column(DateTime, nullable=False)
end = Column(DateTime)
location = Column(String)
all_day = Column(Boolean, default=False) # Add all_day column
tags = Column(JSON)
color = Column(String) # hex code for color
user_id = Column(Integer, ForeignKey("users.id"), nullable=False) # <-- Relationship

View File

@@ -11,6 +11,7 @@ class CalendarEventBase(BaseModel):
end: Optional[datetime] = None
location: Optional[str] = None
color: Optional[str] = None # Assuming color exists
all_day: Optional[bool] = None # Add all_day field
tags: Optional[List[str]] = None # Add optional tags
@field_validator('tags', mode='before')
@@ -32,6 +33,7 @@ class CalendarEventUpdate(BaseModel):
end: Optional[datetime] = None
location: Optional[str] = None
color: Optional[str] = None
all_day: Optional[bool] = None # Add all_day field
tags: Optional[List[str]] = None # Add optional tags for update
@field_validator('tags', mode='before')