| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- """协议/捐赠列表 sampleItems 接收与质检摘要字段。"""
- import unittest
- from unittest.mock import MagicMock
- class TestSampleItemReceptionQcFields(unittest.TestCase):
- """纯函数:把接收/质检结论摘要合并进列表样本行字段。"""
- def test_empty_when_no_reception_or_qc(self):
- from app.services.protocol_sample_list_summary import (
- build_sample_item_reception_qc_fields,
- )
- out = build_sample_item_reception_qc_fields(None, None)
- self.assertEqual(out["receptionAcceptConclusion"], "")
- self.assertEqual(out["receptionAcceptConclusionLabel"], "")
- self.assertEqual(out["receptionRemark"], "")
- self.assertEqual(out["qcConclusion"], "")
- self.assertEqual(out["qcConclusionLabel"], "")
- def test_accept_with_remark_and_qc_conclusion(self):
- from app.services.protocol_sample_list_summary import (
- build_sample_item_reception_qc_fields,
- )
- out = build_sample_item_reception_qc_fields(
- {"acceptConclusion": "js", "remark": "外观正常"},
- {"qcConclusion": "tg", "qcConclusionLabel": "合格"},
- )
- self.assertEqual(out["receptionAcceptConclusion"], "js")
- self.assertEqual(out["receptionAcceptConclusionLabel"], "接收")
- self.assertEqual(out["receptionRemark"], "外观正常")
- self.assertEqual(out["qcConclusion"], "tg")
- self.assertEqual(out["qcConclusionLabel"], "合格")
- def test_reject_without_qc(self):
- from app.services.protocol_sample_list_summary import (
- build_sample_item_reception_qc_fields,
- )
- out = build_sample_item_reception_qc_fields(
- {"acceptConclusion": "bj", "remark": "破损"},
- None,
- )
- self.assertEqual(out["receptionAcceptConclusion"], "bj")
- self.assertEqual(out["receptionAcceptConclusionLabel"], "拒收")
- self.assertEqual(out["receptionRemark"], "破损")
- self.assertEqual(out["qcConclusion"], "")
- self.assertEqual(out["qcConclusionLabel"], "")
- class TestListReceptionSummaryMap(unittest.TestCase):
- def test_keyed_by_sample_code(self):
- from app.services.protocol_sample_list_summary import (
- get_list_reception_summary_map_by_sample_codes,
- )
- rec = MagicMock()
- rec.sample_code = "SC-001"
- rec.accept_conclusion = "js"
- rec.remark = "ok"
- db = MagicMock()
- q = MagicMock()
- db.query.return_value = q
- q.filter.return_value = q
- q.all.return_value = [rec]
- out = get_list_reception_summary_map_by_sample_codes(
- db, "t1", ["SC-001"], reception_source="cell_storage"
- )
- self.assertEqual(out["SC-001"]["acceptConclusion"], "js")
- self.assertEqual(out["SC-001"]["remark"], "ok")
- class TestListQcConclusionMap(unittest.TestCase):
- def test_uses_stored_conclusion(self):
- from app.services.protocol_sample_list_summary import (
- get_list_qc_conclusion_map_by_sample_codes,
- )
- wo = MagicMock()
- wo.id = "wo1"
- wo.sample_code = "SC-001"
- wo.conclusion = "tg"
- wo.work_order_no = "ZJ202609010001"
- wo.work_order_status = "ywc"
- db = MagicMock()
- q = MagicMock()
- db.query.return_value = q
- q.filter.return_value = q
- q.all.return_value = [wo]
- out = get_list_qc_conclusion_map_by_sample_codes(
- db, "t1", ["SC-001"], reception_source="cell_storage"
- )
- self.assertEqual(out["SC-001"]["qcConclusion"], "tg")
- self.assertEqual(out["SC-001"]["qcConclusionLabel"], "合格")
- self.assertEqual(out["SC-001"]["qcWorkOrderNo"], "ZJ202609010001")
- self.assertEqual(out["SC-001"]["qcWorkOrderStatus"], "ywc")
- self.assertEqual(out["SC-001"]["qcWorkOrderStatusLabel"], "已完成")
- class TestListGateQcSummaryByReceptionIds(unittest.TestCase):
- def test_keyed_by_reception_id(self):
- from app.services.protocol_sample_list_summary import (
- get_list_gate_qc_summary_map_by_reception_ids,
- )
- wo = MagicMock()
- wo.id = "wo1"
- wo.reception_id = "rec1"
- wo.conclusion = "btg"
- wo.work_order_no = "ZJ202609010002"
- wo.work_order_status = "ypz"
- db = MagicMock()
- q = MagicMock()
- db.query.return_value = q
- q.filter.return_value = q
- q.all.return_value = [wo]
- out = get_list_gate_qc_summary_map_by_reception_ids(db, "t1", ["rec1"])
- self.assertEqual(out["rec1"]["qcWorkOrderNo"], "ZJ202609010002")
- self.assertEqual(out["rec1"]["qcWorkOrderStatus"], "ypz")
- self.assertEqual(out["rec1"]["qcWorkOrderStatusLabel"], "已配置")
- self.assertEqual(out["rec1"]["qcConclusion"], "btg")
- self.assertEqual(out["rec1"]["qcConclusionLabel"], "不合格")
- if __name__ == "__main__":
- unittest.main()
|