"""打印中心集成测试:渲染器安全/语法 + 单据上下文 + 渲染 API + 模板/抬头 API。""" import pytest from datetime import date from decimal import Decimal from model_bakery import baker from rest_framework.test import APIClient from rest_framework_simplejwt.tokens import RefreshToken from apps.catalog.models import Product, Unit, UnitConversion from apps.inventory.models import Warehouse from apps.partner.models import Customer from apps.printing import services as printing_services from apps.printing.models import PrintSettings, PrintTemplate from apps.printing.renderer import render_template from apps.sales import services as sales_services from apps.sales.models import SalesBill from apps.purchase import services as purchase_services @pytest.fixture def auth_client(db, user, tenant): c = APIClient() refresh = RefreshToken.for_user(user) c.credentials( HTTP_AUTHORIZATION=f"Bearer {refresh.access_token}", HTTP_X_TENANT_ID=tenant.code, ) return c @pytest.fixture def warehouse(db, tenant): return baker.make(Warehouse, tenant=tenant, code="WH01", name="主仓") @pytest.fixture def product(db, tenant): # 品名带 HTML/脚本,验证转义 return baker.make(Product, tenant=tenant, code="P