| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- """质检物料月初模板:字段校验纯函数单测。"""
- import unittest
- from datetime import date
- from decimal import Decimal
- from app.crud.qc_material_month_template import _require_template_fields
- class TestRequireTemplateFields(unittest.TestCase):
- def _base(self, **overrides):
- data = {
- "materialCode": "QC-M-001",
- "materialName": "试剂A",
- "catalogNo": "CAT-1",
- "batchNo": "B-1",
- "manufacturer": "厂家X",
- "unitPrice": 10.5,
- "amount": 105,
- "inQty": 10,
- "expireDate": "2027-01-01",
- }
- data.update(overrides)
- return data
- def test_ok(self):
- got = _require_template_fields(self._base())
- self.assertEqual(got["material_code"], "QC-M-001")
- self.assertEqual(got["material_name"], "试剂A")
- self.assertEqual(got["catalog_no"], "CAT-1")
- self.assertEqual(got["in_qty"], Decimal("10"))
- self.assertEqual(got["expire_date"], date(2027, 1, 1))
- def test_all_optional_empty(self):
- got = _require_template_fields({})
- self.assertEqual(got["material_code"], "")
- self.assertEqual(got["material_name"], "")
- self.assertEqual(got["catalog_no"], "")
- self.assertEqual(got["batch_no"], "")
- self.assertEqual(got["manufacturer"], "")
- self.assertEqual(got["unit_price"], Decimal("0"))
- self.assertEqual(got["amount"], Decimal("0"))
- self.assertEqual(got["in_qty"], Decimal("0"))
- self.assertIsNone(got["expire_date"])
- def test_qty_zero_allowed(self):
- got = _require_template_fields(self._base(inQty=0))
- self.assertEqual(got["in_qty"], Decimal("0"))
- def test_missing_code_name_allowed(self):
- got = _require_template_fields(self._base(materialCode="", materialName=""))
- self.assertEqual(got["material_code"], "")
- self.assertEqual(got["material_name"], "")
|