Update Python version requirements and fix compatibility issues

- Bump minimum Python version from 3.11 to 3.13 across all apps
- Add Python 3.11-3.13 test matrix to CLI workflow
- Document Python 3.11+ requirement in .env.example
- Fix Starlette Broadcast removal with in-process fallback implementation
- Add _InProcessBroadcast class for tests when Starlette Broadcast is unavailable
- Refactor API key validators to read live settings instead of cached values
- Update database models with explicit
This commit is contained in:
oib
2026-02-24 18:41:08 +01:00
parent 24b3a37733
commit 825f157749
270 changed files with 66674 additions and 2027 deletions

View File

@@ -4,6 +4,10 @@ import sys
import os
import tempfile
from pathlib import Path
import pytest
from sqlmodel import SQLModel, create_engine, Session
from app.models import MarketplaceOffer, MarketplaceBid
from app.domain.gpu_marketplace import ConsumerGPUProfile
_src = str(Path(__file__).resolve().parent.parent / "src")
@@ -23,3 +27,11 @@ os.environ["TEST_MODE"] = "true"
project_root = Path(__file__).resolve().parent.parent.parent
os.environ["AUDIT_LOG_DIR"] = str(project_root / "logs" / "audit")
os.environ["TEST_DATABASE_URL"] = "sqlite:///:memory:"
@pytest.fixture(scope="function")
def db_session():
"""Create a fresh database session for each test."""
engine = create_engine("sqlite:///:memory:", echo=False)
SQLModel.metadata.create_all(engine)
with Session(engine) as session:
yield session