Fixed python time again..

This commit is contained in:
Brage Skjønborg 2026-01-23 01:56:05 +01:00
parent 950d643325
commit 9780923e6a
4 changed files with 13 additions and 8 deletions

View File

@ -5,7 +5,7 @@ from models.enums import TaskStatus
from models.event import MetadataSearchResultEvent from models.event import MetadataSearchResultEvent
from models.task import MetadataSearchPayload, Task, MetadataSearchTask, MetadataSearchData from models.task import MetadataSearchPayload, Task, MetadataSearchTask, MetadataSearchData
from utils.logger import logger from utils.logger import logger
from utils.time import utc_now from utils.time import parse_mysql_ts, utc_now
def fetch_next_task(db: Database) -> Optional[Task]: def fetch_next_task(db: Database) -> Optional[Task]:
db.validate() db.validate()
@ -31,8 +31,8 @@ def fetch_next_task(db: Database) -> Optional[Task]:
claimed=row["CLAIMED"], claimed=row["CLAIMED"],
claimedBy=row["CLAIMED_BY"], claimedBy=row["CLAIMED_BY"],
consumed=row["CONSUMED"], consumed=row["CONSUMED"],
lastCheckIn=row["LAST_CHECK_IN"], lastCheckIn=parse_mysql_ts(row["LAST_CHECK_IN"]),
persistedAt=row["PERSISTED_AT"] persistedAt=parse_mysql_ts(row["PERSISTED_AT"])
) )
else: else:
return None return None

View File

@ -1,7 +1,7 @@
import json import json
import uuid import uuid
from datetime import datetime from datetime import datetime, timezone
from utils.time import utc_now from utils.time import parse_mysql_ts, utc_now
import pytest import pytest
from db import repository from db import repository
from models.event import MetadataSearchResultEvent, EventMetadata, SearchResult, MetadataResult, Summary from models.event import MetadataSearchResultEvent, EventMetadata, SearchResult, MetadataResult, Summary
@ -87,7 +87,7 @@ def make_row(task_id, ref_id):
"CLAIMED_BY": None, "CLAIMED_BY": None,
"CONSUMED": False, "CONSUMED": False,
"LAST_CHECK_IN": None, "LAST_CHECK_IN": None,
"PERSISTED_AT": utc_now() "PERSISTED_AT": utc_now().strftime("%Y-%m-%d %H:%M:%S.%f")
} }
def test_fetch_next_task_maps_correctly(monkeypatch): def test_fetch_next_task_maps_correctly(monkeypatch):
@ -117,7 +117,7 @@ def test_fetch_next_task_maps_correctly(monkeypatch):
claimedBy=row["CLAIMED_BY"], claimedBy=row["CLAIMED_BY"],
consumed=row["CONSUMED"], consumed=row["CONSUMED"],
lastCheckIn=row["LAST_CHECK_IN"], lastCheckIn=row["LAST_CHECK_IN"],
persistedAt=datetime.fromisoformat(row["PERSISTED_AT"]) persistedAt=parse_mysql_ts(row["PERSISTED_AT"])
) )
monkeypatch.setattr(repository, "fetch_next_task", fake_fetch_next_task) monkeypatch.setattr(repository, "fetch_next_task", fake_fetch_next_task)

View File

@ -3,3 +3,8 @@ from datetime import datetime, timezone
def utc_now(): def utc_now():
"""Returnerer nåværende tid i UTC som en timezone-aware datetime.""" """Returnerer nåværende tid i UTC som en timezone-aware datetime."""
return datetime.now(timezone.utc) return datetime.now(timezone.utc)
def parse_mysql_ts(value):
if value is None:
return None
return datetime.strptime(value, "%Y-%m-%d %H:%M:%S.%f").replace(tzinfo=timezone.utc)

View File

@ -7,7 +7,7 @@ from utils.time import utc_now
# --- Metadata --- # --- Metadata ---
class Metadata(BaseModel): class Metadata(BaseModel):
created: str created: datetime
derivedFromId: Optional[Set[str]] = None derivedFromId: Optional[Set[str]] = None
# --- FileInfo --- # --- FileInfo ---