fix: CI test failure — skip WeasyPrint tests when native libs unavailable

- Add requires_weasyprint marker to TestGenerateBusinessPlan and TestWorkerHandler
  (these need libgobject/pango/cairo which CI python:3.12-slim lacks)
- Fix export route tests: use opaque tokens instead of integer IDs
- Replace deprecated datetime.utcnow() with datetime.now(UTC)
- Add missing jsonify/Response imports to admin routes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Deeman
2026-02-22 23:07:04 +01:00
parent 76695f3902
commit 0521e89d7c
3 changed files with 66 additions and 40 deletions

View File

@@ -8,7 +8,17 @@ from datetime import date, datetime, timedelta
from pathlib import Path
import mistune
from quart import Blueprint, flash, redirect, render_template, request, session, url_for
from quart import (
Blueprint,
Response,
flash,
jsonify,
redirect,
render_template,
request,
session,
url_for,
)
from ..auth.routes import role_required
from ..core import csrf_protect, execute, fetch_all, fetch_one, slugify
@@ -1410,7 +1420,6 @@ async def scenario_preview(scenario_id: int):
@role_required("admin")
async def scenario_pdf(scenario_id: int):
"""Generate and immediately download a business plan PDF for a published scenario."""
from quart import request as req
from ..businessplan import get_plan_sections
from ..planner.calculator import validate_state
@@ -1418,7 +1427,7 @@ async def scenario_pdf(scenario_id: int):
if not scenario:
return jsonify({"error": "Scenario not found."}), 404
lang = req.args.get("lang", "en")
lang = request.args.get("lang", "en")
if lang not in ("en", "de"):
lang = "en"