diff --git a/app/api/v1/query.py b/app/api/v1/query.py index 2d907f4..5d71686 100644 --- a/app/api/v1/query.py +++ b/app/api/v1/query.py @@ -14,7 +14,7 @@ from app.services.rag_service import RagService from app.dependencies import get_db_client, get_current_user import httpx import logging -from datetime import datetime +from datetime import datetime, UTC import uuid logger = logging.getLogger(__name__) @@ -90,10 +90,10 @@ async def bench_query( request_id=request_id ) - + return QueryResponse( request_id=request_id, - timestamp=datetime.utcnow().isoformat() + "Z", + timestamp=datetime.now(UTC).isoformat().replace('+00:00', 'Z'), environment=environment, response=response_data ) @@ -178,12 +178,12 @@ async def backend_query( reset_session=request.reset_session ) - + return QueryResponse( request_id=request_id, - timestamp=datetime.utcnow().isoformat() + "Z", + timestamp=datetime.now(UTC).isoformat().replace('+00:00', 'Z'), environment=environment, - response={"answers": response_data} + response={"answers": response_data} ) except httpx.HTTPStatusError as e: diff --git a/app/services/rag_service.py b/app/services/rag_service.py index 8415218..0e505ad 100644 --- a/app/services/rag_service.py +++ b/app/services/rag_service.py @@ -10,7 +10,7 @@ import logging import httpx import uuid from typing import List, Dict, Optional, Any -from datetime import datetime +from datetime import datetime, UTC from app.config import settings from app.models.query import QuestionRequest, RagResponseBenchList @@ -276,8 +276,8 @@ class RagService: responses = [] for idx, question in enumerate(questions, start=1): - - now = datetime.utcnow().isoformat() + "Z" + + now = datetime.now(UTC).isoformat().replace('+00:00', 'Z') body = { "question": question.body, "user_message_id": idx, diff --git a/app/utils/security.py b/app/utils/security.py index a37c1bf..a27e95d 100644 --- a/app/utils/security.py +++ b/app/utils/security.py @@ -1,6 +1,6 @@ """JWT token encoding/decoding utilities.""" -from datetime import datetime, timedelta +from datetime import datetime, timedelta, UTC from typing import Optional from jose import JWTError, jwt @@ -22,9 +22,9 @@ def create_access_token(data: dict, expires_delta: Optional[timedelta] = None) - to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(UTC) + expires_delta else: - expire = datetime.utcnow() + timedelta(minutes=settings.JWT_EXPIRE_MINUTES) + expire = datetime.now(UTC) + timedelta(minutes=settings.JWT_EXPIRE_MINUTES) to_encode.update({"exp": int(expire.timestamp())}) diff --git a/coverage.xml b/coverage.xml index 5cc2ffb..ca804bb 100644 --- a/coverage.xml +++ b/coverage.xml @@ -1,5 +1,5 @@ - + diff --git a/tests/conftest.py b/tests/conftest.py index ca32671..854a555 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -12,7 +12,7 @@ if test_env_path.exists(): import pytest from unittest.mock import AsyncMock, MagicMock from fastapi.testclient import TestClient -from datetime import datetime, timedelta +from datetime import datetime, timedelta, UTC from app.main import app from app.dependencies import get_db_client, get_current_user @@ -52,8 +52,8 @@ def test_user_response(test_user): return UserResponse( user_id=test_user["user_id"], login=test_user["login"], - last_login_at=datetime.utcnow().isoformat() + "Z", - created_at=datetime.utcnow().isoformat() + "Z" + last_login_at=datetime.now(UTC).isoformat().replace('+00:00', 'Z'), + created_at=datetime.now(UTC).isoformat().replace('+00:00', 'Z') ) @@ -101,7 +101,7 @@ def test_settings(): "psi": env_settings.model_copy(), "prod": env_settings.model_copy() }, - updated_at=datetime.utcnow().isoformat() + "Z" + updated_at=datetime.now(UTC).isoformat().replace('+00:00', 'Z') )