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) def test_source_fields_not_overridden_by_extra(self): from app.services.lab_sample_processing import _build_row from types import SimpleNamespace sample = SimpleNamespace(id="S1", sample_code="ZKZX34000865", collection_protocol_id="P1") party = SimpleNamespace(mother_name="真实妈妈") coll = SimpleNamespace(sample_collect_time=None) hospital = SimpleNamespace(hospital_name="真实医院") reception = SimpleNamespace( id="R1", reception_time=None, receive_temperature=None, handler_name="接收人", remark=None, lab_storage_code="B0000103", ) production = SimpleNamespace( id="PR1", original_blood_weight_g=72.08, hes_volume_ml=None, blood_type="B", infectious_four_test_result="正常", enriched_blood_weight_g=None, cryopreservation_volume_ml=None, handler_name="操作人", remark=None, original_blood_volume_ml=None, nucleated_cell_count_1e8=None, inoculation_amount=None, cryopreservation_time=None, storage_total_tubes=None, available_cell_count_1e7=None, ) row = _build_row( dataset=DATASET_HSC, sample=sample, type_name="围产期造血干细胞", party=party, coll=coll, hospital=hospital, reception=reception, production=production, extra={ "motherName": "Excel妈妈", "originalBloodWeightG": 1, "cd34Count": "11.4", }, ) self.assertEqual(row["motherName"], "真实妈妈") self.assertEqual(row["originalBloodWeightG"], 72.08) self.assertEqual(row["bloodType"], "B") self.assertEqual(row["cd34Count"], "11.4") self.assertFalse(row["fromExtraOnly"]) if __name__ == "__main__": unittest.main()