refactor: consolidate get_db into single module
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
@@ -9,21 +9,11 @@ from pathlib import Path
|
|||||||
from fastapi import HTTPException, status
|
from fastapi import HTTPException, status
|
||||||
|
|
||||||
from app.config import settings
|
from app.config import settings
|
||||||
from app.database import SessionLocal
|
|
||||||
|
|
||||||
# Set up logging
|
# Set up logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def get_db():
|
|
||||||
"""Database dependency injection for routes"""
|
|
||||||
db = SessionLocal()
|
|
||||||
try:
|
|
||||||
yield db
|
|
||||||
finally:
|
|
||||||
db.close()
|
|
||||||
|
|
||||||
|
|
||||||
def resolve_file_path(file_path: str, subfolder: str = None) -> str:
|
def resolve_file_path(file_path: str, subfolder: str = None) -> str:
|
||||||
"""
|
"""
|
||||||
Resolves a file path to an absolute path with path traversal protection.
|
Resolves a file path to an absolute path with path traversal protection.
|
||||||
|
|||||||
+1
-1
@@ -12,9 +12,9 @@ from fastapi import APIRouter, Depends, File, HTTPException, Query, Request, Upl
|
|||||||
from sqlalchemy import asc, desc, or_
|
from sqlalchemy import asc, desc, or_
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
from app.api.common import get_db
|
|
||||||
from app.auth import require_login
|
from app.auth import require_login
|
||||||
from app.config import settings
|
from app.config import settings
|
||||||
|
from app.database import get_db
|
||||||
from app.models import FileRecord, ProcessingLog
|
from app.models import FileRecord, ProcessingLog
|
||||||
from app.tasks.convert_to_pdf import convert_to_pdf
|
from app.tasks.convert_to_pdf import convert_to_pdf
|
||||||
from app.tasks.process_document import process_document
|
from app.tasks.process_document import process_document
|
||||||
|
|||||||
+1
-1
@@ -9,8 +9,8 @@ from fastapi import APIRouter, Depends, HTTPException, Query, Request
|
|||||||
from sqlalchemy import desc
|
from sqlalchemy import desc
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
from app.api.common import get_db
|
|
||||||
from app.auth import require_login
|
from app.auth import require_login
|
||||||
|
from app.database import get_db
|
||||||
from app.models import FileRecord, ProcessingLog
|
from app.models import FileRecord, ProcessingLog
|
||||||
|
|
||||||
# Set up logging
|
# Set up logging
|
||||||
|
|||||||
+1
-12
@@ -11,7 +11,7 @@ from sqlalchemy.orm import Session # noqa: F401
|
|||||||
|
|
||||||
from app.auth import require_login # noqa: F401
|
from app.auth import require_login # noqa: F401
|
||||||
from app.config import settings
|
from app.config import settings
|
||||||
from app.database import SessionLocal
|
from app.database import get_db # noqa: F401
|
||||||
|
|
||||||
# Set up Jinja2 templates
|
# Set up Jinja2 templates
|
||||||
templates_dir = Path(__file__).parent.parent.parent / "frontend" / "templates"
|
templates_dir = Path(__file__).parent.parent.parent / "frontend" / "templates"
|
||||||
@@ -39,14 +39,3 @@ templates.TemplateResponse = template_response_with_version
|
|||||||
|
|
||||||
# Set up logging
|
# Set up logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def get_db():
|
|
||||||
"""
|
|
||||||
Dependency to get a database session.
|
|
||||||
"""
|
|
||||||
db = SessionLocal()
|
|
||||||
try:
|
|
||||||
yield db
|
|
||||||
finally:
|
|
||||||
db.close()
|
|
||||||
|
|||||||
+3
-6
@@ -63,9 +63,8 @@ def db_session():
|
|||||||
def client(db_session) -> TestClient:
|
def client(db_session) -> TestClient:
|
||||||
"""Create a test client with a fresh database."""
|
"""Create a test client with a fresh database."""
|
||||||
|
|
||||||
# Import all the different get_db functions used across the app
|
# Import the canonical get_db function
|
||||||
from app.api.common import get_db as api_get_db
|
from app.database import get_db
|
||||||
from app.views.base import get_db as views_get_db
|
|
||||||
|
|
||||||
# Override the get_db dependency to use our test database
|
# Override the get_db dependency to use our test database
|
||||||
def override_get_db():
|
def override_get_db():
|
||||||
@@ -74,10 +73,8 @@ def client(db_session) -> TestClient:
|
|||||||
finally:
|
finally:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# Override all variants of get_db
|
# Override the single canonical get_db dependency
|
||||||
fastapi_app.dependency_overrides[get_db] = override_get_db
|
fastapi_app.dependency_overrides[get_db] = override_get_db
|
||||||
fastapi_app.dependency_overrides[api_get_db] = override_get_db
|
|
||||||
fastapi_app.dependency_overrides[views_get_db] = override_get_db
|
|
||||||
|
|
||||||
# Use base_url to satisfy TrustedHostMiddleware
|
# Use base_url to satisfy TrustedHostMiddleware
|
||||||
with TestClient(fastapi_app, base_url="http://localhost") as test_client:
|
with TestClient(fastapi_app, base_url="http://localhost") as test_client:
|
||||||
|
|||||||
Reference in New Issue
Block a user