From b20d8145f33b14c9d8a22ad0f05d058d393b03ec Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Wed, 18 Mar 2026 16:15:03 +0000 Subject: [PATCH] =?UTF-8?q?test=20get=20tast=20by=20source=20=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/tasks/router.py | 26 ++++++++++++++++---------- backend/conftest.py | 6 +++++- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/backend/app/tasks/router.py b/backend/app/tasks/router.py index 88f68762..3fca8df6 100644 --- a/backend/app/tasks/router.py +++ b/backend/app/tasks/router.py @@ -1,3 +1,5 @@ +from typing import Dict + from fastapi import APIRouter, Depends, HTTPException from uuid import UUID import json # ← REQUIRED for json.loads @@ -82,17 +84,21 @@ async def get_task_by_source( source_id: str, service: str, session: Session = Depends(get_session), -): - task = session.execute( - select(Task) - .where( - Task.source == source, - Task.source_id == source_id, - Task.service == service, +) -> Dict[str, Task]: + task = ( + session.execute( + select(Task) + .where( + Task.source == source, + Task.source_id == source_id, + Task.service == service, + ) + .order_by(Task.job_started.desc()) + .limit(1) ) - .order_by(Task.job_started.desc()) - .limit(1) - ).first() + .scalars() + .first() + ) if not task: raise HTTPException(status_code=404, detail="Task not found") diff --git a/backend/conftest.py b/backend/conftest.py index 10bfa971..5eba00ea 100644 --- a/backend/conftest.py +++ b/backend/conftest.py @@ -1,6 +1,7 @@ import pytest from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker +from sqlmodel import SQLModel from backend.app.db.base import Base @@ -24,7 +25,7 @@ def engine(postgresql): engine = create_engine(connection_string) # Create tables once per test session - Base.metadata.create_all(engine) + # Base.metadata.create_all(engine) # Yeild will split this function into two phase. 1) setup and 2) teardown, the latter of which will run after all # tests have completed @@ -46,6 +47,9 @@ def db_session(engine): connection = engine.connect() transaction = connection.begin() + Base.metadata.create_all(bind=connection) + SQLModel.metadata.create_all(bind=connection) + session = sessionmaker(bind=connection)() yield session