Skip to content

Commit f4ebcb6

Browse files
committed
warning fixes
1 parent 76bafda commit f4ebcb6

File tree

6 files changed

+15
-27
lines changed

6 files changed

+15
-27
lines changed

backend/app/infrastructure/kafka/events/base.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from typing import Any, ClassVar
33
from uuid import uuid4
44

5-
from pydantic import ConfigDict, Field
5+
from pydantic import ConfigDict, Field, field_serializer
66
from pydantic_avro import AvroBase
77

88
from app.domain.enums.events import EventType
@@ -22,11 +22,11 @@ class BaseEvent(AvroBase):
2222
# Each subclass must define its topic
2323
topic: ClassVar[KafkaTopic]
2424

25-
model_config = ConfigDict(
26-
json_encoders={
27-
datetime: lambda v: v.isoformat()
28-
}
29-
)
25+
model_config = ConfigDict()
26+
27+
@field_serializer('timestamp')
28+
def serialize_timestamp(self, dt: datetime) -> str:
29+
return dt.isoformat()
3030

3131
def to_dict(self) -> dict[str, Any]:
3232
# Use mode='json' to properly serialize datetime objects to ISO strings

backend/app/schemas_pydantic/health_dashboard.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from datetime import datetime
22

3-
from pydantic import BaseModel, Field
3+
from pydantic import BaseModel, ConfigDict, Field
44

55
from app.domain.enums.health import AlertSeverity
66

@@ -160,8 +160,7 @@ class DependencyEdge(BaseModel):
160160
to_service: str = Field(..., alias="to")
161161
critical: bool
162162

163-
class Config:
164-
populate_by_name = True
163+
model_config = ConfigDict(populate_by_name=True)
165164

166165

167166
class DependencyGraph(BaseModel):

backend/app/schemas_pydantic/user.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from typing import List, Optional
33
from uuid import uuid4
44

5-
from bson import ObjectId
65
from pydantic import BaseModel, ConfigDict, EmailStr, Field
76

87
from app.domain.enums.user import UserRole
@@ -69,9 +68,6 @@ class UserResponse(UserBase):
6968

7069
model_config = ConfigDict(
7170
from_attributes=True,
72-
json_encoders={
73-
ObjectId: str
74-
}
7571
)
7672

7773

@@ -89,9 +85,6 @@ class User(BaseModel):
8985
model_config = ConfigDict(
9086
from_attributes=True,
9187
arbitrary_types_allowed=True,
92-
json_encoders={
93-
ObjectId: str
94-
}
9588
)
9689

9790
@classmethod

backend/pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,5 @@ asyncio_mode = "auto"
226226
asyncio_default_fixture_loop_scope = "function"
227227
log_cli = false
228228
log_cli_level = "ERROR"
229-
log_capture = true
230229
log_level = "ERROR"
231230
addopts = "-n 4 --dist loadfile --tb=short -q --no-header -q"

backend/tests/unit/core/test_logging_and_correlation.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1+
import io
12
import json
23
import logging
3-
import io
44
from typing import Any
55

66
import pytest
7+
from app.core.correlation import CorrelationContext, CorrelationMiddleware
8+
from app.core.logging import CorrelationFilter, JSONFormatter, setup_logger
79
from starlette.applications import Starlette
810
from starlette.requests import Request
911
from starlette.responses import JSONResponse
12+
from starlette.routing import Route
1013
from starlette.testclient import TestClient
1114

12-
from app.core.correlation import CorrelationContext, CorrelationMiddleware
13-
from app.core.logging import CorrelationFilter, JSONFormatter, setup_logger
14-
1515

1616
def capture_log(formatter: logging.Formatter, msg: str, extra: dict[str, Any] | None = None) -> dict[str, Any]:
1717
logger = logging.getLogger("t")
@@ -71,12 +71,10 @@ def test_correlation_context_and_filter() -> None:
7171

7272

7373
def test_correlation_middleware_sets_header() -> None:
74-
app = Starlette()
75-
76-
@app.route("/ping")
77-
async def ping(request: Request): # type: ignore[override]
74+
async def ping(request: Request) -> JSONResponse:
7875
return JSONResponse({"ok": True})
7976

77+
app = Starlette(routes=[Route("/ping", ping)])
8078
app.add_middleware(CorrelationMiddleware)
8179
with TestClient(app) as client:
8280
r = client.get("/ping")

backend/tests/unit/schemas_pydantic/test_notification_schemas.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from datetime import UTC, datetime, timedelta
22

33
import pytest
4-
54
from app.domain.enums.notification import NotificationChannel, NotificationSeverity, NotificationStatus
65
from app.schemas_pydantic.notification import (
76
Notification,
@@ -45,7 +44,7 @@ def test_notification_batch_validation_limits():
4544
NotificationBatch(notifications=[])
4645

4746
# Upper bound: >1000 should fail
48-
many = [n1.copy() for _ in range(1001)]
47+
many = [n1.model_copy() for _ in range(1001)]
4948
with pytest.raises(ValueError):
5049
NotificationBatch(notifications=many)
5150

0 commit comments

Comments
 (0)