- Updated tests for listing users to validate pagination and response format. - Changed mock return values to include total count and pagination details. - Refactored user creation mocks for clarity and consistency. - Enhanced assertions to check for presence of pagination fields in responses. - Adjusted test cases for user retrieval and updates to ensure proper handling of user data. - Improved readability by restructuring mock definitions and assertions across various test files.
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
"""Favorite response schemas."""
|
|
|
|
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class FavoriteResponse(BaseModel):
|
|
"""Response schema for a favorite."""
|
|
|
|
id: int = Field(description="Favorite ID")
|
|
user_id: int = Field(description="User ID")
|
|
sound_id: int | None = Field(
|
|
description="Sound ID if this is a sound favorite",
|
|
default=None,
|
|
)
|
|
playlist_id: int | None = Field(
|
|
description="Playlist ID if this is a playlist favorite",
|
|
default=None,
|
|
)
|
|
created_at: datetime = Field(description="Creation timestamp")
|
|
updated_at: datetime = Field(description="Last update timestamp")
|
|
|
|
class Config:
|
|
"""Pydantic config."""
|
|
|
|
from_attributes = True
|
|
|
|
|
|
class FavoritesListResponse(BaseModel):
|
|
"""Response schema for a list of favorites."""
|
|
|
|
favorites: list[FavoriteResponse] = Field(description="List of favorites")
|
|
|
|
|
|
class FavoriteCountsResponse(BaseModel):
|
|
"""Response schema for favorite counts."""
|
|
|
|
total: int = Field(description="Total number of favorites")
|
|
sounds: int = Field(description="Number of favorited sounds")
|
|
playlists: int = Field(description="Number of favorited playlists")
|