| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- """储存证质检信息:类型键与 payload 规范化。"""
- import unittest
- from types import SimpleNamespace
- from app.crud.sample_storage_cert_qc import _row_to_dict
- from app.services.sample_storage_cert_qc import (
- SAMPLE_TYPE_KEY_PERINATAL_HSC,
- SAMPLE_TYPE_KEY_UC_MSC,
- empty_detail,
- normalize_payload,
- resolve_sample_type_key,
- supports_storage_cert_qc,
- )
- class TestResolveSampleTypeKey(unittest.TestCase):
- def test_hsc(self):
- self.assertEqual(resolve_sample_type_key("围产期造血干细胞"), SAMPLE_TYPE_KEY_PERINATAL_HSC)
- def test_msc(self):
- self.assertEqual(resolve_sample_type_key("脐带间充质干细胞"), SAMPLE_TYPE_KEY_UC_MSC)
- def test_other(self):
- self.assertIsNone(resolve_sample_type_key("胎盘亚全能干细胞"))
- self.assertIsNone(resolve_sample_type_key(""))
- def test_supports(self):
- self.assertTrue(supports_storage_cert_qc("围产期造血干细胞"))
- self.assertFalse(supports_storage_cert_qc("其他"))
- class TestNormalizePayload(unittest.TestCase):
- def test_rejects_non_object(self):
- with self.assertRaises(ValueError):
- normalize_payload([])
- with self.assertRaises(ValueError):
- normalize_payload("x")
- def test_keeps_dict_stringifies_keys(self):
- out = normalize_payload({"viability_pct": 90.4, 1: "bad"})
- self.assertEqual(out["viability_pct"], 90.4)
- self.assertNotIn(1, out)
- class TestEmptyDetail(unittest.TestCase):
- def test_shape(self):
- d = empty_detail(
- sample_code="B1",
- protocol_code="P1",
- mother_name="张三",
- sample_type_name="围产期造血干细胞",
- sample_type_key="perinatal_hsc",
- )
- self.assertFalse(d["filledFlag"])
- self.assertEqual(d["payload"], {})
- self.assertEqual(d["sampleCode"], "B1")
- self.assertEqual(d["labFlowCode"], "B1")
- class TestRowToDict(unittest.TestCase):
- def test_filled(self):
- row = SimpleNamespace(
- id="1",
- sample_code="B1",
- sample_type_key="perinatal_hsc",
- collection_protocol_id="P",
- qc_work_order_id="W",
- filled_flag="1",
- payload='{"viability_pct":"90"}',
- create_time=None,
- update_time=None,
- )
- d = _row_to_dict(
- row,
- protocol_code="C1",
- mother_name="李",
- sample_type_name="围产期造血干细胞",
- )
- self.assertTrue(d["filledFlag"])
- self.assertEqual(d["payload"]["viability_pct"], "90")
- self.assertEqual(d["labFlowCode"], "B1")
- self.assertEqual(d["protocolCode"], "C1")
- if __name__ == "__main__":
- unittest.main()
|