Files
zkxw/backend/tests/test_qc_material_month_template.py
T

53 lines
1.9 KiB
Python

"""质检物料月初模板:字段校验纯函数单测。"""
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"], "")