PayrollManagementSystem/backend/tests/integration/test_source_price_authorization.py
liuwenxin 1e53792ad6 feat(T+): 完成数据贯通与自动接入闭环
打通 T+ 快照、业务、发货、回款和核算准备链路,保留来源差异并提供待补状态。
新增业务自动接入任务、跨平台读取服务托管、权限复核、来源关联和前端核对页面。
补充迁移、隔离集成测试、浏览器模拟验收及角色授权边界修复。
2026-11-05 18:47:13 +08:00

24 lines
1.2 KiB
Python

"""来源单价人工确认的双权限校验。"""
import pytest
from tests.integration.test_authorization import role, save
from tests.integration.test_tplus_workbench import workspace as workspace
pytestmark = pytest.mark.integration
def test_确认来源单价需要业务更新和核算准备双权限(client, admin, normal, workspace):
business_only = role(client, admin, ["business:businesses:view", "business:businesses:update"])
payroll_only = role(client, admin, ["payroll:view", "payroll:prepare"])
url = "/api/v1/business/businesses/1/source-documents/1/missing-price"
payload = {"revision": "0" * 64, "evidence": "权限回归"}
for item in (business_only, payroll_only):
assert save(client, admin, normal["id"], role_codes=["user", item["role_code"]]).status_code == 200
assert client.put(url, headers=normal["headers"], json=payload).status_code == 403
assert save(client, admin, normal["id"], role_codes=[
"user", business_only["role_code"], payroll_only["role_code"]]).status_code == 200
response = client.put(url, headers=normal["headers"], json=payload)
assert response.status_code == 400
assert "来源业务" in response.json()["message"]