Files
zkxw/backend/tests/test_lab_sample_processing.py
zlwu 5fe1193a2c feat(lab-sample): 实验室样本处理三表台账与部门字段 ACL
按造血/单个核/间充质聚合展示,部门员工只改本部门、主管可改全部,并支持筛选与 Excel 导出;同步纠正采集接受人串权与严格菜单守卫。
2026-11-12 12:48:05 +08:00

54 lines
1.8 KiB
Python

import unittest
from app.services.lab_sample_processing_fields import (
DATASET_HSC,
DATASET_MSC,
DATASET_UBMC,
DEPT_MARKET,
DEPT_PRODUCTION,
DEPT_QC,
editable_depts_for_user,
field_map,
resolve_dataset_by_type_name,
schema_payload,
)
class LabSampleProcessingFieldsTest(unittest.TestCase):
def test_resolve_dataset(self):
self.assertEqual(resolve_dataset_by_type_name("围产期造血干细胞", "B0000001"), DATASET_HSC)
self.assertEqual(resolve_dataset_by_type_name("脐带间充质干细胞", "BC0000003"), DATASET_MSC)
self.assertEqual(resolve_dataset_by_type_name("", "UBMC2025001"), DATASET_UBMC)
self.assertEqual(resolve_dataset_by_type_name("", "UC2026001"), DATASET_MSC)
def test_schema_not_empty(self):
self.assertGreater(len(schema_payload(DATASET_HSC)), 10)
self.assertGreater(len(schema_payload(DATASET_UBMC)), 10)
self.assertGreater(len(schema_payload(DATASET_MSC)), 10)
def test_dept_acl(self):
self.assertEqual(
editable_depts_for_user(
is_manager=True,
dept_flags={DEPT_MARKET: False, DEPT_PRODUCTION: False, DEPT_QC: False},
),
{DEPT_MARKET, DEPT_PRODUCTION, DEPT_QC},
)
self.assertEqual(
editable_depts_for_user(
is_manager=False,
dept_flags={DEPT_MARKET: False, DEPT_PRODUCTION: True, DEPT_QC: False},
),
{DEPT_PRODUCTION},
)
def test_hsc_market_and_qc_fields(self):
fmap = field_map(DATASET_HSC)
self.assertEqual(fmap["motherName"].dept, DEPT_MARKET)
self.assertEqual(fmap["cd34Count"].dept, DEPT_QC)
self.assertEqual(fmap["originalBloodWeightG"].dept, DEPT_PRODUCTION)
if __name__ == "__main__":
unittest.main()